webview加载https页面图片不能显示问题

在webview里面加载https url的时候,如果里面需要加载http的资源或者重定向的时候,webview会block页面加载。这是android 4.4以来google对安全机制的提升。

即当一个安全站点企图加载来自一个不安全站点资源时WebView的行为,Android.os.Build.VERSION_CODES.KITKAT默认为MIXED_CONTENT_ALWAYS_ALLOW,android.os.Build.VERSION_CODES#LOLLIPOP默认为MIXED_CONTENT_NEVER_ALLOW。

报错信息如下:04-14 05:00:01.117 4844-4844/com.dlb.cfseller I/chromium: [INFO:CONSOLE(0)] "Mixed Content: The page at 'https://jj.xixilife.net//webapi/index.php?controller=goods_common&action=goods_detail&common_id=613&key=a15e5b40c2e07c09ca3efbf885cab1e8' was loaded over HTTPS, but requested an insecure image 'http://imgapi.tmmbuy.com/tmm/cq/upload/2016/12/15/20161215112933782@1080_1080.jpg'. This request has been blocked; the content must be served over HTTPS.", source: https://jj.xixilife.net//webapi/index.php?controller=goods_common&action=goods_detail&common_id=613&key=a15e5b40c2e07c09ca3efbf885cab1e8 (0)

因此,解决方法有以下两种:

1.在https页面里不能引用非安全的(http)资源,只能引用安全资源(https)(根据属性推测的方案,未实践,仅供参考);

2.在使用webview加载https页面时,我们需要设置一下属性

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值