如何解決WebView在https網站內無法顯示http連結的圖片
如果你網站是使用https的網址,但是你的圖片連結是http的網址
或是反過來,網站是使用http的網址,但是圖片連結是https的網址
那麼這就是混合式的內容
最近發現有些手機的WebView讀取圖片的時候無法正確顯示,後來才發現原來是因為圖片使用了https的連結,在Android 5.0以上的WebView預設都會無法正常顯示混合式的網頁內容。
解決的方法就是WebView加入setMixedContentMode的設定即可:
但這個時候,如果你開發的app有支援到5.0以下的版本(假設是4.2),此時你的Android Studio會提示你:
意思是說你用了一個必須在API 21以上才有的WebView setting函式,但你目前的app最低支援到API 17。所以這個時候建議你再加上一個判斷Android版本的防禦寫法就可以解決警告訊息了,同時也可以避免Android 5.0以下的手機閃退。
reference:
http://stackoverflow.com/questions/31509277/webview-images-are-not-showing-with-https
或是反過來,網站是使用http的網址,但是圖片連結是https的網址
那麼這就是混合式的內容
最近發現有些手機的WebView讀取圖片的時候無法正確顯示,後來才發現原來是因為圖片使用了https的連結,在Android 5.0以上的WebView預設都會無法正常顯示混合式的網頁內容。
解決的方法就是WebView加入setMixedContentMode的設定即可:
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
但這個時候,如果你開發的app有支援到5.0以下的版本(假設是4.2),此時你的Android Studio會提示你:
Call requires API level 21 (current min is 17): android.webkit.WebSettings#setMixedContentMode
意思是說你用了一個必須在API 21以上才有的WebView setting函式,但你目前的app最低支援到API 17。所以這個時候建議你再加上一個判斷Android版本的防禦寫法就可以解決警告訊息了,同時也可以避免Android 5.0以下的手機閃退。
if(Build.VERSION.SDK_INT >= 21){ webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }
reference:
http://stackoverflow.com/questions/31509277/webview-images-are-not-showing-with-https
留言
張貼留言