Android webview只加载10%且出现白屏问题排查解决
原文:Android webview只加载10%且出现白屏问题排查解决 - Stars-One的杂货小窝
问题
有一个主页面,布局里是包含的一个自定义Webview,并且注入了些原生的方法进去,供原生JS调用
原生JS调用某个方法后,会先弹出个对话框,之后进入到另外一个含Webview的页面,并加载JS传递过来的一个url,但是却出现了白屏的问题
排查
首先,根据网上的资料,一一排查了一遍,但都没有结果
之后,我尝试注释掉了设置WebChromeClient对象,发现网页均可以正常加载
但此方法不是我想要的,因为我的自定义WebView是实现了文件上传的功能,如果不设置WebChromeClient的话,文件上传的功能不可使用
之后网上的大多是解决方案都是去改WebViewClient的,所以,肯定不是我这种情况的解决方法
在找资料的过程中,知道WebChromeClient类中提供了一个方法,可以获取当前网页的加载进度,于是重写了此方法,将进度打印了出来,但是进度就是加载到10%,之后没有任何反应了,页面也是白屏的
抱着试一试,搜索了webview 加载卡住
,结果中发现了一个符合我情况的标题Android WebView 进度卡住10%不动,页面空白,页面无反应,不报错
进去一看,瞬间就有了思路,原来是我用来测试的html里js代码有触发js弹窗,然后我又是再弹窗之后直接跳转到页面,于是新页面中的webview加载资源就被暂停调了
于是我把html里的js弹窗取消,于是网页也是能够正常加载出来了
这个问题也是排查了两天,真不容易 ?
如果硬要解释的话,webview设置了WebChromeClient,里面含有js弹窗的相关处理的方法回调,所以把新页面的webview的加载给暂停了,但是如果不设置WebChromeClient,相当于没有js弹窗拦截,所以就不会讲webview的加载给暂停
参考
相关文章
- [PHP] laravel框架注意bootstrap/cache
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(35)-Fiddler如何抓取微信小程序的包-下篇
- 网站在线客服系统源码 | 全渠道在线客服代码下载 (最新版支持外贸商城/H5/小程序/公众号对接)
- 前端vue2+vue-router3+ElementUI+axios综合使用代码教程登录页案例
- 在线客服系统对接微信小程序(客服消息推送)
- 【小程序】同一微信号在微信开发工具上怎么切换小程序
- 【小程序】微信公众号模板消息跳转小程序发送失败:errcode=40013 , errmsg=invalid appid rid:
- 【小程序】微信小程序报错47001 - data format error hint
- 【小程序】微信小程序报错:用户绑定的手机需要进行验证,请在客户端完成短信验证
- 【小程序】微信小程序设置globalData全局数据
- 【小程序】获取手机号报错:getPhoneNumber:fail no permission
- 【小程序】小程序webview不支持打开非业务域名请重新配置
- 【uniapp】uniapp微信小程序开发:启动微信开发者工具提示no such file or directory错误
- 【小程序】uniapp发行微信小程序上传失败Error: Error: {"errCode":-10008,"errMsg":"invalid ip
- 【小程序】如何获取微信小程序代码上传密钥?
- [前端] 前端bootstrap col-xs-6 col-md-3的布局意思
- 解放重复劳动丨华为云IoT API Explorer对接小程序实现系统化应用
- [小程序] 支付宝小程序使用list时提示元素不存在
- [javascript] 支付宝小程序网络GET请求
- [PHP] laravel框架注意bootstrap/cache