原因:
從Android5.0以后欠气,WebView默認不支持同時加載Https和Http混合模式茁影,當一個安全的站點(https)去加載一個非安全的站點(http)時毅舆,需要配置Webview加載內容的混合模式轴术,一共有如下三種模式:
MIXED_CONTENT_NEVER_ALLOW:Webview不允許一個安全的站點(https)去加載非安全的站點內容(http),比如溜畅,https網頁內容的圖片是http鏈接庇楞。強烈建議App使用這種模式榜配,因為這樣更安全。
MIXED_CONTENT_ALWAYS_ALLOW:在這種模式下吕晌,WebView是可以在一個安全的站點(Https)里加載非安全的站點內容(Http),這是WebView最不安全的操作模式蛋褥,盡可能地不要使用這種模式。
MIXED_CONTENT_COMPATIBILITY_MODE:在這種模式下聂使,當涉及到混合式內容時壁拉,WebView會嘗試去兼容最新Web瀏覽器的風格。一些不安全的內容(Http)能被加載到一個安全的站點上(Https)柏靶,而其他類型的內容將會被阻塞弃理。這些內容的類型是被允許加載還是被阻塞可能會隨著版本的不同而改變,并沒有明確的定義屎蜓。這種模式主要用于在App里面不能控制內容的渲染痘昌,但是又希望在一個安全的環(huán)境下運行。
在Android5.0以下炬转,默認是采用的MIXED_CONTENT_ALWAYS_ALLOW模式辆苔,即總是允許WebView同時加載Https和Http;而從Android5.0開始扼劈,默認用MIXED_CONTENT_NEVER_ALLOW模式驻啤,即總是不允許WebView同時加載Https和Http。
解決辦法:
if(Build.VERSION.SDK_INT?>=?Build.VERSION_CODES.LOLLIPOP){???????
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);???
}?