加载多个webView时出现错误-999

时间:2015-04-22 13:26:10

标签: html ios url uiwebview

我正在制作的iOS应用可以有多个webView同时加载相同的网址。导致此错误:

Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. 
(NSURLErrorDomain error -999.)" UserInfo=0x176b7bc0 {NSErrorFailingURLKey=https://example.com, 
NSErrorFailingURLStringKey=https://example.com}

我读到在旧请求完成之前启动新请求时会发生这种情况。我该如何防止这种情况发生?感谢

2 个答案:

答案 0 :(得分:1)

使用委托方法。如果您希望按顺序运行它们,请确定触发该方法的视图然后触发下一个视图。

- (void) webViewDidFinishLoad:(UIWebView *)webview{
     if ( webview == self.wView1 )
     {
          // stuff
     } else if ( webview == self.wView2 ) {
          // stuff 2
     }
}

UITableViewDelegate Protocol Reference

答案 1 :(得分:1)

我花了几周时间担心这个错误。我在访问网页时随机获取它。在我的情况下,由于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。