美文网首页iOS大咖说iOS 开发固予
iOS 实时判断网络状态(多种方法)

iOS 实时判断网络状态(多种方法)

作者: 流行的武 | 来源:发表于2016-04-13 12:37 被阅读12875次

方法一:利用系统状态栏判断网络状态

// 状态栏是由当前app控制的,首先获取当前app
UIApplication *app = [UIApplication sharedApplication];

NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];

int type = 0;
for (id child in children) {
    if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
        type = [[child valueForKeyPath:@"dataNetworkType"] intValue];
    }
}
switch (type) {
    case 1:

        return @"2G";

        break;

    case 2:

        return @"3G";
    case 3:

        return @"4G";
    case 5:

        return @"WIFI";

    default:

        return @“NO-WIFI";//代表未知网络

        break;
}

当然,此方法存在一定的局限性,比如当状态栏被隐藏的时候,无法使用此方法。
参考

方法二:使用第三方库AFNetWorking判断(使用前记得导入 #import "AFNetworking.h")

[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager ] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    switch (status) {
        case -1:
            NSLog(@"未知网络");
            break;
        case 0:
            NSLog(@"网络不可达");
            break;
        case 1:
            NSLog(@"GPRS网络");
            break;
        case 2:
            NSLog(@"wifi网络");
            break;
        default:
            break;
    }
    if(status ==AFNetworkReachabilityStatusReachableViaWWAN || status == AFNetworkReachabilityStatusReachableViaWiFi)
    {
        NSLog(@"有网");
    }else
    {
        NSLog(@"没有网");
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"网络失去连接" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];
        alert.delegate = self;
        [alert show];
    }
}];

将此代码写在AppDelegate.m中,就可以实现实时监测网络状态了。

相关文章

  • iOS 实时判断网络状态(多种方法)

    方法一:利用系统状态栏判断网络状态 当然,此方法存在一定的局限性,比如当状态栏被隐藏的时候,无法使用此方法。参考 ...

  • iOS 实时判断网络状态(多种方法)

    方法一:利用系统状态栏判断网络状态 当然,此方法存在一定的局限性,比如当状态栏被隐藏的时候,无法使用此方法。 方法...

  • 实时判断网络状态

    方法一:利用系统状态栏判断网络状态 // 状态栏是由当前app控制的,首先获取当前appUIApplication...

  • 监测网络变化方法

    *******摘自网络-----未经测试******** iOS 判断网络连接状态的几种方法(一).Reachab...

  • 监听网络

    ios 注册通知、监听 iOS-OC-监听网络状态,有网时数据自动刷新 iOS实时监控网络状态的改变 简书 iOS...

  • iOS判断网络状态

    问题:在用Reachability和AFNetwork检测网络可达性时,只能检测到设备目前是否连上WiFi,使用数...

  • iOS网络状态判断

    1.使用AFNetworking判断 2.通过Reachability框架Reachability是一个在iOS系...

  • iOS 判断网络状态

    //创建网络状态监测管理者 AFNetworkReachabilityManager *manager = [AF...

  • iOS判断网络状态

    在很多时候我们都是需要检测当前手机网络状态的,最常见的地方就是视频、音频或下载界面。当处于非Wi-Fi状态时,提示...

  • AFNetworking 3.0的使用

    下面介绍一下iOS开发中几种最常用到的AFNetworking方法。 一、实时监测网络状态 可以看到很多app都会...

网友评论

本文标题:iOS 实时判断网络状态(多种方法)

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