1 概要:
我们在平时APP开发的过程中,可能需要判断用户网络的问题。那么我们怎么通过代码来判断用户用的是数据流量还是WIFI又或者是断网呢?只需3步即可:
2 具体步骤
step1:将Reachability.h和Reachability.m文件添加到工程中(可以百度上下载);
step2:导入头文件(#import "Reachability.h")、在viewDidLoad中注册监听通知,说白了就是复制以下代码
// 使用通知中心监听kReachabilityChangedNotification通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; // 获取访问指定站点的Reachability对象 self.reach = [Reachability reachabilityWithHostName:@"www.baidu.com"]; // 让Reachability对象开启被监听状态 [self.reach startNotifier];
注意一个小细节:以上代码的reach是Reachability对象,需要定义为全局变量
step3:还是复制代码,在每个if else里面该干嘛就干嘛了
- (void)reachabilityChanged:(NSNotification *)note{ // 通过通知对象获取被监听的Reachability对象 Reachability *curReach = [note object]; // 获取Reachability对象的网络状态 NetworkStatus status = [curReach currentReachabilityStatus]; if (status == ReachableViaWWAN){ NSLog(@"3G在线"); // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提醒" // message:@"不能访问www.baidu.com" delegate:nil // cancelButtonTitle:@"YES" otherButtonTitles:nil]; // // [alert show]; }else if (status == ReachableViaWiFi){ NSLog(@"WIFI在线"); }else if (status == NotReachable){ NSLog(@"notReachable"); } }
3 网络已结束,接着写代码吧!
欢迎关注笨笨编程官方微博[http://weibo.com/2728581591/profile?topnav=1&wvr=6]