一、简单使用
-
AFNetworkReachabilityManager
sharedManager
单例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 单例 sharedManager
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
[self showMessage:@"未知网络,请检查互联网"];
break;
case AFNetworkReachabilityStatusNotReachable:
[self showMessage:@"无网络,请检查互联网"];
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
[self showMessage:@"蜂窝网络"];
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
[self showMessage:@"WiFi网络"];
break;
default:
break;
}
}];
[manager startMonitoring];
return YES;
}
- (void)showMessage:(NSString *)msg {
UIAlertController *aler = [UIAlertController alertControllerWithTitle:msg message:nil preferredStyle:UIAlertControllerStyleAlert];
[aler addAction:[UIAlertAction actionWithTitle:@"知道了" style:UIAlertActionStyleDefault handler:nil]];
[self.window.rootViewController presentViewController:aler animated:YES completion:nil];
}
- 用
isReachable
、isReachableViaWWAN
、isReachableViaWiFi
判断网络状态
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
NSLog(@"isReachable = %d",manager.isReachable);
NSLog(@"isReachableViaWWAN = %d",manager.isReachableViaWWAN);
NSLog(@"isReachableViaWiFi = %d",manager.isReachableViaWiFi);
}
二、判断用户是否开启网络请求权限
1、蜂窝移动网
CTCellularData *cellularData = [[CTCellularData alloc] init];
cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state) {
switch (state) {
case kCTCellularDataRestrictedStateUnknown:
NSLog(@"不明错误....");
break;
case kCTCellularDataRestricted:
NSLog(@"没有授权....");
break;
case kCTCellularDataNotRestricted:
NSLog(@"授权了....");
break;
default:
break;
}
};
2、WLAN
查找中...
三、源码
+ (instancetype)sharedManager {
static AFNetworkReachabilityManager *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedManager = [self manager];
});
return _sharedManager;
}
网友评论