webview基本异常类方法设置:onReceivedError、onReceivedSslError、onPageFinished
1、手机端加载webview 会检测SSL连接地址中证书中的data是否在当前手机时间内,不符合会拦截到onReceivedSslError错误并且白屏
定位:打开手机端的时间设置检查,明确错误定位:触发onReceivedSslError方法,error.getPrimaryError()= 4
解决办法:手机端同步时间信息
2、商户请求新浪网关,没拿到响应跳转地址的。
定位:提供请求、响应报文
解决办法:确定商户服务器与新浪之间的连通性。
3、部分HW、HONGmi机型自身webveiw对https网页加载兼容性问题
定位:触发onReceivedSslError方法,error.getPrimaryError()= 5,如下图。
例证1:HW应用市场对此webview有说明,大家可以去HW自行查阅Android System WebView之说明,此处连接不宜给出。
例证2:经过本人购买的HONGmi note3原版的场景下测试,此机器也重现该问题。包括加载新浪https收银台以及其他类别的部分https大型门户网址。
解决办法:此类机型问题,建议联系手机厂商解决问题。
4、不使用原生webview,苹果用safari的,导致白屏
定位:请商户配合,查看代码是否使用原始webview类
解决办法:不要用safari
5、更多定位与解决办法请参阅对应的报错以后各自处理
IOS,
(void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
NSLOG(@"webView error: %@", error);
//请将error信息弹框到页面 不要留白屏,下图是范例
}
安卓,
void onReceivedSslError(WebView view,SslErrorHandler handler, SslError error) {
errormsg.setText("onReceivedSslError方法报错:sslError:"
+ error.getPrimaryError() + " "
+ error.getCertificate());//请将error信息弹框到页面 不要留白屏,下图是范例
}
like article