我是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。这样用户就可以成功完成登录过程。
答案 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
}