【问题标题】:Work around for Android webview issue on 4.3 and below在 4.3 及更低版本上解决 Android webview 问题
【发布时间】:2016-05-27 08:29:38
【问题描述】:

在我的 android 应用程序中,我需要转到一个 url,该 url 又重定向到相应银行的 3d 安全页面,并且在用户执行任何操作后,该 url 将在 url 中使用少量参数进行重定向,即状态、id 和错误(例如.https://theurl?st=2&id=70288&err=1) 在应用程序中执行进一步操作所必需的。使用适用于 android 4.4 及更高版本的 webview,此实现工作得非常好。我在低于 Android 4.3 的手机上收到错误消息“无法建立安全连接”。在查找了该问题后,我了解到这是 android 4.3 的一个已知问题,并且由于服务器上的 SSL 和 TSL 配置(TLS/SSLv3 in webview android)而更少。服务器配置无法更改,因此我正在寻找一种方法使其适用于 Android 4.3 及更低版本。请任何人指导任何替代方法来解决此问题?

【问题讨论】:

  • 您是否尝试过手动将服务器证书添加到TrustManager?请参阅:developer.android.com/training/articles/security-ssl.html 了解更多信息。
  • 没试过这个,但会试一试。如果您有任何示例实现,请指点我吗?谢谢。
  • 它就在链接中。您将公共.cer 文件放在asset 文件夹中,然后将其读入内存。然后将其添加到当前的TrustManager。如果仍然不清楚,我会添加一个关于如何做的答案。

标签: android ssl webview


【解决方案1】:

覆盖 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
        }
}

【讨论】:

  • 已经尝试过这样做,但它没有进入 onReceivedSslError() 进入 onRecieveError() 并显示一条消息 -“无法建立安全连接。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多