Android WebView上的Javascript无法正常工作

时间:2017-10-19 08:53:06

标签: android webview

我在使用Android WebView和Javascript时遇到了一些问题。 应用程序的一些客户说应用程序上的WebView没有显示任何内容。 当我检查 - 它可能根本没有显示javascript(整个网页通过反应加载到javascript中)。

我的代码:

    public void setupWebView(WebView accessWebView) {
    accessWebView.setWebViewClient(new WebViewClient() {

        @SuppressWarnings("deprecation")
        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url) {
            handleRedirect(accessWebView);
            return true;
        }

    });
    accessWebView.getSettings().setJavaScriptEnabled(true);
    accessWebView.getSettings().setDomStorageEnabled(true);
    accessWebView.loadUrl(URL);

(由于重定向处理,我必须使用WebViewClient,而不是WebChromeClient)

是否有任何可能更改的内容,因此在使用Android +5.0的每台设备上都会加载javascript? 是否有可能在设备上更新WebView有助于某些用户?

1 个答案:

答案 0 :(得分:1)

您需要使用setWebChromeClient在WebView中启用javascript。但不要担心,您可以同时使用setWebChromeClient和setWebViewClient。就像在官方文档中一样:

  // Let's display the progress in the activity title bar, like the
  // browser app does.
  getWindow().requestFeature(Window.FEATURE_PROGRESS);

  webview.getSettings().setJavaScriptEnabled(true);

  final Activity activity = this;
  webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress) {
      // Activities and WebViews measure progress with different      scales.
      // The progress meter will automatically disappear when we reach 100%
      activity.setProgress(progress * 1000);
    }
  });
  webview.setWebViewClient(new WebViewClient() {
    public void onReceivedError(WebView view, int errorCode, String      description, String failingUrl) {
      Toast.makeText(activity, "Oh no! " + description,      Toast.LENGTH_SHORT).show();
    }
  });

  webview.loadUrl("https://developer.android.com/");

https://developer.android.com/reference/android/webkit/WebView.html