WebViewClient.OnReceivedClientCertRequest(WebView, ClientCertRequest) 方法

定义

通知主机应用程序处理 SSL 客户端证书请求。

[Android.Runtime.Register("onReceivedClientCertRequest", "(Landroid/webkit/WebView;Landroid/webkit/ClientCertRequest;)V", "GetOnReceivedClientCertRequest_Landroid_webkit_WebView_Landroid_webkit_ClientCertRequest_Handler")]
public virtual void OnReceivedClientCertRequest (Android.Webkit.WebView? view, Android.Webkit.ClientCertRequest? request);
[<Android.Runtime.Register("onReceivedClientCertRequest", "(Landroid/webkit/WebView;Landroid/webkit/ClientCertRequest;)V", "GetOnReceivedClientCertRequest_Landroid_webkit_WebView_Landroid_webkit_ClientCertRequest_Handler")>]
abstract member OnReceivedClientCertRequest : Android.Webkit.WebView * Android.Webkit.ClientCertRequest -> unit
override this.OnReceivedClientCertRequest : Android.Webkit.WebView * Android.Webkit.ClientCertRequest -> unit

参数

view
WebView

正在启动回调的 WebView

request
ClientCertRequest

实例 ClientCertRequest

属性

注解

通知主机应用程序处理 SSL 客户端证书请求。 主机应用程序负责根据需要显示 UI 并提供密钥。 有三种方法可以做出响应: ClientCertRequest#proceedClientCertRequest#cancelClientCertRequest#ignore。 Webview 将响应存储在内存中(应用程序生存期),如果 ClientCertRequest#proceed 调用或 ClientCertRequest#cancel 未再次调用 onReceivedClientCertRequest() 同一主机和端口对。 如果 ClientCertRequest#ignore 调用了响应,则 Webview 不会存储响应。 请注意,chromium 网络堆栈中的多个层可能会缓存响应,因此忽略的行为只是最佳情况。

在 UI 线程上调用此方法。 在回调期间,连接将挂起。

对于大多数用例,应用程序应实现 android.security.KeyChainAliasCallback 接口并将其传递给用户 android.security.KeyChain#choosePrivateKeyAlias 启动活动以选择适当的别名。 密钥链活动将通过实现接口中的回调方法提供别名。 接下来,应用程序应创建异步任务来调用 android.security.KeyChain#getPrivateKey 以接收密钥。

可以在 AOSP 浏览器中查看 客户端证书的示例实现

默认行为是取消,不返回任何客户端证书。

适用于 . 的 android.webkit.WebViewClient.onReceivedClientCertRequest(android.webkit.WebView, android.webkit.ClientCertRequest)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于