如何找出WebView为什么不显示内容?

时间:2019-05-24 12:16:56

标签: javascript android webview

每次尝试在Webview中显示页面时,都不会发生任何事情,只有在Android 4.1-4.3(Jelly Bean)上会发生。对于Android 4.4和更高版本,它可以工作。

仅该页面无效,其他页面(例如https://www.google.com)正常工作。

我使用此代码来设置Webview。我同时使用两个客户端(WebChromeClient和WebViewClient),并覆盖了所有方法,以查看发生了什么。

    webView.setFocusable(true);
    webView.setFocusableInTouchMode(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setDatabaseEnabled(true);
    webView.getSettings().setAppCacheEnabled(true);
    webView.setWebChromeClient(new MyWebChromeClient());
    webView.setWebViewClient(new WebViewClient());

我也尝试过这个建议,但是什么也没显示。 https://developer.android.com/guide/webapps/debugging

myWebView.setWebChromeClient(new WebChromeClient() {
  public boolean onConsoleMessage(ConsoleMessage cm) {
    Log.d("MyApplication", cm.message() + " -- From line "
                         + cm.lineNumber() + " of "
                         + cm.sourceId() );
    return true;
  }
});

这似乎不是证书或TLS的问题,因为我可以看到例如本网站的联系方式部分。看来JavaScript无法正常运作,但我找不到原因。我还有其他办法可以追踪问题根源吗?

1 个答案:

答案 0 :(得分:0)

android Jellybean不支持TLS 1.2(在> 4.4 android版本上启用TLS 1.2)。如果要支持4.1-4.3,则可以从Firefox或ChromeTabs使用GeckoView(因为默认情况下,它们的Web引擎支持TLS 1.0、1.1、1.2)