在我写的应用程序中,我检查设备是否有互联网连接。我在屏幕上放置了连接错误图像,并将其隐藏,除非设备未连接。但是有一个奇怪的问题。我为UIWebView
实现了一个简单的后退按钮,但是当我按下它太快时,就会发生连接错误。这是我用来检查连接的代码,并决定是否显示错误:
-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error {
_connectionError.hidden = NO;
}
所以,我认为解决这个问题的唯一方法就是让它检查一次是否存在连接,仅在应用程序首次启动时,并且在其余时间不再运行。我对Objective-C非常新,并且不知道如何做到这一点。我想我应该在viewDidLoad
中添加一些东西,或者实现某种方法让方法只运行一次,但我不知道该怎么做。
以下是后退按钮的代码:
- (IBAction)backButtonTapped:(id)sender {
[_viewWeb goBack];
}
答案 0 :(得分:1)
要检查连接,您可以在项目中使用Reachability。然后,您可以使用this答案来查看如何使用它。这比使用UIWebview更有效,更清晰。
答案 1 :(得分:1)
在goBack方法之前调用webView上的方法stopLoading,以确保没有多个请求可能导致连接错误:
- (IBAction)backButtonTapped:(id)sender {
[_viewWeb stopLoading];
[_viewWeb goBack];
}