现在的项目几乎都用的AFN,直接使用AFN的网络环境判断
typedef NS_ENUM(int, NetType){
NetTypeUnknown = 0,
NetTypeNoNet = 1,
NetTypePhoneNet = 2,
NetTypeWifi = 3,
};
#pragma mark --- 网络监测
+ (void)getNetWorkingStatus:(void(^)(NetType netType))block{
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown: {
// 未知网络
SRQLog(@"未知网络");
block(NetTypeUnknown);
}
break;
case AFNetworkReachabilityStatusNotReachable: {
// 没有网络(断网)
SRQLog(@"没有网络(断网)");
block(NetTypeNoNet);
}
break;
case AFNetworkReachabilityStatusReachableViaWWAN: {
// 手机自带网络
SRQLog(@"手机自带网络");
block(NetTypePhoneNet);
}
break;
case AFNetworkReachabilityStatusReachableViaWiFi: {
// WIFI
SRQLog(@"WIFI");
block(NetTypeWifi);
}
break;
}
}];
[mgr startMonitoring];
}
当然你也可以选择在适当的时候停止监控
[mgr stopMonitoring];