浏览太快时出现连接错误

时间:2013-05-29 00:52:25

标签: ios objective-c uiwebview

在我写的应用程序中,我检查设备是否有互联网连接。我在屏幕上放置了连接错误图像,并将其隐藏,除非设备未连接。但是有一个奇怪的问题。我为UIWebView实现了一个简单的后退按钮,但是当我按下它太快时,就会发生连接错误。这是我用来检查连接的代码,并决定是否显示错误:

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

    _connectionError.hidden = NO;
}

所以,我认为解决这个问题的唯一方法就是让它检查一次是否存在连接,仅在应用程序首次启动时,并且在其余时间不再运行。我对Objective-C非常新,并且不知道如何做到这一点。我想我应该在viewDidLoad中添加一些东西,或者实现某种方法让方法只运行一次,但我不知道该怎么做。

以下是后退按钮的代码:

- (IBAction)backButtonTapped:(id)sender {
    [_viewWeb goBack];
}

2 个答案:

答案 0 :(得分:1)

要检查连接,您可以在项目中使用Reachability。然后,您可以使用this答案来查看如何使用它。这比使用UIWebview更有效,更清晰。

答案 1 :(得分:1)

在goBack方法之前调用webView上的方法stopLoading,以确保没有多个请求可能导致连接错误:

- (IBAction)backButtonTapped:(id)sender {
    [_viewWeb stopLoading];
    [_viewWeb goBack];
}