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

到底如何使用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的时候导包就导自己工程里的这个包名就行!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构之路

hadoop2.6分布式部署时 livenodes等于1的原因

1.问题描述 在进行hadoop2.x版本的hdfs分布式部署时,遇到了一个奇怪的问题: 使用start-dfs.sh命令启动dfs之后,所有的datanode...

3487
来自专栏有趣的Python

程序员装机必备爆款软件推荐与配置(windows版)

做机也要做一只全能的机哦 值此新年来临之即,面对两百多个G的c盘。忍痛割爱将电脑系统重装,版本为(win10:1079)之后的所有电脑环境更新,专业软件安装均会...

4453
来自专栏Android开发指南

Android Training Note

3486
来自专栏Android机器圈

WebView与js交互

在Project模式,main目录下,和java文件同级创建assets目录,assets目录下创建test.html,图片你随便找两张也放在asset是目录下...

4577
来自专栏极客编程

以太坊区块链 Asp.Net Core的安全API设计 (下)

上一篇用以太坊区块链保证Asp.Net Core的API安全(上)我们介绍了基本的解决方案,这一篇我们重点来看客户端。

983
来自专栏数据库新发现

分配磁盘组(EMC阵列)

# ifconfig -a lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 in...

1452
来自专栏web前端

用DAEMON TOOLS打开rational ross 的bin文件并安装过程梳理

最近要开始准备毕业设计了,学习熟悉了一些UML用例图、类图之类的,开始准备用自家PC电脑画图的时候发现Rational Ross没安装。 本以为简单,却碰上bi...

2048
来自专栏安恒信息

当心,Kaskitya木马伪装成“京卡-互助服务卡”欺骗用户!

最近,我们关注到一起APT攻击事件,攻击者通过钓鱼邮件的方式投递含有恶意代码的附件,此附件包含一个名叫“Kaskitya”的木马。

1092
来自专栏大魏分享(微信公众号:david-share)

讲真,Ansible 可以管理Windows?

前言: 本文是我和李尧老师一起实验。李尧是红帽高级培训讲师,目前负责红帽中国区员工内部技术培训与认证。 一、Ansible能对windows做什么操作? Ans...

7385
来自专栏猿份到

那些年遇到的bug(2)

bug系列又出炉了,过来瞧瞧啦 1、webview常出现的问题 之前android虚拟机一直都可以直接联网,今天写了一个WebView之后,突然报出了...

35012

扫码关注云+社区

领取腾讯云代金券