安卓webview斷網處理

2022-07-20 05:36:13 字數 844 閱讀 1677

乍看挺簡單的需求,但在實際過程中頁碰到了不少坑,主要是webview造成的,在此記錄一下。

一:如何判斷網路出錯:

方案:在webviewclient的**中監聽onreceiveerror**,如果走到這裡,說明網路出錯了,隱藏webview,顯示自定義出錯介面。

於是有了:

如果這麼做,會有許多問題:

問題1:該函式是6.0才有的,6.0以下的手機只能用乙個過時的**:

解決方案:為了相容,需要兩個**都寫上,都進行處理

解決方案:由於網路斷開的時候的description是獨有的(errorcode不行),所以可以用description進行判斷:

其中注意,error.getdescription需要在api > 安卓6.0才能用,需要新增註解@requireapi。

二:如何恢復顯示

方案:出錯的判斷已經好了,那麼如何在網路恢復的時候顯示webview呢?因為沒有網路恢復的**,自然想到用乙個flag來記錄網路是否出錯。即在onpagestarted的時候flag為false,即沒有出錯,如果**到onerror裡,讓flag=true,此時在onpagefinished**裡就能知道網頁有沒有出錯了。

解決方案:判斷progress,只有等於100時,才顯示webview,隱藏自定義出錯介面。

安卓時間處理

字母 日期或時間元素 表示示例 gera 標誌符 text ad y年 year 1996 96 m年中的月份 month july jul 07 w年中的週數 number 27 w月份中的週數 number 2 d年中的天數 number 189 d月份中的天數 number 10 f月份中的星...

安卓隨手筆記十一 (webView的使用)

webview可以把網頁顯示客戶端,也可以做放大和縮小等操作 想要webview 載入頁面 只需webview.loadurl 當然別忘了新增網路許可權 只不過這個時候呼叫的webview會啟動手機的瀏覽器,如果我們不想啟動手機的瀏覽器,只是在控制項中展示,我們可以這樣做 webview.setwe...

安卓webview快速載入網頁研究提速 一級加速

改變內容 1.若是同步請求,當ii載入到10000時才會顯示網頁,若是非同步請求,ii顯示為0時就載入網頁,不會影響整個網頁的載入 結論 ajax是同步請求測試驗證 測試發現要在網頁上看到具體內容是for迴圈 執行完成後才顯示的 ajax是非同步請求測試驗證 測試發現網頁顯示不必等待for迴圈載入完...