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:@"连接失败"];
    }
    }
  • 相关阅读:
    css样式学习笔记
    Css教程玉女心经版本
    weblogic高级进阶之ssl配置证书
    weblogic高级进阶之查看日志
    weblogic之高级进阶JMS的应用
    【WebLogic使用】3.WebLogic配置jndi数据源
    shiro的helloworld
    尚硅谷spring 事物管理
    尚硅谷spring aop详解
    Spring Boot 2.x Redis多数据源配置(jedis,lettuce)
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/4708051.html
Copyright © 2011-2022 走看看