1. 程式人生 > >android https載入WebView圖片不顯示問題

android https載入WebView圖片不顯示問題

在webview裡面載入https url的時候,如果裡面需要載入http的資源或者重定向的時候,webview會block頁面載入。這是Android 4.4以來google對安全機制的提升。

即當一個安全站點企圖載入來自一個不安全站點資源時WebView的行為,android.os.Build.VERSION_CODES.KITKAT預設為

MIXED_CONTENT_ALWAYS_ALLOW,android.os.Build.VERSION_CODES#LOLLIPOP預設為MIXED_CONTENT_NEVER_ALLOW。
Android webview 從Lollipop開始webview預設不允許混合模式,https當中不能載入http資源,需要設定開啟。 Mixed content using HTTP and HTTPS on WebViews are disabled by default starting Lollipop. Is possible that is not working on devices with Lollipop? If this is the case, you can change the default WebView setting on Lollipop using: webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

因此,解決方法有以下兩種:

1.在https頁面裡不能引用非安全的(http)資源,只能引用安全資源(https)(根據屬性推測的方案,未實踐,僅供參考);

2.在使用webview載入https頁面時,我們需要設定一下屬性

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}