• Android项目在 app 中通过 WebView 访问 url显示空白,使用浏览器可以打开,Android WebView加载出现空白页面问题解决


    这是服务器证书校验WebView的安全问题

    • 服务器证书校验主要针对 WebView 的安全问题。
    • 在 app 中需要通过 WebView 访问 url,因为服务器采用的自签名证书,而不是 ca 认证,使用 WebView 加载 url 的时候会显示为空白,出现无法加载网页的情况。
    • 使用 ca 认证的证书,在 WebView 则可以直接显示出来,不需要特殊处理。
    • 以往针对自签名证书的解决方案是继承 WebViewClient 重写 onReceivedSslError 方法,然后直接使用 handler.proceed(),该方案其实是忽略了证书,存在安全隐患。
    • 安全的方案是当出现了证书问题的时候,读取 asserts 中保存的的根证书,然后与服务器校验,假如通过了,继续执行 handler.proceed(),否则执行 handler.cancel()。
    简单的解决方案(不安全)
    wv.setWebViewClient(new WebViewClient(){
     
    @override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
     
    //handler.cancel(); 默认的处理方式,WebView变成空白页
      handler.proceed();接受证书
     
    //handleMessage(Message msg); 其他处理
    }
     
    // 这行代码一定加上否则效果不会出现  
     webView.getSettings().setJavaScriptEnabled(true);  
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    今天就写到这里啦~
    • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
    • 大家要天天开心哦

    欢迎大家指出文章需要改正之处~
    学无止境,合作共赢

    在这里插入图片描述

    欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

  • 相关阅读:
    SpringMVC之CRUD和文件上传下载
    [数据可视化] 南丁格尔玫瑰图
    简单使用优雅的程序计数器-StopWatch
    K8s Pod 进阶
    【Spring底层原理】BeanFactory的实现
    c++学生管理系统
    怎么使用Stable diffusion中的models
    0011【Edabit ★☆☆☆☆☆】Return the Remainder from Two Numbers
    入门Echarts数据可视化:从基础到实践
    数据结构-树、森林、二叉树的相互转换
  • 原文地址:https://blog.csdn.net/tangdou369098655/article/details/133823116