Android 4 ICS 上带有 SSL 客户端证书的 WebView

2023-11-22

我对 Android 上的本机 WebView 有问题。我需要使用 SSL 客户端证书对站点进行身份验证。 Android WebView 似乎不支持这个。作为解决方法,我使用了 WebView 的修改版本:

https://github.com/yonekawa/webview-with-client-certificate

修改后的 WebView 的工作原理是将正确配置的 SslSocketFactory 注入到标准 Android WebView 中。这在 Android 2.x 设备上运行良好。然而,对于 Android 4 ICS,它不再起作用了。 SslSocketFactory 仍然存在于 ICS 中,但是,似乎不再使用它。

所以我的问题是:有没有人成功地在 ICS 上配置 Android WebView,以便它可以使用客户端证书?或者有什么替代方案吗?

我已经尝试过的:

  • 将 SSL 客户端证书导入 Android 密钥库,然后直接使用 WebView,无需任何修改。这不起作用,客户端证书不会与请求一起发送。不过,它可以在本机浏览器中运行。

  • 使用 HttpClient 自己创建 SSL 连接,获取站点的 HTML 并将其传递给 WebView。这基本上可以工作,但是我需要拦截 WebView 发出的所有请求并自己处理它们。但是,WebView 不提供 POST 请求的数据,这使得这种方法对我来说无法使用。


我认为你想要的是覆盖以下隐藏方法:

public void onReceivedClientCertRequest(WebView view,
ClientCertRequestHandler handler, String host_and_port) {

默认情况下,这将取消请求。

我按照此示例使用了此方法来使用隐藏的 API:http://devmaze.wordpress.com/2011/01/19/using-com-android-internal-part-5-summary-and-example/

抱歉回复晚了。刚刚偶然发现你的问题... 希望它仍然有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 4 ICS 上带有 SSL 客户端证书的 WebView 的相关文章

随机推荐

  • 从 Swift 调用 getsectiondata

    此问答描述了如何在现代 OS X macOS 版本上使用 Objective C 从 Mach O 部分读取数据 从 getectbyname 读取字节时发生崩溃 所描述的答案有效 我正在尝试用 Swift 实现同样的事情 我无法让它发挥作
  • 更改 root 密码后 PHPMyAdmin 无法连接

    我安装了 Xampp 适用于 Windows 我很高兴使用它的所有功能 然后我想更改MySql密码 我设置了一个随机生成的密码 rCZ4Xnz78zbLY2Vh 然后 PHPMyAdmin 停止登录 它开始给出以下错误消息 此后一直如此 E
  • 如何修复错误:无法注册具有相同名称的 2 个指标:/tensorflow/api/keras/optimizers

    当我尝试利用 TensorFlow 库运行用于深度学习的 Python 代码时 出现以下错误 2021 10 24 10 07 13 619481 W tensorflow stream executor platform default
  • gt table - 单元格中的换行符

    我尝试使用 R gt 包在 gt 单元格中强制换行 在 gt 文档中 描述了可以使用以下方法对列标签执行此操作cols label example gt tbl gt cols label col html text1 br text2 但
  • 首次启动应用程序时显示对话框

    有没有一种简单的方法可以在程序第一次启动 并且只是第一次 时显示对话框 以进行某种指令或指定设置 您可以将其保存为设置中的布尔值 并且应该检查第一个表单的加载事件 您的设置文件应该有一个我称为 FirstRun 的设置 请按照以下步骤操作
  • R中两个变量的直方图

    我有两个变量想要在直方图中进行比较 如下所示 对于直方图的每个箱 都会显示两个变量的频率 这使得比较它们变得很容易 您可以使用add参数为hist see hist plot histogram hist rnorm 1000 mean 0
  • Magento - 如何将分层导航添加到高级搜索?

    如何将分层导航添加到高级搜索结果页面 Magento 版本 1 7 下面的补丁将在高级搜索结果中显示分层导航 并且可以与分层导航配合良好 分层导航和搜索结果基于两个单独的产品集合显示 其中一个由目录搜索 模型 Layer php另一个由目录
  • 如何在 Libgdx 中跟踪多个触摸事件?

    我正在使用 Libgdx 制作赛车游戏 我想触摸屏幕的右侧一半来加速 同时在不删除先前触摸点的情况下再次触摸屏幕左侧的另一个触摸点来射击 我无法检测到后来的接触点 我已经搜索并得到Gdx input isTouched int index
  • Windows 视觉主题:零件和状态库?

    Microsoft Windows 允许程序员使用当前主题的外观和感觉 使用诸如DrawThemeBackground and DrawThemeText 这些元素由类 零件和状态指定 如零件和状态MSDN 页面 不幸的是 该页面的信息并不
  • Spring配置@ResponseBody JSON格式

    想象一下我在 Spring 3 Controller 中有这个带注释的方法 RequestMapping public ResponseBody MyObject index RequestBody OtherObject obj MyOb
  • 如何在IntelliJ IDEA中查看JavaDoc? [复制]

    这个问题在这里已经有答案了 I just switched from Eclipse to IntelliJ IntelliJ lacks one feature from Eclipse when you put your mouse o
  • 如何在 Java 中将整数转换为本地化的月份名称?

    我得到一个整数 我需要转换为各种语言环境中的月份名称 区域设置 en us 的示例 1 gt 一月2 gt 二月 区域设置 es mx 的示例 1 gt 埃内罗2 gt 费布雷罗 import java text DateFormatSym
  • Jmeter 的 WebSocket 插件 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人可以与我分享 JMeter Websocket 协议插件采样器的链接吗 我尝试从下面的链接安装 https github com kawasim
  • 错误:管道损坏/MySQL 服务器已消失

    MySQL 抛出 Broken Pipe 和 MySQL Server has gone gone 错误 我的数据库表包含文本字段 我每隔 1 小时定期在其中插入大型 HTML 我应该考虑设置哪个 MySQL 变量 这是当前配置 mysql
  • C语言的unicode你好世界?

    我正在尝试从 C 输出 蠀 等内容 include
  • 启动和停止来自广播接收器的通知

    我正在尝试从广播接收器启动状态栏通知 然后从另一个广播接收器停止它 但我遇到了问题 我想在 USB 连接时在状态栏中启动通知 然后在 USB 断开连接时我想停止它 我设置了两个接收器并正在工作 只是在从接收器启动和停止一个接收器方面遇到困难
  • 如何从 DatePickerDialog 获取 DatePicker?

    我有一个活动弹出 android app DatePickerDialog DatePickerDialog dialog new DatePickerDialog this startDateSetListener start cal g
  • 固定页眉

    我以前从未处理过 CSS 但现在我必须处理 我正在开发一些 HTML 代码 一个网站的草图 并且有 CSS 问题 我希望我的标题位于固定位置 我的意思是它始终应该位于网站的顶部 即使有太多内容以至于网站必须滚动才能看到所有内容 我尝试过一些
  • 删除控制器/类中的 HttpServletRequest 参数的最佳方法?

    我有一个情况 我需要将 HTTP 请求对象重定向到其他控制器 类以进行进一步处理 问题是 在某些控制器中 我想更好地控制我转发到下一个类的参数 修改 编辑 删除它们 所以 我想知道是否有一个好的实践 模式来实现对 HTTP 请求参数的基本控
  • Android 4 ICS 上带有 SSL 客户端证书的 WebView

    我对 Android 上的本机 WebView 有问题 我需要使用 SSL 客户端证书对站点进行身份验证 Android WebView 似乎不支持这个 作为解决方法 我使用了 WebView 的修改版本 https github com