问题背景:
App中有一个H5页面,所有手机都能正常打开,但是高版本Android手机打开H5页面后,图片不能正常显示了,文字能正常显示。低版本手机(小米5,Android 8.0)能正常显示,浏览器能正常显示,iOS客户端也能正常显示。
从问题背景中,可以猜测大概率是Android 客户端 Webview的问题。
H5页面的协议是https
页面内图片Url的协议是http
问题就是出现在这里。
在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);
}
设置webview一直支持同时加载Https和Http。