• IOS网络访问之获取网络状态


    苹果设备的网络状况多变,既可能有网,也可能网络断开,既可能通过wifi联网,也可能通过蜂窝数据联网,很多时候我们需要获知程序当前运行在何种网络状况下

    我们可以在苹果官方下载工具类Reachability,解压后将Reachability.h和Reachability.m添加到我们的项目中

    示例1:查看当前的网络环境(通过访问一个页面测试网络状况)

    Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.cnblogs.com/zanglitao/"];
        
        switch([reach currentReachabilityStatus]) {
            case NotReachable:
            NSLog(@"无法访问");
            break;
            
            case ReachableViaWiFi:
            NSLog(@"使用wifi");
            
            case ReachableViaWWAN:
            NSLog(@"使用蜂窝数据");
        }

    示例2:测试手机是否连接wifi(或者蜂窝)

    if([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable) {
            NSLog(@"wifi网络可用");
        }
        
    if([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable) {
            NSLog(@"蜂窝网络可用");
        }

    示例3:监听网络变化

    我们通过Reachability对象的startNotifier方法开启通知,当网络变化时Reachability会发出kReachabilityChangedNotification的通知给默认的通知中心

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(netStatusChange:) name:kReachabilityChangedNotification object:nil];
        Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.cnblogs.com/zanglitao/"];
        [reach startNotifier];//[reach stopNotifier];
        
        return YES;
    }
    
    - (void)netStatusChange:(NSNotification *)note {
        Reachability *reach = [note object];
        //获取当前网络状态
        NetworkStatus *status = [reach currentReachabilityStatus];
        
    }
  • 相关阅读:
    从头认识java-14.2 进一步了解数组
    移植MonkeyRunner的图片对照和获取子图功能的实现-UiAutomator/Robotium篇
    JVM —— 移除永久代
    三层架构与四大天王之——查
    unity3D中使用Socket进行数据通信(一)
    npm使用指南
    java命令模式
    共享内存通讯编程
    jade 入门
    MongoDB数据库进阶 --- 增删查改...
  • 原文地址:https://www.cnblogs.com/zanglitao/p/4082339.html
Copyright © 2020-2023  润新知