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

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

时间:2023-10-14 11:44:47浏览次数:115  
标签:证书 url 空白 handler WebView Android

这是服务器证书校验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);  

今天就写到这里啦~

  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

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

在这里插入图片描述

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

标签:证书,url,空白,handler,WebView,Android
From: https://www.cnblogs.com/sugartang/p/15787217.html

相关文章

  • 图文并茂手把手教你在MAC配置Android,nodejs环境,配置安卓真机支持投屏以及测试
    先说nodejs和npm这个很简单,只需要点击下面链接,安装node.js环境即可https://nodejs.org/zh-cn/AndroidAndroidStudio下载地址及版本说明Android开发者官网:https://developer.android.com/index.html(全球)https://developer.android.googl......
  • Android 的ViewBinding实现的原理
    AndroidViewBinding是一种用于替代传统的findViewById和findViewById的视图绑定方法。它允许你以类型安全的方式访问应用布局中的视图元素,而无需手动查找它们。ViewBinding的实现原理如下:布局文件解析:在编译期间,AndroidGradle插件会扫描项目中的布局文件(XML文件),并为每个......
  • VMware Workstation安装安卓Android-X86
    原文:VMwareWorkstation安装安卓Android-X86最新版-..Summer-博客园(cnblogs.com) 进到这个页面的人想毕已经知道 Android-X86 是什么东东,有什么用了,这里就不浪费时间啦,不知道的自己百度吧一、准备工作 官网下载地址:https://www.android-x86.org我这里使用最新版a......
  • android studio配置 compileOnly、implementation、api使用
    implementation:作用是编译同时打包,且当前mudule打包的aar或jar,不能被引用当前module的模块引用。api:作用是编译同时打包,且当前mudule打包的aar或jar,能被引用当前module的模块引用。compileOnly:作用是只编译不打包。比如项目中要引用aarA,如果项目中其他模块已经引用打包过了......
  • Android WebRTC 编译注意事项
    AndroidWebRTC编译注意事项说明文主要适用于需要从外部C++文件调用WebRTCC++接口的场景本文对应的源码基于m111分支,高版本的也可以参考Android平台用默认参数编译AndroidWebRTC存在的主要问题RTTI默认未开启C++库默认使用了webrtc内部的C++库,与外部C++库abi不兼容,由......
  • Android开发 Jetpack_Compose_7 文字
    前言此篇博客主要讲解Compose里的文字相关的UI功能。文本处理相关的内容与细节较多,此篇博客尽量涵盖完整,所以博客较长需要耐心看完。  官网文档:https://developer.android.google.cn/jetpack/compose/text?hl=zh-cnText文本全部参数这里列出全部参数,下面会一个一个举......
  • Android sdkmanager not found. Update to the latest Android SDK and ensure that t
     (base)cloud@Robotbin%flutterdoctor--android-licensesAndroidsdkmanagernotfound.UpdatetothelatestAndroidSDKandensurethatthecmdline-toolsareinstalledtoresolvethis.     ......
  • Android 外置存储卡无法使用FileProvider问题
    解决办法:<?xmlversion="1.0"encoding="utf-8"?><paths><external-files-pathname="my_images"path="."/></paths>修改为<?xmlversion="1.0"encoding="utf-8&......
  • 实时美妆魅力尽显:探索相芯轻美妆SDK功能及集成方法(Android)
    随着人工智能技术的不断发展,相芯SDK的轻美妆功能为用户带来了一种全新的美妆体验。轻美妆是妆容和美妆的结合,使用比较轻薄的妆效使轻美妆效果更佳。这一功能集成了多项先进技术,通过人脸识别、图像处理和分割等技术,实现了实时美妆效果的展示和应用。本文将深入介绍相芯SDK轻美妆功能......
  • Android 通过bin二进制程序调用jar原理
    最近在研究monkey测试,发现monkey测试的代码都是JAVA编写的,通过编译生成jar包,而我们在执行测试时直接执行/system/bin/monkey这个二进制程序的,那么它是如何能调起java程序的呢?先来看看monkey二进程程序的生成.development\cmds\monkey\Android.mkLOCAL_PATH:=$(callmy-dir)i......