我有一个应用程序,只要有一些活动(如视图更改),就会显示网络可用性。但是,我正在寻找在后台运行的代码来检查网络可用性,即使我将在同一屏幕上闲置,它必须显示“网络不可用/网络可用”的消息
答案 0 :(得分:2)
我使用这段代码来检测网络可用性。我基本上宣布当地的变量来弄清楚我是在WiFi还是3G网络或是否有互联网。
通知会在某些时间间隔发生。更新这些变量。您可以访问这些BOOL变量来了解状态。
- (void)checkNetworkStatus:(NSNotification *)notice
{
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch(internetStatus)
{
case NotReachable:
{
//NSLog(@"The internet is down.");
self.internetActive = NO;
break;
}
case ReachableViaWiFi:
{
//NSLog(@"The internet is working via WIFI.");
self.internetActive = YES;
break;
}
case ReachableViaWWAN:
{
//NSLog(@"The internet is working via WWAN.");
self.internetActive = YES;
break;
}
}
NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
//NSLog(@"A gateway to the host server is down.");
self.hostActive = NO;
break;
}
case ReachableViaWiFi:
{
//NSLog(@"A gateway to the host server is working via WIFI.");
self.hostActive = YES;
break;
}
case ReachableViaWWAN:
{
//NSLog(@"A gateway to the host server is working via WWAN.");
self.hostActive = YES;
break;
}
}
return;
}