一、问题描述:在android4.4的手机上是可以显示H5页面中的图片,但测试机为android 6.0,7.0,8.0,就不行。
我的H5的地址是:https://www.abc.com/new/103
我的H5中的图片地址:http://178.156.152.1/dfeafefeadfe.jpg 如下图
二、原因是:Webview在安卓5.0之前默认允许其加载混合网络协议内容 * 在安卓5.0之后,WebView默认不允许加载http与https混合内容,需要设置webview允许其加载混合网络协议内容。
解决方法:
1. 使用android自带的WebView,解决代码如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView.getSettings().setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
2.使用腾讯X5WebView的,我的低版本是(v2.2.0.1056_36542)
在X5WebView(集成时自带)页面,
第一步:initWebViewSettings()的方法中添加一行代码:
// android 5.0以上允许webView混合网络协议访问
webSetting.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
第二步:X5WebViewEventHandler 这个类要实现三个空方法
@Override
public void jsRequestFullScreen() {
}
@Override
public void jsExitFullScreen() {
}
@Override
public boolean onPermissionRequest(String s, long l, MediaAccessPermissionsCallback mediaAccessPermissionsCallback) {
return false;
}
或者 更新到最新版本(v3.6.0.1325_43613)
腾讯X5WebView下载地址:https://x5.tencent.com/tbs/sdk.html
更新新版本我没有用试。