当前位置:  开发笔记 > Android > 正文

适用于Facebook的Android WebView按钮

如何解决《适用于Facebook的AndroidWebView按钮》经验,为你挑选了1个好方法。

我正在尝试在Android WebView中使用类似Facebook的功能(项目规范不允许浏览器打开,或任何不在应用程序活动中).

因此,限制是它必须在WebView中完成.我已经设法使它成为一个对话框,并且用户点击按钮,它(WebView)成功(在同一视图中)重定向到facebooks登录页面.身份验证成功后,WebView(在对话框中)将重定向到带有标题的空白页面.

有趣的是,当用户离开空白对话框并再次单击类似按钮时,它的工作方式非常完美(喜欢和不同) - 它以某种方式保持身份验证活动.要解决空白页面,我尝试过/使用过以下内容:

使用WebViewClientshouldOverloadUrlForwarding保持整个过程在同一个WebView对话框中.

使用WebChromeClient正确执行JavaScript -登录后没有它不可能喜欢/不象.

尝试使用setUserAgentString()模拟其他浏览器,如Chrome或Firefox

尝试了SSL错误证书处理(API级别8)(at WebViewClient)

@Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); }

使用(以及所有可能的组合)

webView.getSettings().setAppCacheEnabled(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

试图坚持使用饼干CookieSyncManager,CookieManager并手动处理.

所有这一切都没有结果.我非常感谢任何帮助!



1> Blundell..:

要通过空白页面,请执行以下操作:

 webview.setWebViewClient(new LikeWebviewClient(this));

 private class LikeWebviewClient extends WebViewClient {        
    @Override
    public void onPageFinished(WebView view, String url) {
        Log.d(TAG, "onPageFinished url: " +url);
        // Facebook redirects to this url once a user has logged in, this is a blank page so we override this
        // http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.php?............
        if(url.startsWith("http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.php")){
            String redirectUrl = getFacebookLikeUrl();
            view.loadUrl(redirectUrl);
            return;
        }
        super.onPageFinished(view, url);
    }
}

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有