jsBridge遇到的坑2 (h5頁面加載js文件過多,jsBridge無效)

問題:

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

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章