问题
WebView页面图片无法显示;
log报错:
chromium: [INFO:CONSOLE(0)] "Mixed Content: The page at xxx was loaded over HTTP
原因
如果不单独设置,WebView是不支持在Https域名下加载Http资源的。
设置办法:
//允许混合模式(http与https)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
深入一点
为什么不允许?
当用户访问HTTPS页面时,与WEB服务器之间的连接是使用SSL加密的,从而保护连接不受嗅探器和中间人攻击。
如果HTTPS页面包含由普通明文HTTP连接的内容,那么连接只是被部分加密,非加密的内容可以被嗅探者入侵,并且可以被中间人攻击者修改,因此连接不再受到保护。