Выйти из Facebook, используя childBrowser и PhoneGap в IPhone - PullRequest
5 голосов
/ 04 февраля 2011

Я работаю над PhoneGap и у меня есть FBConnect. Используя childBrowser и блог 'http://www.pushittolive.com/post/1239874936/facebook-login-on-iphone-phonegap', Я вошел в приложение. Но не удалось выйти из приложения. Он автоматически подписывается при каждом входе в систему.

Может кто-нибудь сказать мне, как выйти из FBConnect, используя Childbrowsern PhoneGap?

Ответы [ 3 ]

9 голосов
/ 08 марта 2011

Попробуйте это.

Добавьте эту функцию в ChildBrowserCommand.m

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

Добавьте это в Childbrowser.js

ChildBrowser.prototype.LogOut = function()
{
     PhoneGap.exec("ChildBrowserCommand.deleteCookies");
}

Добавьте это в FBConnect.js

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

На вашей странице добавьте этот код к кнопке выхода из системы при нажатии

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

Наслаждайтесь.

4 голосов
/ 19 октября 2012

Лучший способ сообщить Facebook о выходе из системы.

Это можно сделать, открыв URL ниже в дочернем браузере:

"https://www.facebook.com/logout.php?next="+your_site_url_registered _on_fb+"&access_token="+accessToken
0 голосов
/ 08 марта 2014

Я боролся с этой проблемой целую вечность.Возможно, вы вошли в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...