使用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 初始化失败常见的原因:
- 网络问题没有存储权限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 初始化成功
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)