美文网首页
网络状态监听

网络状态监听

作者: Leon1024 | 来源:发表于2019-06-05 23:20 被阅读0次

    一、在 AppDelegate.m 中创建监听单例,并监听发起通知

    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
        [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"AFNetworkReachabilityStatusNotification" object:nil userInfo:@{@"status" : @(status)}];
        }];
        [manager startMonitoring];
    
    

    二、在任意地方接收状态通知,此非block通知,iOS9后无需移除监听,不会强引用

    - (void)viewDidLoad {
        [super viewDidLoad];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveAFNetworkingReachabilityStatusNotification:) name:@"AFNetworkReachabilityStatusNotification" object:nil];
    }
    
    - (void)receiveAFNetworkingReachabilityStatusNotification:(NSNotification *)notification {
        NSDictionary *userInfo = notification.userInfo;
        NSInteger status = [[userInfo valueForKey:@"status"] integerValue];
        switch (status) {
                // 未知网络
            case AFNetworkReachabilityStatusUnknown:
                // 无网络
            case AFNetworkReachabilityStatusNotReachable:
            {
                NSLog(@">>>>>>>>无网络aa");
                
                break;
            }
                // 蜂窝数据
            case AFNetworkReachabilityStatusReachableViaWWAN:
                // wifi
            case AFNetworkReachabilityStatusReachableViaWiFi:
            {
                NSLog(@">>>>>>>>Wifiaa");
                
                break;
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:网络状态监听

          本文链接:https://www.haomeiwen.com/subject/hnuexctx.html