我知道handler.proceed()
Playstore 上不允许使用 SSL。一旦他们的机器人能够在上传的应用程序中找到相同的应用程序,他们就会拒绝该应用程序。出于测试目的,我被要求仅在 UAT 环境中共享带有此 SSL 绕过的 UAT APK。当我尝试使用时handler.proceed()
,出现以下错误的空白屏幕
忽略意外的 ssl 错误继续回调
在日志中。我搜索了整个互联网,但没有发现任何有用的东西。下面是我的代码。
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler, er: SslError?) {
super.onReceivedSslError(view, handler, er)
LogHelper.e("check error", "onReceivedError")
showErrorDialog(handler, er)
}
private fun showErrorDialog(handler: SslErrorHandler, error: SslError?) {
val builder = activity?.let { AlertDialog.Builder(it) }
var message = "SSL Certificate error."
when (error?.primaryError) {
SslError.SSL_UNTRUSTED -> message = "The certificate authority is not trusted."
SslError.SSL_EXPIRED -> message = "The certificate has expired."
SslError.SSL_IDMISMATCH -> message = "The certificate Hostname mismatch."
SslError.SSL_NOTYETVALID -> message = "The certificate is not yet valid."
}
message += " Do you want to continue anyway?"
builder?.setTitle("SSL Certificate Error");
builder?.setMessage(message)
builder?.setPositiveButton(activity?.getString(R.string.button_continue)) { dialog, _ ->
dialog.dismiss()
handler.proceed()
}
builder?.setNegativeButton(activity?.getString(R.string.cancel)) { _, _ ->
handler.cancel()
activity?.onBackPressed()
}
builder?.create()?.show()
}