AFN网络状态的时时监控以及网络的判断、

 //3.判断网络状况
    AFNetworkReachabilityManager *netManager = [AFNetworkReachabilityManager sharedManager];
    [netManager startMonitoring];  //开始监听
    [netManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){
        
        if (status == AFNetworkReachabilityStatusNotReachable)
        {
            //showAlert
            [[[UIAlertView alloc]initWithTitle:@"提示" message:@"网络链接错误,请检查网络链接" delegate:nil cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil]show];
            
            DLog(@"没有网络");
            
            return;
            
        }else if (status == AFNetworkReachabilityStatusUnknown){
            
            DLog(@"未知网络");
            
        }else if (status == AFNetworkReachabilityStatusReachableViaWWAN){
            
            DLog(@"WiFi");
            
        }else if (status == AFNetworkReachabilityStatusReachableViaWiFi){
            
            DLog(@"手机网络");
        }
        
    }];

 

1.Reachability
// 监听网络状态改变的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];

// 创建Reachability
self.conn = [Reachability reachabilityForInternetConnection];
// 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)
[self.conn startNotifier];

// 处理网络状态改变
- (void)networkStateChange
{
    // 1.检测wifi状态
    Reachability *wifi = [Reachability reachabilityForLocalWiFi];
    
    // 2.检测手机是否能上网络(WIFI\3G\2.5G)
    Reachability *conn = [Reachability reachabilityForInternetConnection];
    
    // 3.判断网络状态
    if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
        NSLog(@"有wifi");
    } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
        NSLog(@"使用手机自带网络进行上网");
    } else { // 没有网络
        NSLog(@"没有网络");
    }
}

2.AFN
// 1.获得网络监控的管理者
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

// 2.设置网络状态改变后的处理
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    // 当网络状态改变了, 就会调用这个block
    switch (status) {
        case AFNetworkReachabilityStatusUnknown: // 未知网络
            NSLog(@"未知网络");
            break;
            
        case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网)
            NSLog(@"没有网络(断网)");
            break;
            
        case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络
            NSLog(@"手机自带网络");
            break;
            
        case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI
            NSLog(@"WIFI");
            break;
    }
}];

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(relogin:)                       name:AFNetworkingReachabilityDidChangeNotification object:nil];

// 3.开始监控 
[mgr startMonitoring];

- (void)relogin:(NSNotification *)notifi{ 
    
  NSLog(@"打印网络状态:%@", notifi);



+ (AFHTTPRequestOperationManager *)getRequstManager {

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    // 请求超时设定

    manager.requestSerializer.timeoutInterval = 10;

//    manager.securityPolicy.allowInvalidCertificates = YES;

       return manager;

}

 

 

/**

 监控网络状态

 */

+ (BOOL)checkNetworkStatus {

    __block BOOL isNetworkUse = YES;

    AFNetworkReachabilityManager *reachabilityManager = [AFNetworkReachabilityManager sharedManager];

    [reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

        if (status == AFNetworkReachabilityStatusUnknown) {

            isNetworkUse = YES;

        } else if (status == AFNetworkReachabilityStatusReachableViaWiFi){

            isNetworkUse = YES;

        } else if (status == AFNetworkReachabilityStatusReachableViaWWAN){

            isNetworkUse = YES;

        } else if (status == AFNetworkReachabilityStatusNotReachable){

            // 网络异常操作

            isNetworkUse = NO;

            XLLog(@"网络异常,请检查网络是否可用!");

        }

    }];

    [reachabilityManager startMonitoring];

    return isNetworkUse;

}

 
posted on 2015-12-01 11:14  pTrack  阅读(387)  评论(0)    收藏  举报