2.Reachability检测网络状态
2016-08-09 12:44
417 查看
首先去
https://developer.apple.com/library/ios/samplecode/Reachability/Listings/Reachability_Reachability_m.html 下载Reachability类。
然后将Reachability.h和Reachability.m拖进你的工程,然后添加SystemConfiguration.framework框架。
注:Reachability 2.x版本是不支持ARC的,如果你用的是2.x的版本,请手动禁用该类的ARC。TARGETS->Build Phases->Compile Sources双击Reachability.m,输入框添加“-fno-objc-arc”。
然后判断网络状态方法如下:
判断有无网络连接:
监听网络状态的方法,写在AppDelegate类的application: didFinishLaunchingWithOptions:里面:
注册通知
网络状态变化实现
最后新版本中reachabilityForLocalWiFi方法被移除了
https://developer.apple.com/library/ios/samplecode/Reachability/Listings/Reachability_Reachability_m.html 下载Reachability类。
然后将Reachability.h和Reachability.m拖进你的工程,然后添加SystemConfiguration.framework框架。
注:Reachability 2.x版本是不支持ARC的,如果你用的是2.x的版本,请手动禁用该类的ARC。TARGETS->Build Phases->Compile Sources双击Reachability.m,输入框添加“-fno-objc-arc”。
然后判断网络状态方法如下:
NSString *site = @"www.MyWeb.com"; Reachability *reach = [Reachability reachabilityWithHostName:site]; switch ([reach currentReachabilityStatus]) { case NotReachable: NSLog(@"不能访问%@", site); break; case ReachableViaWiFi: NSLog(@"使用wifi访问%@", site); break; case ReachableViaWWAN: NSLog(@"使用3G/4G访问%@", site); break; default: break; }
判断有无网络连接:
if ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable) { [self showAlert:@"网络可用"]; } else { [self showAlert:@"网络不可用"]; }
监听网络状态的方法,写在AppDelegate类的application: didFinishLaunchingWithOptions:里面:
注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; Reachability *reachability = [Reachability reachabilityWithHostName:@"www.baidu.com"]; [reachability startNotifier];
网络状态变化实现
/** *此函数通过判断联网方式,通知给用户 */ - (void)reachabilityChanged:(NSNotification *)notification { Reachability *curReachability = [notification object]; NSParameterAssert([curReachability isKindOfClass:[Reachability class]]); NetworkStatus curStatus = [curReachability currentReachabilityStatus]; switch (curStatus) { case NotReachable: NSLog(@"无网络"); break; case ReachableViaWiFi: NSLog(@"使用wifi网络"); break; case ReachableViaWWAN: NSLog(@"使用3G/4G网络"); break; default: break; } }
最后新版本中reachabilityForLocalWiFi方法被移除了
相关文章推荐
- 如何去检测网络的连接状态
- 如何去检测网络的连接状态(C#)
- Android网络编程实践之旅(一):网络状态检测
- C#检测网络的连接状态
- Android网络编程实践之旅(三):网络状态检测(续)
- 利用PHP脚本检测骨干网络线路状态
- ping命令加上时间标签,检测网络连接状态(最新方案)
- Android下检测网络状态 3G WIFI
- 网络状态检测
- 如何去检测网络的连接状态(C#)
- 检测网络的连接状态
- 检测网络状态
- 实时检测网络状态及是否可以连接Internet
- Linux下检测网络状态是否正常
- 如何去检测网络的连接状态(C#)
- 如何检测Internet联网状态、类型及拨号网络调用?
- 检测网络状态
- 基于Visual C#2010 与WPF开发Windows 7检测网络连接于状态
- oc中检测网络状态
- 给ping 加上时间标签,检测网络状态