一、原因
Android 5.0 更改了應用的默認行為。
-
如果您的應用是面向 API 級別 21 或更高級別:
- 默認情況下,系統會阻止混合內容和第三方 Cookie。要允許混合內容和第三方 Cookie,請分別使用 setMixedContentMode()和 setAcceptThirdPartyCookies() 方法。
- 系統現在可以智能地選擇要繪制的 HTML 文檔部分。這個新的默認行為有助于減少內存占用和提升性能。如果您要一次渲染整個文檔,可通過調用 enableSlowWholeDocumentDraw()`停用此優化。
- 如果您的應用是面向低于 21 的 API 級別:系統允許混合內容和第三方 Cookie,并始終一次渲染整個文檔。
二、解決方法
//Android Lollipop(5.0)開始 webview默認不允許混合模式,https當中不能加載http資源,如果要加載,需單獨設置開啟。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}