解决Android Webview 加载一些网页出现白板现象

编程入门 行业动态 更新时间:2024-10-27 22:26:03

解决Android Webview 加载一些网页出现<a href=https://www.elefans.com/category/jswz/34/1709306.html style=白板现象"/>

解决Android Webview 加载一些网页出现白板现象

今天写了几个网址的链接,同一个WebView加载,其他几个链接都可以,但有一个就是不行,测试半天最总找到原因:
测试网址,具体如下
山东牧院——/
中国猪病网——/
中国禽病网——/
中国水产网——/
中国畜牧网/
中国兽药网/
美菜网——/
只有中国水产网——,如下测试,排查原因:
1、经过OnLoadResource调试已经执行,即资源文件已经加载成功;
2、onReceivedSslError也没有回调到,用自带浏览器和UC都正常,证明链接本身没有问题;
3、其他几个链接页面都成功加载,即Webview也正常运行,没有出现错误,那就是Webview的配置问题了;
经过N个测试,把

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
都打开,还是未解决。

最终设置 webView.getSettings().setDomStorageEnabled(true);后成功。
按照API的说明 Sets whether the DOM storage API is enabled. The default value is false.

也就是是否开启本地DOM存储。应该是Html 5中的localStorage(可以使用Android4.4手机和Chrome Inspcet Device联调),用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的,绝大多数的浏览器都是支持 localStorage 的,但是鉴于它的安全特性(任何人都能读取到它,尽管有相应的限制,将敏感数据存储在这里依然不是明智之举),Android 默认是关闭该功能的。

还有一种是加载https的URL时在5.0以上加载不了,5.0以下可以加载,这种情况可能是网页中存在非https得资源,在5.0以上是默认关闭,需要设置,

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

WebView的问题一般查看log就能找到问题的原因。

更多推荐

解决Android Webview 加载一些网页出现白板现象

本文发布于:2024-03-06 18:35:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716069.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:白板   加载   现象   网页   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!