1.在.h中创建不同网络状态的枚举,
typedef NS_ENUM(NSInteger, DDNetworkReachabilityStatus) {
DDNetworkReachabilityStatusUnknown = -1,
DDNetworkReachabilityStatusNotReachable = 0,
DDNetworkReachabilityStatusReachableViaWWAN = 1,
DDNetworkReachabilityStatusReachableViaWiFi = 2,
};
2.创建一个全局记录者
@property (nonatomic, assign) DDNetworkReachabilityStatus status;
3.初始化监听方法
- (void)initChangeValues {
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN: {
self.status = DDNetworkReachabilityStatusReachableViaWWAN;
[self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusReachableViaWWAN];
} break;
case AFNetworkReachabilityStatusReachableViaWiFi: {
self.status = DDNetworkReachabilityStatusReachableViaWiFi;
[self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusReachableViaWiFi];
} break;
case AFNetworkReachabilityStatusNotReachable: {
self.status = DDNetworkReachabilityStatusNotReachable;
[self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusNotReachable];
} break;
case AFNetworkReachabilityStatusUnknown: {
self.status = DDNetworkReachabilityStatusUnknown;
[self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusUnknown];
} break;
}
}];
[[AFNetworkReachabilityManager sharedManager] startMonitoring];//开始监听
}
- (NSString *)networkInfoWithStatus {
DDNetworkReachabilityStatus status = self.status;
if (status == DDNetworkReachabilityStatusUnknown || status == DDNetworkReachabilityStatusNotReachable) {
return @"无网络";
} else if (status == DDNetworkReachabilityStatusReachableViaWiFi) {
return @"wifi";
} else if (status == DDNetworkReachabilityStatusReachableViaWWAN) {
return @"mobile";
}
return @"";
}
网友评论