一、问题

使用DSBridge的DWebView 在Android 6 及 以下的Android 版本网页白屏

二、解决思路

1.发现问题:DSBridge 中的DWebView 是继承原生的WebView 写的,而原生的WebView 在Android 6 及 以下的Android 版本就是会出现网页白屏问题,以下展示的是继承原生WebView的DWebView 依赖

implementation 'com.github.wendux:DSBridge-Android:3.0-SNAPSHOT'

2.使用DSBridge的X5版本

implementation 'com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT'

这个是继承X5WebView 的DWebView 依赖,不过有问题,我拉下来DSBridge工程源码发现依赖的X5 版本比较低,以至于还是白屏,所以我就拉下源码,改了X5 版本

implementation 'com.tencent.tbs:tbssdk:44085'

3.我使用了X5 的DWebView 以后,发现有时候还是白屏排查了很久时间最后在打印X5 初始化日志发现白屏原因是X5 初始化失败
X5 初始化失败常见的原因:

  1. 网络问题
  2. 没有存储权限
  3. X5 还没有初始化成功就使用相关的X5 WebView 显示网页

而我的原因就是第3种,所以我在进入网页需要判断X5 是否初始化成功才进入
4.接着我又遇到了新的问题,X5 一直初始化失败,显示110,目前还没有找到解决办法
5.最后,我就两种DWebView 都用上,一个依赖继承原生的DWebView ,另一个是将X5 版本的DWebView 源码集成到自己项目中。
初始化失败,我就使用继承原生WebView的DWebView,
而Android 6 及以下的Android 版本手机,只能初始化成功才可以进入网页

三、总结

WebView白屏最终解决办法, 不要使用原生WebView ,用X5 的WebView 代替,而使用X5 WebView 要等X5 初始化成功

原文地址:https://blog.csdn.net/weixin_41650019/article/details/122631333

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8513.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注