我对 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 请求的数据,这使我无法使用这种方法。