【问题标题】:reCAPTCHA Not Rendering in Android WebviewreCAPTCHA 未在 Android Webview 中呈现
【发布时间】:2014-07-07 21:47:04
【问题描述】:

我有一个 Android 应用程序将用户重定向到包含 reCAPTCHA 问题的网页。以前,我只是通过打开浏览器窗口并将用户引导到那里来实现这一点。最近,为了更好的用户体验,我将其改为使用 webview,但问题是现在由于某种原因,reCAPTCHA 问题没有呈现在页面上;其他一切正常。为什么会这样,我该如何解决?我认为这一定与从 webview (www.google.com) 访问不同的域有关,但不确定如何以不同的方式配置它不是问题。这是我设置 Webview 的方式。请注意,被覆盖的方法用于处理可能在此 Webview 中发生的一些 OAuth 授权过程。即使我把它注释掉,我也有同样的问题。

        WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.loadUrl(this.url);
        myWebView.setWebViewClient(new WebViewClient()
            {
            @Override
            public boolean shouldOverrideUrlLoading(WebView webView, String url){
                Uri uri = Uri.parse(url);
                if (url != null && uri.getScheme().equals(NNApplication.CALLBACK_SCHEME)) {
                    SharedPreferences shPref =  getSharedPreferences("NN_PREFS", Activity.MODE_PRIVATE);
                    new OAuthAccessTokenTask(Authorization.this, consumer, provider, shPref).execute(uri);
                    webView.setVisibility(View.GONE);
                    finish();

                    return true;
                }else{
                    return false;
                }


            }

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

同样,您可以在下面的 URL 中查看 reCAPTCHA 问题。我已经检查过了,它在我们的开发站点和我们的实际站点之间的行为是一样的:

https://www-dev.usanpn.org/user/register

【问题讨论】:

  • 你能显示验证码吗?或者最好提供一个链接?
  • @user3249477 按照您的建议更新了问题。

标签: android android-webview recaptcha


【解决方案1】:

验证码需要 javascript:

myWebView.getSettings().setJavaScriptEnabled(true);

【讨论】:

  • 啊,当然!谢谢,那是我忘记的。
  • 嘿,我在基于 webView 的 Android 浏览器上看到了同样的问题。我已经启用了 javascript,但它仍然在询问“请升级到支持的浏览器以获得 reCAPTCHA 挑战”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2018-03-01
  • 2021-10-20
  • 2015-07-19
  • 2019-06-04
  • 2012-02-04
相关资源
最近更新 更多