Android WebView 无法加载Https(或加载错误)

来源:互联网 发布:淘宝信用卡办理 编辑:程序博客网 时间:2024/06/05 13:39

前阵子为了发布新版本APP,没有时间去解决Android 中webView无法加载https协议,由于能加载http协议就没有去深究原因,今天要发布新版本,还有足够的时间,就查了一下这个问题。
Google了一下,查到了一些方法,在这给大家一个参考:

1、重写WebView的onReceivedSslError方法,添加handler.proceed方法,但App如果上架GooglePlay会被警告的。所以建议使用下2的方法。

webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
handler.proceed();
}
});

2、Android webView 从 Lollipop 开始默认不开MixedContentMode,因此,我们开启即可满足我们大多数需求。

webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings()
.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
});

结果:

我的问题并不是出现在这些地方,而是出现了在加载Url时,部分Url使用的事http而不是https,导致无法加载,功能实现不了。那么要求后台开发人员把http改成https。就这样,成功了。

测试:

1、调用高德地图没法显示,前端工程师用了http......那么改为https

2、部分功能没实现,因为后台的没有加证书.....那么,全部改回http

3、嗯,等被插黄图广告。





0 0
原创粉丝点击