Android Facebook sdk - 发布在墙上的对话框立即消失

时间:2011-11-30 07:46:50

标签: android facebook

我正在使用Facebook android SDK,通过在其中添加app id在模拟器中运行其提供的示例示例。

问题是我可以正常登录但是当我点击“Wall Post”按钮时,Facebook webview对话框打开类似于登录标题为“Post on Wall”。几秒钟后,此对话框立即消失。

可能是什么问题,我哪里出错了。

编辑1: 它实际上是模拟器的问题。我在其他模拟器中测试过它的工作正常。但是现在在模拟器中,成功的墙贴后FB webview对话框关闭并返回到应用程序,但在设备中却没有。对话框保持显示空白屏幕,成功后标识

编辑2: 我也注意到这个对话框消失的问题是在v2.1(在模拟器上测试)。但它在v2.2及更高版本上运行良好(在模拟器和设备上测试)

1 个答案:

答案 0 :(得分:0)

它不是模拟器的问题。但它是一个问题,因为你已经在该模拟器中安装了原生的facebookapp。

我遇到了同样的问题,现在我已经解决了。

您需要做的是:

转到facebook sdk项目。然后转到Facebook.java

现在,您将获得一种授权方法,如:

 public void authorize(Activity activity, String[] permissions,
        int activityCode, final DialogListener listener) {

    boolean singleSignOnStarted = false;

    mAuthDialogListener = listener;

    THIS CODE IS EDITED BY SHREYASH FOR NOT ALLOW THE DEFAULT FACEBOOK APP
    // Prefer single sign-on, where available.
    if (activityCode >= 0) {
        singleSignOnStarted = startSingleSignOn(activity, mAppId,
                permissions, activityCode);
    }
    // Otherwise fall back to traditional dialog.
    if (!singleSignOnStarted) {
        startDialogAuth(activity, permissions);
    }
}

只需将以上内容替换为以下内容:

    public void authorize(Activity activity, String[] permissions,
            int activityCode, final DialogListener listener) {

        boolean singleSignOnStarted = false;

        mAuthDialogListener = listener;

//        THIS CODE IS EDITED FOR NOT ALLOW THE DEFAULT FACEBOOK APP
//        // Prefer single sign-on, where available.
//        if (activityCode >= 0) {
//            singleSignOnStarted = startSingleSignOn(activity, mAppId,
//                    permissions, activityCode);
//        }
//        // Otherwise fall back to traditional dialog.
//        if (!singleSignOnStarted) {
            startDialogAuth(activity, permissions);
//        }
    }

它将彻底解决您的问题。 如果没有,请告诉我。

享受。

:)