zoukankan      html  css  js  c++  java
  • Reachability(判断网络是否连接)

    类似于一个网络状况的探针。
      [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
        
        hostReach = [[Reachability reachabilityWithHostName: @"hubj.cnblogs.com"] retain];
        [hostReach startNotifier];
        
        wifiReach=[[Reachability reachabilityForLocalWiFi]retain];
        [wifiReach startNotifier];
     
    - (void)reachabilityChanged: (NSNotification* )note {
        Reachability* curReach = [note object];
        NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
        
        NetworkStatus netStatus = [curReach currentReachabilityStatus];
        
        switch (netStatus)
        {
            case NotReachable:
            {
                NSLog(@"Access Not Available");
                break;
            }
                
            case ReachableViaWWAN:
            {
                NSLog(@"Reachable WWAN");
                break;
            }
            case ReachableViaWiFi:
            {
                NSLog(@"Reachable WiFi");
                break;
            }
        }
    
    }
     
    判断网络是否连接
    /***
    * 此函数用来判断是否网络连接服务器正常
    * 需要导入Reachability类
    */
    + (BOOL)isExistenceNetwork
    {
        BOOL isExistenceNetwork;
        Reachability *reachability = [Reachability reachabilityWithHostName:@""];  // 测试服务器状态
        
         switch([reachability currentReachabilityStatus]) {
                case NotReachable:
                      isExistenceNetwork = FALSE;
                      break;
                 case ReachableViaWWAN:
                       isExistenceNetwork = TRUE;
                       break;
                  case ReachableViaWiFi:
                        isExistenceNetwork = TRUE;
                        break;
         }
         return  isExistenceNetwork;
    }
     
    实时通知网络状况
    /*
    * 在应用委托的方法didFinishLaunchingWithOptions中添加
    */
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
    reachability = [[Reachability reachabilityWithHostName:@"www.baidu.com"] retain];
    [reachability startNotifier];
    ........
    return YES;
    
    /**
    *此函数通过判断联网方式,通知给用户
    */
    - (void)reachabilityChanged:(NSNotification *)notification
    {
          Reachability *curReachability = [notification object];
          NSParameterAssert([curReachability isKindOfClass:[Reachability class]]);
          NetworkStatus curStatus = [curReachability currentReachabilityStatus];
          if(curStatus == NotReachable) {
              [DOIN_Util logFax:@"连接失败"];
          }
    }
  • 相关阅读:
    PHP的超全局变量
    Python 切片
    Python for else语句 以及 break和continue
    niceScroll 滚动条的用法
    python 短路求值或惰性求值
    python 中的 __name__
    python3 中的Counter函数
    谷歌浏览器 F12
    python reversed()的使用
    python字符串格式化% 操作符 {}操作符
  • 原文地址:https://www.cnblogs.com/langtianya/p/4876014.html
Copyright © 2011-2022 走看看