IOS-利用AFNetworking监听网络状态


  • 网络环境检测:检测用户当前所处的网络状态
  • 效果图

    • 1.当蜂窝和wifi同时关闭时候 
      这里写图片描述

    • 显示为不可达(AFNetworkReachabilityStatusNotReachable)状态

    • 这里写图片描述
    • 2.打开蜂窝移动数据,关闭wifi 
      这里写图片描述
    • 显示为wan网络 
      这里写图片描述
    • 3.打开wifi,关闭蜂窝移动数据 
      这里写图片描述
    • 显示为wifi网络(AFNetworkReachabilityStatusReachableViaWiFi) 
      这里写图片描述
    • 4.同时打开wifi和蜂窝移动数据时候 
      这里写图片描述
    • 显示为wifi网络,从这点来看,显然是不坑的呀 
      这里写图片描述

步骤

  • 1.创建网络监听者管理者对象
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
  • 2.设置监听 
    • 网络状态
    //显然是枚举值 typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未识别的网络 AFNetworkReachabilityStatusNotReachable = 0,//不可达的网络 AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络

-设置网络监听

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未识别的网络"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可达的网络(未连接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的网络"); break; default: break; } }]; 
  • 3.开始监听
[manager startMonitoring];

代码

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //创建网络监听管理者对象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; /* typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未识别的网络 AFNetworkReachabilityStatusNotReachable = 0,//不可达的网络(未连接) AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络 }; */ //设置监听 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未识别的网络"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可达的网络(未连接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的网络"); break; default: break; } }]; //开始监听 [manager startMonitoring]; }
相关链接:
IOS-利用AFNetworking监听网络状态


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM