2016-05-27 7 views
0

私のアンドロイドアプリでは、それぞれの銀行の3DセキュアページにリダイレクトするURLに移動する必要があります。ユーザーが何らかのアクションを行った後、URLはいくつかのパラメータでリダイレクトされますurl、ステータス、ID、エラー(例:https://theurl?st=2&id=70288&err=1)。これは、アプリで必要なアクションです。この実装は、アンドロイド4.4以上のwebviewを使って完璧に動作します。 Android 4.3より低い電話機で「安全な接続を確立できませんでした」というエラーメッセージが表示されます。問題について調べた後、私はこれがアンドロイド4.3の既知の問題であることを理解しています。サーバ上のSSLとTSLの設定(TLS/SSLv3 in webview android)のためです。サーバーの設定を変更することはできませんので、Android 4.3以降でこの作業を行う方法を探しています。誰でもこの問題を回避するための代替手段をご案内できますか?4.3以降のAndroid webviewの問題を回避する

+0

サーバー証明書を手動で「TrustManager」に追加しようとしましたか?詳細はhttps://developer.android.com/training/articles/security-ssl.htmlをご覧ください。 – Darwind

+0

これを試したことはありませんが、試してみましょう。あなたが持っている場合は、サンプルの実装に私を指摘していただけますか?ありがとうございました。 –

+0

リンク内にあります。パブリック '.cer'ファイルを' asset'フォルダの中に置き、それをメモリに読み込みます。そして、それを現在の 'TrustManager'に追加します。まだ不明な点がある場合は、それを行う方法についての回答を追加します。 – Darwind

答えて

0

WebViewClientのonReceivedSslErrorメソッドをオーバーライドします。その方法には、さらに何をしたいのかが含まれます。

class CustomWebView extends WebViewClient { 

public void onReceivedSslError(WebView view, android.webkit.SslErrorHandler handler, android.net.http.SslError error) { 
      handler.cancel(); 
      //your code here 
     } 
} 
+0

これを実行しようとしましたが、onReceivedSslError()のonRecieveError()には入りません。「安全な接続を確立できませんでした」というメッセージが表示されます。 –

関連する問題