【发布时间】:2017-12-21 05:32:29
【问题描述】:
我正在制作一个网络浏览器,与其他所有网络浏览器一样,我想通知用户网页加载失败时发生的错误。
目前,我在 didFailProvisionalNavigation 方法中显示错误的 localizedDescription。就是这样!
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
[self presentError:error.localizedDescription animated:YES];
[_delegate webViewDidFailNavigation:self error:error];
}
presentError 方法处理一些与问题无关的自定义 UI 内容。
上述方法非常适合显示常见错误,例如:
- 互联网连接似乎处于离线状态。
- 找不到指定主机名的服务器。
但它也会显示一些不寻常的错误,例如:
- 操作无法完成(NSURL ErrorDomain error -999)
我不喜欢这种方法有两个原因:
- 错误消息显示一些技术内容“NSURL”,但我可以忽略它。
- 最重要的是,在显示上述错误的大多数情况下,该网页完全可用,但由于这是一个 didFailProvisionalNavigation 错误,我必须禁用该页面,而是显示该错误。
我不知道可能会发生哪些不应该按照我处理它们的方式处理的其他小错误。不幸的是,我不知道如何区分“连接似乎已脱机”等重大错误和“无法完成操作”等小错误。
处理导航失败的标准方法是什么?
【问题讨论】:
标签: ios objective-c wkwebview