gpt4 book ai didi

ios - 忽略 NSURLErrorDomain 错误 -999 在 UIWebView 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:38:47 24 4
gpt4 key购买 nike

我试图避免 UIWebView 的委托(delegate)返回类似错误时产生的问题。我在委托(delegate)实现中有常见的解决方法(我在 Internet 的任何地方都看到了)

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

if ([error code] == NSURLErrorCancelled) return;
}

我遇到的问题是这并不总是有效。有时会加载网页,有时会加载网页的一部分(标题、文本的一部分......),有时不会加载任何内容。

还有其他解决办法吗?是否存在可以正常工作的浏览器的任何开源实现?

最佳答案

来自 Apple 文档:

NSURLErrorCancelled (-999)

"Returned when an asynchronous load is canceled. A Web Kit framework delegate will receive this error when it performs a cancel operation on a loading resource. Note that an NSURLConnection or NSURLDownload delegate will not receive this error if the download is canceled."

因此,最有可能发生这种情况的情况是您先加载一个请求,然后在第一个请求完成之前加载另一个请求(或同一个请求)。这可能会发生。例如,如果您在像 viewDidAppear: 这样可以多次调用的方法中调用 loadRequest(或 loadHTMLString)。据报道,如果您在 UIWebView 中快速点击 2 个链接,也会发生这种情况。

因此,一般建议是检查调用 loadRequest(或 loadHTMLString)的方式和位置,并可能提供一些代码。

为了解决这个问题,我建议将以下跟踪添加到您的 WebView 委托(delegate)中:

- (void)webViewDidStartLoad:(UIWebView *)webView {
NSLog(@"Starting to download request: %@", [webView.request.URL absoluteString]);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"Finished downloading request: %@", [webView.request.URL absoluteString]);
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

if ([error code] == NSURLErrorCancelled)
NSLog(@"Canceled request: %@", [webView.request.URL absoluteString]);
}

如果您检查输出,您应该会更清楚地看到发生了什么。如果您粘贴输出,我们可以尝试进一步帮助您。

关于ios - 忽略 NSURLErrorDomain 错误 -999 在 UIWebView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860401/

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