html5封装成安卓https就显示空白的解决

最近在做h5封装成安卓的项目,先前封装http的能够正常显示,换成https,直接显示空白。原来当load通过ssl加密的https页面,可能网站的安全证书安卓无法识别认证,所以会显示空白,因为安卓的原因,无法显示出提示的弹窗,因此,必须在认证情况进行处理。

针对Android4.0以上版本进行了测试

1、首先引入import两个类

import  android.net.http.SslError ;
import  android.webkit.SslErrorHandler ;
2、在webview封装的地方,加入接受证书认证

mWebView = (WebView) findViewById(R.id.picc_web_view);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.requestFocus();
mWebView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);

mWebView.setWebViewClient(new WebViewClient() {
@Override
   public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
 
       // 不要使用super,否则有些手机访问不了,因为包含了一条 handler.cancel()
       // super.onReceivedSslError(view, handler, error);

     //handler.cancel(); 默认的处理方式,WebView变成空白页
      //handler.process();接受证书
      //handleMessage(Message msg); 其他处理

       // 接受所有网站的证书,忽略SSL错误,执行访问网页
       handler.proceed();
   }

使用process()函数时,系统就会忽略证书的错误,继续下载页面内容,不会显示空白页面。


你可能感兴趣的:(android)