Web视图中连接检查的简单警报视图

时间:2011-12-13 16:59:56

标签: iphone objective-c ios xcode storyboard

亲爱的Stackover社区,

近一周,我正在努力解决这个问题,即必须进行连接检查 对于我的网络视图,所以我在Apple的App审核过程中幸存下来: - )

我知道我可以使用Reachablity样本,但作为初学者,我会说它处理这样的代码并不聪明。

我发现使用简单的警报和类似的代码会更简单:

    -(void)webview:(UIWebView *)webview didFailLoadWithError:(NSError *)error {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                message:@"Can't connect. Please check your internet Connection"
                                               delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show]; }

我的问题是我将此代码实现到我的Webviewcontroller的.m中,并将委托连接到Filesowner但是App对我来说不是很好,以便向我显示错误消息: - )

目前我正在使用支持ARC和故事板的Xcode 4.2.1。

有人请给我一步一步指导如何完成这项工作? 它可能是我的应用程序所需的最后一个代码。

提前致谢

2 个答案:

答案 0 :(得分:5)

委托方法是:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

请注意,“-(void)webView”不是“-(void)webview”。只需将“视图”中的“v”大写,它就会起作用。

回答你的后续问题:“现在,当我停止加载页面时,错误信息也会出现。是否有其他提示?”

如您所见,NSError传递给您的函数。该错误包含有关失败的信息。您可以通过添加以下内容来查看该信息:NSLog(@"Epic fail with error:%@",error);(为剧烈效果添加了“Epic”)。记录该错误后,您会看到列出的code'属性'。通过一些实验,您将看到此代码属性根据错误类型而更改。对于连接错误,此代码似乎等于-1009。所有可能的errors are enumerated here under "URL Loading System Error Codes"。最重要的是,因为它们是在枚举中定义的,所以您不必记住其中的大部分内容。你可以使用:

-(void)webView:(UIWebView *)webview didFailLoadWithError:(NSError *)error {
    if (error.code == NSURLErrorNotConnectedToInternet){
        NSLog(@"You are not connected");
    }
}

答案 1 :(得分:0)

尝试......     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@“Error”                                                     消息:[error localizedString ]                                                    委托:自我                                           cancelButtonTitle:@ “OK”                                           otherButtonTitles:无];