Android項目實戰(五十六):獲取WebView載入的url的請求錯誤碼

来源:https://www.cnblogs.com/xqxacm/archive/2019/06/20/11050436.html
-Advertisement-
Play Games

例如需求,我有一個WebView 載入一個url, 該url對應的網頁本身自帶下拉刷新 ,但是網頁本身會有出現400 500 等異常請求錯誤碼 這時候網頁載入失敗,頁面本身的下拉是無法使用的,要求重新載入頁面的話就需要在webview外層套一個android下拉控制項(SwipeRefreshLayo ...


例如需求,我有一個WebView 載入一個url, 該url對應的網頁本身自帶下拉刷新 ,但是網頁本身會有出現400 500 等異常請求錯誤碼

這時候網頁載入失敗,頁面本身的下拉是無法使用的,要求重新載入頁面的話就需要在webview外層套一個android下拉控制項(SwipeRefreshLayout)

這樣導致下拉一定用的SwipeRefreshLayout的下拉

最終要求是如果頁面載入成功的話,用頁面本身的下拉,如果頁面載入失敗的話,用android下拉控制項的下拉

--------------------------------------------------------------------------------------------------------------------------------------------

解決辦法就是監聽載入的url的請求的錯誤碼,對SwipeRefreshLayout.setEnabled() 來控制是否允許下拉刷新

 

監聽對應6.0+  6.0以下 分別為兩種實現方式:

一、Android 6.0+ 判斷請求碼

        mWebView.setWebViewClient(new WebViewClient() {
            // .....
            
            @Override
            public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
                super.onReceivedHttpError(view, request, errorResponse);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    if (errorResponse.getStatusCode() == 500 ){
                        refresh.setEnabled(true); // 放開下拉
                    }
                    LogUtils.i(TAG, "onReceivedHttpError:"+ errorResponse.getStatusCode());
                }
            }

        
        });

 

二、Android 6.0以下 判斷請求碼

        mWebView.setWebChromeClient(new WebChromeClient() {
            // .....

            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
                    if (title.contains("500")) {
                        refresh.setEnabled(true);
                    }
                }
            }
        });    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 認識資料庫 1 什麼是數據(Data) 描述事物的符號記錄稱為數據,描述事物的符號既可以是數字,也可以是文字、圖片,圖像、聲音、語言等,數據由多種表現形式,它們都可以經過數字化後存入電腦 在電腦中描述一個事物,就需要抽取這一事物的典型特征,組成一條記錄,就相當於文件里的一行內容,如: 單純的一條 ...
  • EXCEL的列:組織id,供應商編號,供應商地點,料號,最小拆分量、採購提前期、最小訂購量、最小包裝量 --採購導入更新MOQ四個值,若有為空的那列,會保留原來的值,不會去更新那列的值 PROCEDURE UPDATE_PO_MOQ AS CURSOR PO_MOQ_CUR IS SELECT ID ...
  • SQL Server目前正日益成為WindowNT操作系統上面最為重要的一種資料庫管理系統,隨著 SQL Server2000的推出,微軟的這種資料庫服務系統真正地實現了在WindowsNT/2000系列操作系統一統天下的局面,在微軟的操作系統上,沒有任何一種資料庫系統能與之抗衡,包括資料庫領域中的 ...
  • 通過天氣,溫度,風速3個特征,建立隨機森林,判斷特征的優先順序結果 天氣 溫度 風速結果(0否,1是)天氣(0晴天,1陰天,2下雨)溫度(0熱,1舒適,2冷)風速(0沒風,1微風,2大風)1 1:0 2:1 3:0結果去打球 1欄位:晴天 2欄位:溫度舒適 3欄位:風速沒風[hadoop@h201 p ...
  • sql註入判斷流程(結合sqli labs學習) 類型一 1. 類型判斷 ?id=1 and 1=2 + 如果返回結果正常,說明不是數字類型 and 為兩方都為真才算爭取 ?id=1' + 顯示不正常 ?id=1') + 若顯示正常,則該類型為字元註入,且以('')的方式閉合字元串,還有("") + ...
  • 更改oracle RAC public ip,vip,scan ip和private ip oifcfg - Oracle 介面配置工具 用法: oifcfg iflist [-p [-n]] oifcfg setif {-node | -global} {/:}... oifcfg getif [ ...
  • 資料庫設計 1. 說在前面 項目開發的流程包括哪些環節 (1) 根據市場公司需求分析公司是否需要開發軟體來輔助日常工作 (2) 公司高層市場考察,市場分析,決定做什麼軟體。 (3) 不懂技術的人想象軟體應該有什麼功能,長什麼樣子 (1) 根據領導的需求設計出產品的原型(圖紙) ① 有具體的功能,功能 ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/130 微信好友檢測助手App 最近幾周,寫了個微信好友檢測助手App,寫這個的初衷是為了低成本的讓用戶檢測自己微信上刪除或拉黑自己的好友,不考慮用xposed ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...