2011-02-04 12 views
5

私はPhoneGapで作業しており、FBConnectを持っています。 childBrowserとblog'http://www.pushittolive.com/post/1239874936/facebook-login-on-iphone-phonegap 'を使用して、私はAppにログインしています。しかし、アプリからログアウトできませんでした。ログインするたびに自動的に割り当てられます。iPhoneからログアウトするには、childBrowserとPhoneGapを使ってください。

Childbrowsern PhoneGapを使用してFBConnectからログアウトする方法を教えてください。

答えて

9

これを試してください。

Childbrowser.js

ChildBrowser.prototype.LogOut = function() 
{ 
    PhoneGap.exec("ChildBrowserCommand.deleteCookies"); 
} 
にこれを追加ChildBrowserCommand.m

-(void) deleteCookies:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options{ 
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    for (NSHTTPCookie *each in [cookieStorage cookies]) { 
      [cookieStorage deleteCookie:each]; 
    } 
} 

を、この機能を追加し、あなたのページでFBConnect.js

FBConnect.prototype.Logout = function() 
{ 
    window.plugins.childBrowser.LogOut();  
} 

にこれを追加、このコードを追加します。クリック時にログアウトするボタン

function Logout() 
{ 
    var fb=FBConnect.install(); 
    fb.Logout(); 
} 

お楽しみください。

+0

私はこの方法を使用していたようでしたが、今ではアプリケーションが動作している間だけ動作することがわかりました。アプリを終了してもう一度開くと、クッキーが再び表示されます。 本当にクッキーを永久に削除する方法はありますか? –

+0

非常に良い解決策。上の各関数にすべての閉じ括弧}を必ず含めてください。ありがとう! –

+0

ありがとうMohamed – Henry

4

フェイスブックにログアウトするのに最適な方法。

それは子ブラウザでURLの下に開くことで行うことができます。

"https://www.facebook.com/logout.php?next="+your_site_url_registered _on_fb+"&access_token="+accessToken 
+2

これは私をfacebookのホームページにリダイレクトします。ログアウトしない –

0

私は年齢のため、この問題で苦労しています。あなたはFacebookにログオンしているかもしれませんが、アクセストークンを持っていない可能性がありますので、従来のロットは動作しません。

ところで、ここではアクセストークンなしでFacebookのログアウトを強制する方法です。

<!DOCTYPE html> 
<html xmlns:fb="https://www.facebook.com/2008/fbml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Force facebook logout without access token</title> 
</head> 
<body> 
    <h3>Please wait while we redirect kick you out from Facebook...</h3> 
    <div id="status"></div> 
    <div id="fb-root"></div> 
    <script type="text/javascript"> 
     function spitInfo(message) { 
      var infoDiv = document.getElementById("status"); 
      infoDiv.innerHTML += message; 
      infoDiv.innerHTML += "<br/>"; 
     } 

     window.fbAsyncInit = function() { 
      spitInfo("called asyncInit"); 

      FB.init({ 
       appId: '496676837086475', //change the appId to your appId 
       status: true, 
       cookie: true, 
       xfbml: true, 
       oauth: true 
      }); 


      function forceLogOut(response) { 
       if (response.authResponse) { 

        FB.logout(function (response) { 
         spitInfo("FB.logout caller - you are logged out"); 
        }); 
       } else { 
        spitInfo("Already logged out"); 
       } 
      } 

      // run once with current status and whenever the status changes 
      FB.getLoginStatus(forceLogOut); 
      FB.Event.subscribe('auth.statusChange', forceLogOut); 
     }; 
     (function() { 
      var e = document.createElement('script'); 
      e.async = true; 
      e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
      document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 
</body> 
</html> 
関連する問題