日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

x5webview TbsReaderView首次加载失败

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 x5webview TbsReaderView首次加载失败 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android應用內預覽PDF,WORD,EXCEL等文件,大家伙都嘗試了太多開源方法,各種兼容性問題,最后總算是有騰訊X5WebView來幫忙,x5的TbsReaderView的確是解決了兼容性問題,可以加載大部分的文檔文件,然后官方文件簡陋無比,坑也是太多。本文不贅述內核初始化api和加載文檔的api,只闡述一個問題:首次啟動app后,打開文檔文件時,內核沒有加載成功,重啟正常。

先說處理結果:

如果QbSdk.initX5Environment在Application里邊初始化,那么肯定無法優先拿到Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE這兩個權限,那么內核下載和加載都會失效,所以只有在文件存儲權限之后加載內核,才會成功。那么問題就很簡單了,把初始化x5內核放在請求文件存儲權限成功后執行,就可以完美解決

為何大部分人是首次加載失敗,殺掉進程重啟就可以用:

因為在application里沒法請求動態權限,所以文件存儲權限大部分應用都會在之后的activity里獲取到,所以本次首次啟動加載內核時還沒有權限,下一次啟動時,已經存在權限,那么application里加載內核就是成功的。

總結:

必須在文件存儲權限動態請求成功后,再做x5內核的初始化加載

心得:

處理這個問題,經歷了幾個過程:

1、偶然在一些機型上發現,但后續該機型又恢復正常,此前一直徘徊在兼容性問題上。后來經過多機型多次情景的測試,發現都會出現,就排除機型兼容問題,開始做情景回顧

2、情景回顧過程中,發現首次安裝啟動無法打開pdf文件,殺死進程重啟可以正常使用。推測首次啟動內核加載有問題

3、百度google了很多關于內核啟動問題的文章,大家都在考慮網絡問題,異步問題等,然后第二次啟動基本沒出現問題,所以覺得和其他人說的那些因素關系不大

4、關鍵在于解決問題要從代碼和日志先走起,可能會少走彎路。在日志里看到了x5的日志,有關于file permission deny的相關提示,考慮到某文件可能無法訪問,剛好結合內核加載異常,那很可能就是內核做為文件,無法下載存儲或無法讀取到內存,于是就增加了文件權限,問題解決

總結

以上是生活随笔為你收集整理的x5webview TbsReaderView首次加载失败的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。