检查是不是有互联网连接 webView 没有出现

Posted

技术标签:

【中文标题】检查是不是有互联网连接 webView 没有出现【英文标题】:Checking if there is internet connection webView did not appear检查是否有互联网连接 webView 没有出现 【发布时间】:2014-01-16 08:30:36 【问题描述】:

我想知道为什么我在断开互联网连接时没有收到提醒。当我连接时,一切都很好,但是当没有连接时,什么都没有出现,我在 Objective-c 中很新,但我认为这段代码看起来是正确的。

还是谢谢你的帮助。

- (void)viewDidLoad

    webView.hidden = YES;
    NSURL *url = [NSURL URLWithString:@"https://url"];
    webView.scrollView.scrollEnabled = NO;
    NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestURL];
    if ([[webView stringByEvaluatingjavascriptFromString:@"document.readyState"] isEqualToString:@"complete"]) 
        webView.hidden = NO;
    
    self.canDisplayBannerAds = YES;
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.



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

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


- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
    exit(0);

【问题讨论】:

如果你想检查与互联网的连接,那么你必须在你的代码中检查它。为此,您可以通过 Apple 的可达性代码 - developer.apple.com/Library/ios/samplecode/Reachability/… 事情是webView:didFailLoadWithError:在网络运行后被触发,如果有任何错误。由于您没有互联网连接,它可能会跳过它。如上所述,Reachability 是要走的路(在你做loadRequest: 之前)。祝你好运。 我无法确定并仔细检查了这一点。还有其他问题,您的代码在我这边显示了警报视图。 我终于用上了,webView.delegate=self;它有效,但我收到警告,我希望这是正确的,从不兼容的类型'ncViewController *const __strong' 分配给'id' 谢谢 :) 现在可以正常工作了 【参考方案1】:

如果您想检查与互联网的连接,则必须在您的代码中进行检查。为此,您可以通过 Apple 的 Reachbility 代码。

如果由于某种原因无法加载页面,将调用方法webView:didFailLoadWithError:。这意味着它不是连接问题,这可能是由于服务器的一些内部错误。

【讨论】:

以上是关于检查是不是有互联网连接 webView 没有出现的主要内容,如果未能解决你的问题,请参考以下文章

CLLocationManager 是不是可以在没有互联网/蜂窝连接的情况下工作?

检查 swift 中是不是有可用的互联网连接 [重复]

使用 webview 和刷新按钮加载 android

检查url是不是被缓存webview android

没有带有拉动刷新的互联网消息 webview 片段

如果 webview 中没有互联网连接,iOS 会显示警报