webview混合内容问题

来源:互联网 发布:在淘宝怎么找货源 编辑:程序博客网 时间:2024/05/23 13:46

有一个链接,是第三方开发的,用项目APP的WebView打开,在部分手机上可以正常使用,而在另外一部分手机上使用时无法选择出生日期,链接如下:

http://docwechat.91160.com/app/smartimate.html


除了APP内的WebView,尝试了其他浏览器,结果如下:

安卓QQ浏览器:Y

安卓华为P9内置浏览器:Y

安卓微信内置浏览器:Y

安卓小米默认浏览器:N

WIN微信浏览器:N

WINQQ浏览器:N

WINChrome浏览器:N


因为大部分安卓浏览器能够正常使用,所以猜测能通过改变WebView的配置解决。


使用windowsQQ浏览器打开开发者工具:



发现报了一堆错,发现datepicker方法无效。

datepicker方法因为http方式的js被阻塞而无效。


查找资料,发现Mixed Content问题发生在HTTPS页面中通过HTTP方式引用资源。

对于安卓,WebView有配置可以设定Mixed Content的行为。

产生这种行为的原因是在安卓21之前,这种行为默认是被允许的,而21之后,Mixed Content被视为不安全的行为被默认禁止。


知道原因,就暂时有了解决方法(因为H5是第三方的,已经交付,只能牺牲了安全性):

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

0 0
原创粉丝点击