AFNetWorking3.0 网络状态监测

```

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{

#pragmamark-监听网络

[self isNetWorking];

returnYES;

}

-(void)isNetWorking{

//开启网络指示器,开始监听

[[AFNetworkReachabilityManagersharedManager]startMonitoring];

// 检测网络连接的单例,网络变化时的回调方法

[[AFNetworkReachabilityManagersharedManager]setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatusstatus){

}];

}

//========================================

#pragmamark-在需要监听网络的视图控制器实现此方法

-(void)viewDidLoad{

[super viewDidLoad];

[selfAFNetworkStatus];

}

#pragmamark-网络状态判断

-(void)AFNetworkStatus{

//1.创建网络监测者

AFNetworkReachabilityManager*manager=[AFNetworkReachabilityManagersharedManager];

/*枚举里面四个状态  分别对应 未知 无网络 数据 WiFi

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {

AFNetworkReachabilityStatusUnknown          = -1,      未知

AFNetworkReachabilityStatusNotReachable     = 0,       无网络

AFNetworkReachabilityStatusReachableViaWWAN = 1,       蜂窝数据网络

AFNetworkReachabilityStatusReachableViaWiFi = 2,       WiFi

};

*/

__weakHome_ViewController*weakSelf=self;

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatusstatus){

//这里是监测到网络改变的block  可以写成switch方便

//在里面可以随便写事件

switch(status){

caseAFNetworkReachabilityStatusUnknown:{

NSLog(@"未知网络状态");

UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:nil message:@"未知网络"delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定",nil];

[alert show];

weakSelf.NetWorkStatus=NO;

}

break;

caseAFNetworkReachabilityStatusNotReachable:{

NSLog(@"无网络");

UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:nil message:@"无网络"delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定",nil];

[alert show];

weakSelf.NetWorkStatus=NO;

}

break;

caseAFNetworkReachabilityStatusReachableViaWWAN:{

NSLog(@"蜂窝数据网");

UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:nil message:@"正在使用蜂窝数据网络"delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定",nil];

[alert show];

weakSelf.NetWorkStatus=YES;

[[NSNotificationCenterdefaultCenter]postNotificationName:@"NetWorkOk"object:nil];

}

break;

caseAFNetworkReachabilityStatusReachableViaWiFi:{

NSLog(@"WiFi网络");

//                UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"网络" message:@"WiFi网络" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];

//                [alert show];

[[NSNotificationCenterdefaultCenter]postNotificationName:@"NetWorkOk"object:nil];

weakSelf.NetWorkStatus=YES;

}

break;

default:

break;

}

}];

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,179评论 2 7
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 11,428评论 3 22
  • SystemConfiguration网络监测 网络状态监测使用SystemConfiguration这个API ...
    蚂蚁牙齿不黑阅读 4,239评论 0 1
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    羊驼先生丶阅读 4,402评论 0 0
  • 崑每天早上都起来比较早,如果是和婆婆一起睡,醒来第一件事情就是光着脚跑到我们房间,如果是和我们睡,就会从他的小床上...
    婳姐崑宝阅读 1,625评论 0 0