91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android7.0系統中webview顯示https頁面空白怎么辦

發布時間:2021-07-14 09:59:56 來源:億速云 閱讀:408 作者:小新 欄目:移動開發

這篇文章主要介紹Android7.0系統中webview顯示https頁面空白怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

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

Android7.0系統中webview顯示https頁面空白怎么辦

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

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

失敗的時候會回調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。

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

Android7.0系統中webview顯示https頁面空白怎么辦

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

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

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

以上是“Android7.0系統中webview顯示https頁面空白怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄龙县| 清镇市| 甘谷县| 东丰县| 宜城市| 勐海县| 门源| 吕梁市| 扬州市| 黔东| 莱西市| 福鼎市| 双城市| 玛曲县| 应城市| 光泽县| 石河子市| 诸暨市| 清徐县| 新邵县| 邢台市| 昌江| 房山区| 南汇区| 大埔县| 塔城市| 普陀区| 杭州市| 衡南县| 临武县| 谷城县| 通渭县| 图木舒克市| 隆昌县| 五莲县| 都昌县| 耒阳市| 宣武区| 资兴市| 中阳县| 烟台市|