gpt4 book ai didi

ios - 如何使用 WKWebView 正确实现 didFailProvisionalNavigation?

转载 作者:可可西里 更新时间:2023-11-01 06:13:12 24 4
gpt4 key购买 nike

我正在制作一个网络浏览器,并且像所有其他网络浏览器一样,我想通知用户网页加载失败时发生的错误。

目前,我正在 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 内容。

上述方法非常适合显示常见错误,例如:

  1. 互联网连接似乎处于离线状态。
  2. 找不到具有指定主机名的服务器。

但它也会显示一些不寻常的错误,例如:

  1. 操作无法完成(NSURL ErrorDomain error -999)

我不喜欢这种方法有两个原因:

  • 错误消息显示一些技术性内容“NSURL”,但我可以忽略它。
  • 最重要的是,大多数情况下,当显示上述错误时,网页完全可用,但由于它是 didFailProvisionalNavigation 错误,我必须禁用该页面并显示错误。

我不知道还有哪些其他小错误不应按照我的处理方式处理。不幸的是,我不知道有什么方法可以区分主要错误(例如“连接似乎已脱机”)和次要错误(例如“操作无法完成”)。

处理导航失败的标准方法是什么?

最佳答案

我也需要使用 didFailProvisionalNavigation。现在我是这样解决的:

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(nonnull NSError *)error
{
if(error.code != -999) // Prevent the error from showing when didFailProvisionalNavigation is triggered after a cancelled load (reload)
{
// Show the error
}
}

关于ios - 如何使用 WKWebView 正确实现 didFailProvisionalNavigation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com