Android WebView上的Javascript无法正常工作
问题描述:
我有一些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是否有助于某些用户?
答
您需要使用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
谢谢你提供的信息。在这种情况下,这种做法并不令人满意。我想这可能是该网站加载在web视图中的问题。它完全写在反应中,并且可以使用只能在新的WebView上使用的方法。所以现在,我建议更新WebView应用程序。 –