之前做iOS项目在网络检测功能使用的是Reachability,后来发现了AFNetworking自带网络检测功能,使用起来也是非常方便。方法如下
方法一:
// 启动网络检测
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
// 网络变化时的回调方法
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
/**
AFNetworkReachabilityStatusUnknown // 未知
AFNetworkReachabilityStatusNotReachable // 无网络
AFNetworkReachabilityStatusReachableViaWWAN // 蜂窝数据
AFNetworkReachabilityStatusReachableViaWiFi // wifi网络
*/
NSLog(@"%ld", status);
}];
方法二:
AFHTTPSessionManager * sharedClient = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.baidu.com"]];
sharedClient.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
[sharedClient.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN:
MyLog(@"-------AFNetworkReachabilityStatusReachableViaWWAN------");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
{
MyLog(@"-------AFNetworkReachabilityStatusReachableViaWiFi------");
}
break;
case AFNetworkReachabilityStatusNotReachable:
MyLog(@"-------AFNetworkReachabilityStatusNotReachable------");
break;
default:
break;
}
}];
// 必须调用改方法才能实时检测网络
[sharedClient.reachabilityManager startMonitoring];