React Native之Android 5.0以下系統WebView訪問https頁面變成空白頁
在我們的React Native專案中,需要開發一個tab頁面專門配置三方h5連結,供使用者瀏覽。自動化測試:Android 5.0以下系統此tab頁面為空白頁面。看效果:
而我們去檢視這個三方的h5連結時,發現,這個連結是https協議開頭的連結。http是超文字傳輸協議,資訊是明文傳輸,但是https 則是具有安全性的ssl加密傳輸協議。當我們去用這臺低版本系統的Android機子去用本地瀏覽器開啟這個三方h5連結,會出現以下介面:
那麼,當我們去點選"繼續訪問",就會正常瀏覽網頁了。所以原因就出在https連結需要做SslError特殊處理。
在Android中,WebView可以用來載入http和https網頁到本地應用的控制元件。但是在預設情況下,通過loadUrl(String url)方法,可以順利loadUrl(“http://www.baidu.com”)之類的頁面。但是,當load通過ssl加密的https頁面,但是如果這個網站的安全證書在Android無法得到認證,WebView就會變成一個空白頁,而並不會像自帶的瀏覽器一樣彈出提示。因此,我們必須針對這種情況進行處理。
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//super.onReceivedSslError(view, handler, error);
handler.proceed();
}
可以參考以下連結:
哈哈哈哈哈,慢慢的開始接觸原生了。。嘻嘻(繼續Fighting~)