- 网络环境检测:检测用户当前所处的网络状态
-
效果图
-
1.当蜂窝和wifi同时关闭时候
-
显示为不可达(AFNetworkReachabilityStatusNotReachable)状态
- 2.打开蜂窝移动数据,关闭wifi
- 显示为wan网络
- 3.打开wifi,关闭蜂窝移动数据
- 显示为wifi网络(AFNetworkReachabilityStatusReachableViaWiFi)
- 4.同时打开wifi和蜂窝移动数据时候
- 显示为wifi网络,从这点来看,显然是不坑的呀
-
步骤
- 1.创建网络监听者管理者对象
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
- 2.设置监听
- 网络状态
//显然是枚举值 typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未识别的网络 AFNetworkReachabilityStatusNotReachable = 0,//不可达的网络 AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络
-设置网络监听
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未识别的网络"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可达的网络(未连接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的网络"); break; default: break; } }];
- 3.开始监听
[manager startMonitoring];
代码
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //创建网络监听管理者对象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; /* typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未识别的网络 AFNetworkReachabilityStatusNotReachable = 0,//不可达的网络(未连接) AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络 }; */ //设置监听 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未识别的网络"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可达的网络(未连接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的网络"); break; default: break; } }]; //开始监听 [manager startMonitoring]; }
相关链接:
IOS-利用AFNetworking监听网络状态