加载多个 webView 时出现错误 -999
Error -999 when loading multiple webViews
我制作的 iOS 应用可以有多个 webView 同时加载相同的 url。导致此错误:
Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed.
(NSURLErrorDomain error -999.)" UserInfo=0x176b7bc0 {NSErrorFailingURLKey=https://example.com,
NSErrorFailingURLStringKey=https://example.com}
我了解到,在旧请求完成之前启动新请求时会发生这种情况。我如何防止这种情况发生?谢谢
使用委托方法。确定哪个视图触发了该方法,然后如果您要按顺序 运行 它们,则触发下一个。
- (void) webViewDidFinishLoad:(UIWebView *)webview{
if ( webview == self.wView1 )
{
// stuff
} else if ( webview == self.wView2 ) {
// stuff 2
}
}
我花了数周时间担心这个错误。我在访问网页时随机得到它。就我而言,我将其归结为页面被请求的速度太快,因为 Web 访问是由代码中的状态机而不是用户驱动的。
经过多方查找,最后发现了一些讨论无法解释为什么会出现错误,但感觉是UIWebView的特性,而不是你应该担心的。指导是忽略它。我看看能不能找到这篇文章,如果能找到,稍后更新这个答案。
我按如下方式更新了我的代码,到目前为止,自从添加它以来没有发现任何不良影响。这表明它几乎是一个通知,任何导致它似乎在 UIWebView 中得到纠正的东西。希望你的情况也是如此。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
VSSLog(@"Entry: error = %@",error);
// Added this based on net advice. Its a bogus error.
if ([error code] == NSURLErrorCancelled) {
return;
}
... Normal error handling code for proper errors.
}
我不是一个眼不见心不烦的人,但我认为这是可以接受的情况之一。
最后,如果您只使用 iOS8,您可以尝试使用新的 WKWebView 而不是 UIWebView。
我制作的 iOS 应用可以有多个 webView 同时加载相同的 url。导致此错误:
Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed.
(NSURLErrorDomain error -999.)" UserInfo=0x176b7bc0 {NSErrorFailingURLKey=https://example.com,
NSErrorFailingURLStringKey=https://example.com}
我了解到,在旧请求完成之前启动新请求时会发生这种情况。我如何防止这种情况发生?谢谢
使用委托方法。确定哪个视图触发了该方法,然后如果您要按顺序 运行 它们,则触发下一个。
- (void) webViewDidFinishLoad:(UIWebView *)webview{
if ( webview == self.wView1 )
{
// stuff
} else if ( webview == self.wView2 ) {
// stuff 2
}
}
我花了数周时间担心这个错误。我在访问网页时随机得到它。就我而言,我将其归结为页面被请求的速度太快,因为 Web 访问是由代码中的状态机而不是用户驱动的。
经过多方查找,最后发现了一些讨论无法解释为什么会出现错误,但感觉是UIWebView的特性,而不是你应该担心的。指导是忽略它。我看看能不能找到这篇文章,如果能找到,稍后更新这个答案。
我按如下方式更新了我的代码,到目前为止,自从添加它以来没有发现任何不良影响。这表明它几乎是一个通知,任何导致它似乎在 UIWebView 中得到纠正的东西。希望你的情况也是如此。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
VSSLog(@"Entry: error = %@",error);
// Added this based on net advice. Its a bogus error.
if ([error code] == NSURLErrorCancelled) {
return;
}
... Normal error handling code for proper errors.
}
我不是一个眼不见心不烦的人,但我认为这是可以接受的情况之一。
最后,如果您只使用 iOS8,您可以尝试使用新的 WKWebView 而不是 UIWebView。