我在使用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有助于某些用户?
答案 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