赞
踩
在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么可能会出现无法成功加载对应资源问题。那么,我们就要针对这一状况作出对应的处理。为了解决这个问题,
请看以下两个方案(二选一):
1、启用mixed content。
在Android 5.0中,WebView方面做了些修改,如果你的系统target api为21以上:
在使用WebView的类中添加如下代码:
- // android 5.0以上默认不支持Mixed Content,设置支持Mixed Content
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-
webView.getSettings().setMixedContentMode(
-
WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
- }
设置WebView接受所有网站的证书,在认证证书不被android所接受的情况下,我们可以通过设置重写WebViewClient的onReceivedSslError方法在其中设置接受所有网站的证书来解决,具体代码如下:
- webView.setWebViewClient(new WebViewClient() {
- @Override
- public void onReceivedSslError(WebView view,
- SslErrorHandler handler, SslError error) {
- //super.onReceivedSslError(view, handler, error);
- // TODO Auto-generated method stub
- // handler.cancel();// Android默认的处理方式
- handler.proceed();// 接受所有网站的证书
- }
- });
注意:在重写WebViewClient的onReceivedSslError方法时,注意一定要去除onReceivedSslError方法的super.onReceivedSslError(view, handler, error);,否则设置无效。
如对此有疑问,请联系qq1164688204。
推荐Android开源项目
项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。
项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。