• iOS网络监测方法


    方法一(官方):

    Reachability

    ================================================================================

    框架地址:https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip


    使用方法


    1 添加一个联网状态监听对象

    @property (nonatomic, strong) Reachability *reach;


    2 实例化监听对象

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


    3 判断联网状态

    - (void)netwrokStatusChanged {

        switch (self.reach.currentReachabilityStatus) {

            case NotReachable:

                SJLog(@"没有联网");

                break;

            case ReachableViaWiFi:

                SJLog(@"通过Wi-Fi上网");

                break;

            case ReachableViaWWAN:

                SJLog(@"通过3G上网");

                break;

            default:

                break;

        }

    }


    4 利用通知中心实时监听联网状态

    [[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(netwrokStatusChanged) name:kReachabilityChangedNotification object:nil];

    [self.reach startNotifier];


    - (void)dealloc {

        // 注册指定的通知监听

        [[NSNotificationCenter defaultCenter] removeObserver:selfname:kReachabilityChangedNotification object:nil];

    }



    方法二(AFN):

        // 获得网络监控的管理者

        AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

        

        // 设置网络状态改变后的处理

        [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

            

            switch (status) {

                case AFNetworkReachabilityStatusUnknown: // 未知网络

                    SJLog(@"未知网络");

                    break;

                    

                case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网)

                    SJLog(@"未检到网络");

                    break;

                    

                case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络

                    SJLog(@"通过3G上网");

                    break;

                    

                case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI

                    SJLog(@"通过Wi-Fi上网");

                    break;

            }

        }];

        

        // 开始监控

        [mgr startMonitoring];


  • 相关阅读:
    判断是否在可视区域
    格式化数字10000,为10,000
    把数组(含有30项分成5组)
    排序
    enzyme 学习一
    golang使用sftp连接服务器远程上传、下载文件
    golang使用ssh远程连接服务器并执行命令
    一文弄懂vlan、三层交换机、网关、DNS、子网掩码、MAC地址的含义
    golang的序列化与反序列化的几种方式
    golang命令行参数解析
  • 原文地址:https://www.cnblogs.com/miaomiaoshen/p/5188622.html
Copyright © 2020-2023  润新知