webview不能访问https的链接

xiaoxiao2021-02-27  306

在做项目的时候遇到了webview怎么也访问不来https的接口,找了半天原因,

上网查了帖子才知道,现在把原因分析写出来,和解决办法,让大家以后尽量避免这样的问题。

在Android中,WebView是用来load http和https网页到本地应用的控件。

在默认情况下,通过loadUrl(String url)方法,可以顺利load诸如,http://www.baidu.com之类的页面。

但是,当load有ssl层的https页面时,如https://money.183.com.cn/,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,

而并不会像PC浏览器中那样跳出一个风险提示框。因此,我们必须针对这种情况进行处理。

解决办法:

在认证证书不被Android所接受的情况下,我们可以通过设置重写WebViewClient的onReceivedSslError方法在其中设置接受所有网站的证书来解决,具体代码如下:

webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // TODO Auto-generated method stub // handler.cancel();// Android默认的处理方式 handler.proceed();// 接受所有网站的证书 // handleMessage(Message msg);// 进行其他处理 } }); 12345678910 12345678910

注:在重写WebViewClient的onReceivedSslError方法时,注意一定要去除onReceivedSslError方法的super.onReceivedSslError(view, handler, error);,否则设置无效。

转载请注明原文地址: https://www.6miu.com/read-3870.html

最新回复(0)