發表文章

目前顯示的是 3月, 2017的文章

如何解決WebView在https網站內無法顯示http連結的圖片

如果你網站是使用https的網址,但是你的圖片連結是http的網址 或是反過來,網站是使用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