jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)

孤者浪人 提交于 2020-02-21 06:52:41

问题:

Android 食用JsbridgeWebView与h5进行交互,h5注册JsBridge,在调用时bridge时有时候为空

分析:

JsBridgeWebView通过BridgeWebViewClient 进行代理 ,注入 WebViewJavascriptBridge.js文件

查看源码发现注入jsBridge的js文件是在 WebViewClient的  onPageFinished回调中

设置log日志 可以发现,当页面复杂度较高时,h5一直处于加载中,并没有回调 onPageFinished 方法

百度一下发现,这种情况还是很多的

https://blog.csdn.net/weixin_34107955/article/details/88000222?utm_source=distribute.pc_relevant.none-task


但是我这里将复杂的h5链接替换为http://www.baidu.com ,很顺利的回调了 onPageFinished

猜测  h5页面复杂度较高,加载了很多js文件,页面一直处于加载中,所以页面不算 加载完成

解决方案:

因为我这里是使用的 setWebChromeClient 去显示和隐藏加载进度,发现  无论页面多卡段  onProgressChanged中 newsProgress是有回调100进度数值数据的,在进度到100时会关闭展示的进度条,顺便主动触发一下 webViewClient.onPageFinished,但需要注意的是当前API是 8.0以上才被public

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!