在Android Phonegap中从Facebook登录

时间:2011-03-16 02:46:47

标签: android facebook cordova

我已经成功设置了Jos插件的Facebook插件(https://github.com/jos3000/phonegap-plugins/tree/master/Android/Facebook) - 但我似乎无法找到一种方法来记录用户出局。当然我可以告诉他们删除网站上的应用程序访问权限,然后尝试再次登录并点击“不是你吗?”但我真的宁愿有一个JS功能为我做。

有人可以帮忙提供一些如何做到这一点的指导吗?我查看了文件,看起来有一种方法可以在facebook.java中进行,但我只需要将一些东西连接起来将它连接到webview。我没有能力这样做:)有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

此解决方案是禁用Facebook插件

中的单点登录功能 FaceBook.java文件中的

通过 FORCE_DIALOG_AUTH

替换授权方法[2重载]中的 DEFAULT_AUTH_ACTIVITY_CODE

答案 1 :(得分:0)

在FacebookAuth.Java文件中

将其附加到执行方法[在开关案例部分]

else if (action.equals("performLogout")){
this.performLogout(first);}

//将此方法添加到FacebookAuth.java类

 public void performLogout(final String appid) {
    Log.d("PhoneGapLog", "LOGOUT");
    final FacebookAuth fba = this;
    Runnable runnable = new Runnable() {
        public void run() {
            fba.mFb = new Facebook(appid);
            fba.mFb.setPlugin(fba);
            try {
                fba.mFb.logout((Activity) fba.ctx);
                fba.success(new PluginResult(PluginResult.Status.OK, ""), fba.callback);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        };
    };
    this.ctx.runOnUiThread(runnable);
}

//在facebook.js文件中添加以下部分

Facebook.prototype.Logout = function(app_id,callback){
PhoneGap.exec(callback,null, "FacebookAuth", "performLogout", [app_id]); };

//在您的页面中添加以下代码

function LogoutClick() //on logout click
{   
    appId = "123" ; //your app Id
    window.plugins.facebook.Logout(appId,CompleteLogout);
}   

function CompleteLogout() //call back function
{
    //do some logic for callback
}

//享受.. !!