标签:builder message SSL handler error SslError 错误处理 WebView
WebView SSL 错误处理
修复帮助
https://support.google.com/faqs/answer/7071387
原因
onReceivedSslError 中没有做 ssl 错误校验便直接 调用方法handler?.proceed()
解决方案
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
val url = view?.url ?: ""
if (url.isEmpty()) {
handler?.cancel()
return
}
val host = Uri.parse(url).host ?: ""
if (host.contains("test.com")) {
handler?.proceed()
return
}
var builder = AlertDialog.Builder(view?.context)
var message = when (error?.primaryError) {
SslError.SSL_UNTRUSTED -> {
}
SslError.SSL_EXPIRED -> {
}
SslError.SSL_IDMISMATCH -> {
}
SslError.SSL_NOTYETVALID -> {
}
SslError.SSL_INVALID -> {
}
SslError.SSL_DATE_INVALID -> {
}
else -> {
error?.primaryError.toString()
}
}
message += AppContext.getString(R.string.message_ssl_error);
builder.setTitle(R.string.title_ssl_error);
builder.setMessage(message);
builder.setPositiveButton(R.string.continued) { dialog: DialogInterface?, which: Int ->
handler?.proceed()
}
builder.setNegativeButton(R.string.cancel) { dialog: DialogInterface?, which: Int ->
handler?.cancel()
}
var dialog = builder.create()
dialog.show();
}
}
标签:builder,message,SSL,handler,error,SslError,错误处理,WebView 来源: https://blog.csdn.net/u011482814/article/details/122207868
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。