问题:
Android 食用JsbridgeWebView与h5进行交互,h5注册JsBridge,在调用时bridge时有时候为空
分析:
JsBridgeWebView通过BridgeWebViewClient 进行代理 ,注入 WebViewJavascriptBridge.js文件
查看源码发现注入jsBridge的js文件是在 WebViewClient的 onPageFinished回调中
设置log日志 可以发现,当页面复杂度较高时,h5一直处于加载中,并没有回调 onPageFinished 方法
百度一下发现,这种情况还是很多的
但是我这里将复杂的h5链接替换为http://www.baidu.com ,很顺利的回调了 onPageFinished
猜测 h5页面复杂度较高,加载了很多js文件,页面一直处于加载中,所以页面不算 加载完成
解决方案:
因为我这里是使用的 setWebChromeClient 去显示和隐藏加载进度,发现 无论页面多卡段 onProgressChanged中 newsProgress是有回调100进度数值数据的,在进度到100时会关闭展示的进度条,顺便主动触发一下 webViewClient.onPageFinished,但需要注意的是当前API是 8.0以上才被public
来源:CSDN
作者:爱吃橙子-
链接:https://blog.csdn.net/jiushiwo12340/article/details/104407964