国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 7.0系統webview 顯示https頁面空白處理方法

2019-10-21 21:43:59
字體:
來源:轉載
供稿:網友

最近開發的時候,偶爾遇到在線上穩定運行的webview內嵌的h5頁面加載不出來,一直定位不到具體原因(因為我們自己做的兼容性測試上不重現),看系統日志也沒有發現什么問題,后來咨詢了用戶手機的型號,發現是7.0或者6.0以上的個別機型會出現。

后來借到了一臺業務的手機,型號是:三星 S6 EDGE,SM-G9205,在大多數機型上運行正常的頁面,在這個機器上如下圖:

Android,webview,https,頁面空白

這個頁面在近期的變更是從http切換到https,由于之前的頁面是http,我們在切換的時候,除了url之外,并未對webview的ssl校驗做特殊的處理。

問題就出在這里,webview在加載https的時候,通常會用手機根證書對h5的頁面進行校驗,這個校驗不一定成功。

失敗的時候會回調webviewclient的onReceivedSslError函數。

既然如此,我們可以在證書校驗失敗的情況下,將其跳過,繼續加載就可以了,如下:

  public void onReceivedSslError(WebView view, android.webkit.SslErrorHandler handler, android.net.http.SslError error) {  	   handler.proceed();//這里校驗失敗的時候放過     };

重新運行后發現,這個方法是可行的,他在ssl校驗失敗的時候繞過了這個步驟。

但是問題又來了,我們切換https,本來就是希望利用ssl這一層,保證加載頁面的安全性,現在統一跳過,不是達不到安全的初衷了嗎。

繼續調試,我們將 onReceivedSslError這里面的SslError信息打出來,發現是下面的錯誤:

SslError.SSL_INVALID//校驗過程遇到了bug

這個錯誤是webviewclient在校驗ssl的過程中,出現了bug。

查閱源碼后發現,全量的錯誤一共有如下幾類:

Android,webview,https,頁面空白

其中有的是證書本身有問題,有的是校驗出了bug,因此全部放過雖然是最便捷的,但可能不是最好的。

最后我判斷,在ssl校驗失敗的情況下,如果是校驗過程遇到了bug,那就放過,其他情況就cancel:

  	if(error.getPrimaryError() == android.net.http.SslError.SSL_INVALID ){// 校驗過程遇到了bug		  	handler.proceed();		  }else{		  	handler.cancel();	  }

以上這篇Android 7.0系統webview 顯示https頁面空白處理方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛阳市| 洛宁县| 荥经县| 江门市| 民乐县| 北川| 南陵县| 云梦县| 定兴县| 浦县| 炉霍县| 拉孜县| 广安市| 泰和县| 牙克石市| 景洪市| 沙坪坝区| 垫江县| 淮南市| 油尖旺区| 塔河县| 南部县| 布尔津县| 阿勒泰市| 昌邑市| 衡东县| 石泉县| 屏东县| 专栏| 和平区| 黄骅市| 油尖旺区| 同仁县| 遵义市| 辽阳市| 罗甸县| 兴业县| 兴业县| 博罗县| 盐边县| 射阳县|