2017-10-19 77 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應用程序。 –