UIWebView只调用一次didFailLoadWithError

时间:2011-04-18 20:25:59

标签: iphone objective-c cocoa-touch

我有一个原生的iPhone应用程序,只使用UIWebView加载网站。当用户尝试在没有Internet连接的情况下使用应用程序时,我实现了UIWebViewDelegate函数didFailLoadWithError以显示错误消息。警报框在我第一次构建和运行应用程序时显示,但此后不会显示。如果我单击主页按钮,然后再次点击我的应用程序,我只看到一个空白的UIWebView。就好像它没有再次尝试加载页面一样,所以它永远不会触发didFailLoadWithError。这只是一个简单的应用程序,没有保存和重新加载状态,所以不应该重新加载应用程序重新运行我的所有代码,包括尝试加载网站?

- (void)viewDidLoad {
    NSString* urlString = [NSString stringWithString:@"http://www.site.com"];
    NSURL* url = [NSURL URLWithString:urlString];
    NSURLRequest* request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
    [super viewDidLoad];
}

#pragma mark UIWebView delegate


- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{   
    //[myActivityIndicatorView stopAnimating];

    NSLog([NSString stringWithFormat: @"%d", [error code]]);

    if ([error code] != USER_STOPPED_LOAD) {
        UIAlertView *alert = [[UIAlertView alloc] 
                              initWithTitle:@"Connection Error!" 
                                    message:@"You must be connected to the Internet to use Site." 
                                   delegate:nil 
                          cancelButtonTitle:@"OK" 
                          otherButtonTitles: nil];
        [alert show];
        [alert release];
    }
}

1 个答案:

答案 0 :(得分:0)

不,因为当您单击“主页”按钮时它才会被发送到后台!要重新启动应用程序,请使用多任务栏将其终止。