2017-10-19 80 views
1

我有一些Android WebView和Javascript的问题。 一些应用程序的客户说WebView应用程序没有显示任何内容。 当我检查 - 它可能根本不显示JavaScript(整个网页是通过反应在JavaScript中加载的)。Android WebView上的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,因为重定向处理)

有什么可能改变这样的JavaScript将每个设备上加载使用Android +5.0? 在设备上更新WebView是否有助于某些用户?

回答

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

+0

谢谢你提供的信息。在这种情况下,这种做法并不令人满意。我想这可能是该网站加载在web视图中的问题。它完全写在反应中,并且可以使用只能在新的WebView上使用的方法。所以现在,我建议更新WebView应用程序。 –