- 问题代码
-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
//弹出空白提示视图
}
- 问题原因
这是因为代理方法中检测到了NSError其中的一个NSURLErrorDomain类型的错误:NSURLErrorCancelled = -999
。
- 官方解释
如下所示,打开Dash,查阅到官方的说明:异步请求被取消。
官方解释
- 可能情况
可能的情况是:先加载我们设置好的第一个请求,然后网页在第一个请求完成之前,另外加载了一个URL(即使相同的URL重新加载)。
也许是有部分第三方的网页的确有这种重定向,或者自动跳转的问题。另外,也有朋友指出是App没有第三方HTTPS网页信任的证书。解决办法可参考这两篇:
对于可能会打开一些任意的,不可控的第三方网页的情况,只能选中忽略这种错误。
- 解决方案
取出error,专门忽略这种错误。
-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
if (error.code==-999) {
return;
}
//balabala...
}