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

问题:

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

分析:

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

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

jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)_第1张图片

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

jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)_第3张图片

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

jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)_第4张图片

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

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

jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)_第5张图片
但是我这里将复杂的h5链接替换为http://www.baidu.com ,很顺利的回调了 onPageFinished

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

解决方案:

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

jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)_第6张图片

 

 

 

 

你可能感兴趣的:(jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效))