iOS中如何利用AFNetworking检测当前的网络状态

时间:2022-09-10 15:20:02

之前做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];