WebView redirect https to http

最新项目大改版,刚好对相关sdk版本做了下升级,target也从19升级到21。

意外发现原先在WebView中加载的网页中的图片全都变得一片白,连默认图片都不给显示。

经过一番测试才发现是由于target版本所致。

刚好stackoverflow上有相关问题http://stackoverflow.com/questions/28626433/android-webview-blocks-redirect-from-https-to-http

 

其实就是API 20 之后WebView对Mixed Content做了限制,当从安全链接请求非安全连接时会直接block掉非安全请求,如需解除限制需手动设置

if (Build.VERSION.SDK_INT >= 21) {
        webview.getSettings().setMixedContentMode( WebSettings.MIXED_CONTENT_ALWAYS_ALLOW );
    }

 

官方文档说明

https://developer.android.com/about/versions/android-5.0.html

 

官方文档中对Mixed-Content的处理分为三种

MIXED_CONTENT_NEVER_ALLOW:默认设置,禁用所有
MIXED_CONTENT_ALWAYS_ALLOW:允许所有(不安全,官方不推荐
MIXED_CONTENT_COMPATIBILITY_MODE:兼容模式,对部分元素进行加载,策略未严格指定,一般默认加载图片、音视频,屏蔽HTML、JS、CSS。

 

我们应用中涉及到的Mixed-Content只是一些图片,所以使用兼容模式更合理。

 

转载于:https://www.cnblogs.com/xulingfeng/p/5608151.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值