时间:2021-01-08 12:20:40 | 栏目:Android代码 | 点击:次
PC上的浏览器会弹出证书错误的对话框,提示你是否要无视错误继续浏览。实际上在WebView里也可以这样做,以实现加载证书有问题的页面。
// *** NEVER DO THIS!!! ***
// super.onReceivedSslError(view, handler, error);
// let's ignore ssl error
handler.proceed();
}
}
只需像这样重载WebViewClient的onReceivedSslError()函数并在其中执行handler.proceed(),即可忽略SSL证书错误,继续加载页面。
这里要注意的是,千万不要调用super.onReceivedSslError()。这是因为WebViewClient的onReceivedSslError()函数中包含了一条handler.cancel()(见源码,其含义是停止加载,所以如果调用了super.onReceivedSslError(),其结果就是第一次访问时无法加载,第二次以后可以加载(不知道为什么),而且还可能发生libc的段错误: