webDialog“CURRENT GOALS”标题,但没有授权或取消的按钮

时间:2013-05-15 07:24:17

标签: facebook login dialog

我是Facebook SDK的新手。我正在使用Facebook SDK 3.0.1在我的Android应用程序中添加Facebook登录。用于登录的Facebook webDialog弹出窗口。今天我发现了一个与昨天不同的奇怪行为。

输入帐户名和密码并按webDialog中的“登录”按钮后,它最终会在标题中显示“当前目标”,要求添加好友,输入位置等。正文显示“(YOUR_APP)想要访问您的公众个人资料和朋友列表“。但是没有更多按钮可以授权或取消。从Eclipse LogCat开始,Session.StatusCallback()的当前会话状态为OPENING。因此,用户无法完成登录过程。

那么如何通过对话框成功完成登录过程?如果我按左上角的关闭按钮或后退按钮,对话框将关闭。会话状态将变为CLOSED_LOGIN_FAILED。

昨天,当同一个帐户登录时,webDalog最终显示“您已经授权(YOURAPP)”,并且存在“取消”和“确定”按钮。如果用户按OK,则对话框关闭,Session.StatusCallback()调用会话状态变为OPENED。这样用户就可以成功完成登录过程。

1 个答案:

答案 0 :(得分:2)

我刚刚找到并发布了一个解决方法:current goals hides facebook ok button during Facebook authorization in a web view

在FaceBookSDK中,我修改了com / facebook / widget / WebDialog.java,这样一旦加载了Web对话框,它就会查找包含“当前目标”的块并将其隐藏(如果存在)。一旦你这样做,按钮再次可见(至少他们是我的)。

在com / facebook / widget / WebDialog.java中:

private class DialogWebViewClient extends WebViewClient {

    // ... other methods ...

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        if (!isDetached) {
            spinner.dismiss();
        }
        /*
         * Once web view is fully loaded, set the contentFrameLayout background to be transparent
         * and make visible the 'x' image.
         */
        contentFrameLayout.setBackgroundColor(Color.TRANSPARENT);
        webView.setVisibility(View.VISIBLE);
        crossImageView.setVisibility(View.VISIBLE);

        // I don't know how to highlight in the code block
        // So I just add this extra long comment to make it obvious
        // Add a javascript call to hide that element, if it exists
        webView.loadUrl("javascript:try{ document.getElementById('nux-missions-bar').style.display='none'; } catch (e) {}");
        // End changes           
    }