WebView中图片等资源加载失败
有些情况下WebView中加载一些资源会失败,其中一个原因就是在Android 5.0开始WebView默认不允许加载http与https混合页面,即不支持同时加载Https和Http请求,比如https页面加载http图片或者http页面加载https图片,那图片就显示不出来;这时可以通过如下方法进行设置
//https与http混合资源加载
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
该方法设置WebView的加载模式,参数有三种选择:
MIXED_CONTENT_NEVER_ALLOW:Webview不允许一个安全的站点(https)去加载非安全的站点内容(http),比如https网页内容中的图片是http链接
MIXED_CONTENT_ALWAYS_ALLOW:WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http), 这是WebView最不安全的操作模式,但是一般是一了百了的写法
MIXED_CONTENT_COMPATIBILITY_MODE:当涉及到混合内容时,WebView会尝试去兼容最新Web浏览器的风格。一些不安全的内容(Http)能被加载到一个安全的站点上(Https),而其他类型的内容将会被阻塞。这些内容的类型是被允许加载还是被阻塞,可能会随着版本的不同而改变,官网并没有给出明确的定义。这种模式主要用于在App里面不能控制内容的渲染,但是又希望在一个安全的环境下运行