最后几天我试图使用客户端证书通过 webview 访问网站。我使用了来自https://github.com/yonekawa/webview-with-client-certificate的开源项目。Evertything 在 android 2.3.3 平台上运行良好,我可以安装证书并在 ssl 错误调用
onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error){
handler.proceed();}
然后
onReceivedHttpAuthRequest(final WebView view,
final HttpAuthHandler handler, final String host, final String realm)
被调用,我可以传递凭据以进行安全访问。问题是 4.x webview 没有相同的行为。我必须创建一个包含所有内部类的自定义 jar,请参阅:https ://github.com/yonekawa/webview-with-client-certificate/issues/ 1所以我可以使用隐藏方法
onReceivedClientCertRequest(WebView view,
ClientCertRequestHandler handler, String host_and_port)
问题是该方法被很好地覆盖并且项目被编译,但是该方法永远不会被调用,而是像往常一样调用onReceivedSslError,然后页面完成加载一个白页,甚至没有像 2.3 那样调用onReceivedHttpAuthRequest 。是否有人真正设法使上述示例适用于需要客户端证书和授权的网站?