iOS网络 - AFNetworking检测网络状态

1.创建监听管理者

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
2.打开检测开始检测网络状态
[manager startMonitoring];
3.监听网络状态的改变

AFNetworking 中四个状态的枚举值如下:

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
AFNetworkReachabilityStatusUnknown          = -1, //未知
AFNetworkReachabilityStatusNotReachable     = 0,  //无连接
AFNetworkReachabilityStatusReachableViaWWAN = 1,  //3G
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:
{ //WIFI NSLog( @"当前在WIFI网络下");
} }
 }];



[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusUnknown:
            {
                //未知网络
                NSLog(@"未知网络");
            }
                break;
            case AFNetworkReachabilityStatusNotReachable:
            {
                //无法联网
                NSLog(@"无法联网");
            }
                break;

            case AFNetworkReachabilityStatusReachableViaWWAN:
            {
                //手机自带网络
                NSLog(@"当前使用的是2g/3g/4g网络");
            }
                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:
            {
                //WIFI
                NSLog(@"当前在WIFI网络下");
            }
                
        }
    }];

typedef NS_ENUM( NSInteger, AFNetworkReachabilityStatus) {AFNetworkReachabilityStatusUnknown = -1, //未知AFNetworkReachabilityStatusNotReachable = 0, //无连接AFNetworkReachabilityStatusReachableViaWWAN = 1, //3GAFNetworkReachabilityStatusReachableViaWiFi = 2, //WIFI

example:


AFNetworkReachabilityManager * mgr = [AFNetworkReachabilityManager sharedManager];

    [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

        // 当网络状态发生改变的时候调用这个block

        switch (status) {

            case AFNetworkReachabilityStatusReachableViaWiFi:

                NSLog(@"WIFI");

                [[NSUserDefaults standardUserDefaults] setObject:@"wifi" forKey:@"network"];

                break;

                

            case AFNetworkReachabilityStatusReachableViaWWAN:

                NSLog(@"自带网络");

                [[NSUserDefaults standardUserDefaults] setObject:@"3g" forKey:@"network"];

                

                break;

                

            case AFNetworkReachabilityStatusNotReachable:

                NSLog(@"没有网络");

                [[NSUserDefaults standardUserDefaults] setObject:@"without" forKey:@"network"];

                

                break;

                

            case AFNetworkReachabilityStatusUnknown:

                NSLog(@"未知网络!");

                [[NSUserDefaults standardUserDefaults] setObject:@"unknown" forKey:@"network"];

                

                break;

            default:

                break;

        }    }];

    // 开始监控

    [mgr startMonitoring];



你可能感兴趣的:(IOS开发项目)