在启动iphone应用程序期间检查Internet连接

时间:2011-08-15 23:53:40

标签: iphone

在我的应用程序中,我正在使用来自服务器的XML文件。

因此,在启动应用程序时,我想检查互联网连接。

如果没有互联网连接,那么我想显示告诉用户退出的屏幕。

我该如何实现呢。

3 个答案:

答案 0 :(得分:3)

Apple sample code项目中导入“可达性”文件并按以下方式启动:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [[Reachability reachabilityForInternetConnection] retain];
[internetReachable startNotifier];

hostReachable = [[Reachability reachabilityWithHostName:@"yourwebsite.com"] retain];
[hostReachable startNotifier];

然后检查互联网连接如下。它非常方便,因为您可以随时在需要时检查连接。

if ([internetReachable currentReachabilityStatus]==NotReachable ||
    [hostReachable currentReachabilityStatus]==NotReachable) {
    // react appropriately
}

不要担心这会减慢你的速度 - 它是异步的。在确保UI完成用户期望的操作后,您可以对Internet启动或关闭做出反应。

答案 1 :(得分:1)

嗯,你实际上不应该在启动时这样做,因为它会使事情变得非常缓慢。

启动后,您可以使用SCNetworkReachability。

答案 2 :(得分:0)

这是一部具有大量无线电节电模式的手机,可能需要一段时间(可变的时间)才能开启和(重新)连接。只是尝试异步下载XML,并让用户决定连接是否花费太长时间。

否则,在您浪费无线电电源并再次连接后,您可能会冒险告诉用户退出。