我对 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(使用前将#替换为@)