我对Android、WebView和Javascript有一些问题。app的一些客户表示,app上的WebView没有显示任何内容。据我所知,它可能根本不显示javascript (整个网页都是由react加载到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会对某些用户有所帮助?
发布于 2017-10-19 09:34:48
您需要在WebView中使用setWebChromeClient来启用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
https://stackoverflow.com/questions/46826117
复制