iOS网络状态判断

1.使用AFNetworking判断

- (void)monitorNetworking
{
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusUnknown:
                NSLog(@"未知网络");
                break;
            case AFNetworkReachabilityStatusNotReachable:
                NSLog(@"网络不可达");
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:
            {
                NSLog(@"手机网络");
            }
                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:
            {
                NSLog(@"wifi网络");
            }
                break;
            default:
                break;
        }
        if (status == AFNetworkReachabilityStatusReachableViaWWAN || status == AFNetworkReachabilityStatusReachableViaWiFi) {
            NSLog(@"有网");
        }else{
            NSLog(@"没网");
        }
    }];
}

2.通过Reachability框架
Reachability是一个在iOS系统环境下检测iOS设备当前的网络环境的库。它的主要功能是监测三种网络环境:2G/3G/4G、WiFi网络、无网络。在应用的运行状态下,实时监测网络连接方式的变更,及时给出通知。
Reachability的使用
首先需要在GitHub上下载Reachability的压缩包,解压后将Reachability.h和Reachability.m文件拖入工程当中,在使用的地方引入头文件即可(或者使用cocoapods管理第三方库)。

Reachability*reach=[Reachability reachabilityWithHostName:@"www.baidu.com"];

//2.判断当前的网络状态

switch([reach currentReachabilityStatus]){

case ReachableViaWWAN:

NSLog(@"正在使用移动数据网络");

break;

case ReachableViaWiFi:

NSLog(@"正在使用WiFi");

break;

default:

NSLog(@"无网络");

break;

}

根据currentReachabilityStatus方法获取当前的网络环境,ReachableViaWWAN表示移动数据网络,ReachableViaWiFi表示WiFi网络,NotReachable表示没有接入网络。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容