android - 最近 chrome 更新后 Webview 显示空白页
问题描述
我知道这个问题之前已经被问过,但我无法解决它。我正在尝试在 Webview 上播放嵌入视频 URL 并通过 shouldOverrideUrlLoading 过滤其他不良 URL。每当单击嵌入视频播放图标时,都会调用大约空白并加载空白页面。在更新之前,一切正常,并且突然间我遇到了这个问题。该问题仅在某些设备上出现。
这是我的 Webview 代码:
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebChromeClient(new MyWebChromeClient(this));
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("myserverUrl1.co/") ||url.contains("myserverUrl2.to/")) {
Log.e("first", url);
view.loadUrl(url);
}
Log.e("videoUrl", url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.e("page started", url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.e("finished", "finished loading" + url);
}
Log.e("url final load", url);
mWebView.loadUrl(url);
mWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
这是我的 Logcat
E/url final load: https://myserverUrl1.co/embed/_KNy4THqon4
E/page started: https://myserverUrl1.co/embed/_KNy4THqon4
E/finished: finished loadinghttps://myserverUrl1.co/embed/_KNy4THqon4
E/page started: about:blank
E/videoUrl: http://syndication.exosrv.com/splash-zones-split.php?st=ref&main_zone=2792946&type=8&sub=5&ref=https%3A%2F%2Fopenload.co
E/finished: finished loading about:blank
请帮我解决这个问题。谢谢
解决方案
这些是解决我问题的一堆设置
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setLoadWithOverviewMode(false);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
并在应用程序内的清单文件中添加
android:hardwareAccelerated="true"
推荐阅读
- python - 合并reportlab表中的列
- angular - 带有固定标题和分页器的 Angular 6 材质数据表
- android - Xamarin.Forms:自定义字体和 FontAttributes
- jquery - jquery表单通过带有值的按钮提交
- linux - RSYNC 需要 ssh 目录或文件才能成功
- java - Java,第二次材料交互不起作用?
- android - 通过更改包名,会产生什么后果?
- powershell - 拆分字符串,然后分配拆分
- ruby-on-rails - 解码和更新图像属性 -carrierwave gem
- javascript - 如何制作 React Native 模态窗口?