4

WebView、より具体的には PhoneGaps CordovaWebView は、クライアント証明書を使用してサーバーへの認証を行うことができますか?

ネイティブ ブラウザがクライアント証明書を使用できることは理解していますが、PhoneGap Android アプリを取得して、クライアント証明書を必要とするサーバーと通信させようとしていますが、その方法がわかりません。Google で見たさまざまな方法を試しましたが、Android バージョン 4.0 以降では機能しません。どんな提案でも大歓迎です。

4

1 に答える 1

7

それは不可能。クライアント証明書のチャレンジに応答するために必要なコードは、sdk では利用できません。Android SDK の WebViewClient のソースを見ると、このメソッドが表示されます。

/**
 * Notify the host application to handle a SSL client certificate
 * request (display the request to the user and ask whether to
 * proceed with a client certificate or not). The host application
 * has to call either handler.cancel() or handler.proceed() as the
 * connection is suspended and waiting for the response. The
 * default behavior is to cancel, returning no client certificate.
 *
 * @param view The WebView that is initiating the callback.
 * @param handler An ClientCertRequestHandler object that will
 *            handle the user's response.
 * @param host_and_port The host and port of the requesting server.
 *
 * @hide
 */
public void onReceivedClientCertRequest(WebView view,
        ClientCertRequestHandler handler, String host_and_port) {
    handler.cancel();
}

doc セクションに @hide が表示されていますか? つまり、「これを一般に公開しないでください」ということです。このメソッドをオーバーライドして ClientCertRequestHandler を利用する機能が必要ですが、できません。Google がいつこの API を開くかはわかりませんが、JellyBean では利用できません。

于 2012-11-05T23:23:28.483 に答える