zoukankan      html  css  js  c++  java
  • 利用Reachability实现网络状态监听

    时刻检查设备的联网状态,并作出相应的处理,基本上是所有的联网程序需要考虑的问题,以前自己写个NSTimer 每多少卖哦循环一次,后来觉得这个思维有些不爽,就直接用Reachability来实现了

    首先考虑要在每一个类都能用这个网络的判定结果,可以用一个单例写,怕麻烦的话 直接写在 AppDelegate也行。

    .h的操作

    @property (strong,nonatomic)Reachability *reachiability;

    @property (assign,nonatomic)BOOL isReachable;//是否可用

    @property (assign,nonatomic)NetworkStatus status;//判定状态用的

    .m里

     //开启网络状况的监听

        [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationobject:nil];

        self.reachiability = [ReachabilityreachabilityWithHostname:@"www.baidu.com"];

        [self.reachiability startNotifier];  //开始监听,会启动一个run loop

    OK 剩下的就是实现reachabilityChanged:这个带有参数的方法了

    //网络链接改变时会调用的方法

    -(void)reachabilityChanged:(NSNotification *)note

    {

        Reachability *currReach = [note object];

        NSParameterAssert([currReach isKindOfClass:[Reachability class]]);

        //对连接改变做出响应处理动作

        self.status = [currReach currentReachabilityStatus];

        //如果没有连接到网络就弹出提醒实况

        self.isReachable = YES;

        switch (self.status) {

            case NotReachable:

            {

              //各种操作

                self.isReachable = NO;

            }

                break;

            caseReachableViaWiFi:

            {

              //各种操作

              self.isReachable = YES;

            }

                break;

            caseReachableViaWWAN:

            {

                //各种操作

                self.isReachable = YES;

            }

                break;

            default:

                break;

        }

    }

    在其他类里就可以用了~ 想判断是否有网络可以用 isReachable  想判断是什么网络可以用status~~

  • 相关阅读:
    springboot应用docker部署调用phantomjs出现permission denied修复方法
    vue某单元格设置背景色
    vue编辑当行数据,弹窗赋值
    vue使用element-ui的el-input监听不了键盘事件解决
    js获取当前域名
    Jedis Redis 模糊匹配 取得 key 列表
    电脑启机时出windowssystem32driversootsafe64.sys
    Vue子组件调用父组件的方法
    Docker 连接mongodb
    Unsatisfied dependency expressed through field 'mongoTemplate'
  • 原文地址:https://www.cnblogs.com/superhappy/p/3039682.html
Copyright © 2011-2022 走看看