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监听网络状态

posted on 2016-05-18 14:41  On1Key  阅读(10650)  评论(0编辑  收藏  举报

导航