行业动态
苹果官方给的方法有很多种,以下三种相对最常用
2021-01-26

IOS有许多方法可以判断网络状态,以下三种是最常用的方法:

([1)AFN,如果在项目的网络请求中使用AFN框架,则AFN中有一个AFNetworkReachabilityManager单例类可以获取当前的网络状态,方便实用。

#pragma 网络状态监控
- (void)checkNetworkStatus
{
    AFNetworkReachabilityManager* manager = [AFNetworkReachabilityManager sharedManager];
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
       NSLog(@"%@",AFStringFromNetworkReachabilityStatus(status));
        switch (status) {
            case AFNetworkReachabilityStatusReachableViaWiFi:
                //lab.text = @"当前网络连接:wifi";
             
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:
                //lab.text = @"当前网络连接:2G/3G/4G";
                break;
            case AFNetworkReachabilityStatusNotReachable:
            default:
                //lab.text = @"当前网络连接:未连接";
                break;
        }
    }];
    [manager startMonitoring];
}

android 判断hdmi状态_ios判断网络连接状态_微信连接失败无法连接服务器请检查你的网络

(2)Apple正式提供了可达性文档ios判断网络连接状态,以获取并检查设备的网络状态。

您只需要导入Reachability.h和Reachability.m文件ios判断网络连接状态,然后导入SystemConfiguration.framework框架即可。苹果公司提供的官方方法更具权威性,而且绝对没有问题。

// 监听网络状态改变的通知
[[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.检测手机是否能上网
    Reachability *conn = [Reachability reachabilityForInternetConnection];
    
    // 3.判断网络状态
    if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
        NSLog(@"有wifi");
    } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
        NSLog(@"使用手机自带网络进行上网");
    } else { // 没有网络
        NSLog(@"没有网络");
    }
}


393701618