webview使用sslError解决https跳转报错的问题

简介: 到底如何使用WebView访问https的url——处理SslError呢? 在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load。但是,当load有ssl层的https页面时,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会

到底如何使用WebView访问https的url——处理SslError呢?
在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load。但是,当load有ssl层的https页面时,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框。因此,我们必须针对这种情况进行处理。(这个证书限于2.1版本以上的Android 系统才可以)

Android的处理要用到两个类

(1)import android.NET.http.SslError;

(2)import android.webkit.SslErrorHandler;

具体的用法如下:
 

WebView wv = (WebView) findViewById(R.id.webview);  

  wv.setWebViewClient(new WebViewClient(){  

  public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){  

  //handler.cancel(); 默认的处理方式,WebView变成空白页  

   //handler.process();接受证书  

  //handleMessage(Message msg); 其他处理  

  }  

查看Android浏览器源码在TabControl.Java类中SubWindowClient方法中找,如果只是简单的接受所有证书的话,就直接调process()方法就行了

 

但是sslerror是从2.2才开始提供的。之前的版本怎么办?
可以把android2.2中onReceivedSslError()的源码导入到自己的工程中,具体方法如下:
先把android2.2包中的SslError.java和WebViewClient.java导入到自己的工程中,在导入时需要建立和android2.2源码包中一样的包名。然后在用webview的时候导包就导自己工程里的这个包名就行!

目录
相关文章
|
4月前
|
Android开发 iOS开发
WebView加载https的空白及图片加载不了的问题
WebView加载https的空白及图片加载不了的问题
236 0
|
Android开发
Electron使用webview加载部分https页面时,会因为证书出现白屏
Electron使用webview加载部分https页面时,会因为证书出现白屏
541 0
|
前端开发 API 定位技术
Android webview加载https链接错误或无响应
Android webview加载https链接错误或无响应
|
XML JavaScript Android开发
安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
一.我们先在XML当中自定义一个webview(Second_layout.xml) 代码如下: 1 2 10 15 可以看到,这里我们使用了现行布局以及WebView控件,tools:context=".SecondActivity"告诉我们这个控件是定义在第二个主活动当中的。
1359 0
|
Android开发 Windows JavaScript
背水一战 Windows 10 (63) - 控件(WebView): 基础知识, 加载 html, http, https, ms-appx-web:///, embedded resource, ms-appdata:///, ms-local-stream://
原文:背水一战 Windows 10 (63) - 控件(WebView): 基础知识, 加载 html, http, https, ms-appx-web:///, embedded resource, ms-appdata:///, ms-local-stream:// [源码下载] 背水一战...
1593 0
|
Android开发 安全 网络安全
webview使用sslError解决https跳转报错的问题
<p><span style="font-size:14px">到底如何使用WebView访问https的url——处理SslError呢?<br> 在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load。但是,当load有ssl层的https页面时,如果这个网站的安全证书
2822 0
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
1月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
165 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
5月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
1月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
90 4