iOS开发——Reachability和AFNetworking判断网络连接状态

xiaoxiao2021-02-28  71

一、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(@"没有网络"); } }   二、AFNetworking // 1.获得网络监控的管理者 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; // 2.设置网络状态改变后的处理 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {   // 当网络状态改变了, 就会调用这个block   switch (status) {     case AFNetworkReachabilityStatusUnknown:       // 未知网络       NSLog(@"未知网络");       break;     case AFNetworkReachabilityStatusNotReachable:       // 没有网络(断网)       NSLog(@"没有网络(断网)");       break;     case AFNetworkReachabilityStatusReachableViaWWAN:       // 手机自带网络       NSLog(@"手机自带网络");       break;     case AFNetworkReachabilityStatusReachableViaWiFi:       // WIFI       NSLog(@"WIFI");       break;   } }]; // 3.开始监控 [manager startMonitoring];
转载请注明原文地址: https://www.6miu.com/read-71784.html

最新回复(0)