zoukankan      html  css  js  c++  java
  • IOS-利用AFNetworking监听网络状态

    • 网络环境检测:检测用户当前所处的网络状态
    • 效果图

      • 1.当蜂窝和wifi同时关闭时候 
        这里写图片描述

      • 显示为不可达(AFNetworkReachabilityStatusNotReachable)状态

      • 这里写图片描述
      • 2.打开蜂窝移动数据,关闭wifi 
        这里写图片描述
      • 显示为wan网络 
        这里写图片描述
      • 3.打开wifi,关闭蜂窝移动数据 
        这里写图片描述
      • 显示为wifi网络(AFNetworkReachabilityStatusReachableViaWiFi) 
        这里写图片描述
      • 4.同时打开wifi和蜂窝移动数据时候 
        这里写图片描述
      • 显示为wifi网络,从这点来看,显然是不坑的呀 
        这里写图片描述

    步骤

    • 1.创建网络监听者管理者对象
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    • 2.设置监听 
      • 网络状态
        //显然是枚举值
        typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
            AFNetworkReachabilityStatusUnknown          = -1,//未识别的网络
            AFNetworkReachabilityStatusNotReachable     = 0,//不可达的网络
            AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G...
            AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络

    -设置网络监听

    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
            switch (status) {
                case AFNetworkReachabilityStatusUnknown:
                    NSLog(@"未识别的网络");
                    break;
    
                case AFNetworkReachabilityStatusNotReachable:
                    NSLog(@"不可达的网络(未连接)");
                    break;
    
                case AFNetworkReachabilityStatusReachableViaWWAN:
                    NSLog(@"2G,3G,4G...的网络");
                    break;
    
                case AFNetworkReachabilityStatusReachableViaWiFi:
                    NSLog(@"wifi的网络");
                    break;
                default:
                    break;
            }
        }];
    
    • 3.开始监听
    [manager startMonitoring];

    代码

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //创建网络监听管理者对象
        AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    
        /*
         typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
         AFNetworkReachabilityStatusUnknown          = -1,//未识别的网络
         AFNetworkReachabilityStatusNotReachable     = 0,//不可达的网络(未连接)
         AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G...
         AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi网络
         };
         */
         //设置监听
        [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
            switch (status) {
                case AFNetworkReachabilityStatusUnknown:
                    NSLog(@"未识别的网络");
                    break;
    
                case AFNetworkReachabilityStatusNotReachable:
                    NSLog(@"不可达的网络(未连接)");
                    break;
    
                case AFNetworkReachabilityStatusReachableViaWWAN:
                    NSLog(@"2G,3G,4G...的网络");
                    break;
    
                case AFNetworkReachabilityStatusReachableViaWiFi:
                    NSLog(@"wifi的网络");
                    break;
                default:
                    break;
            }
        }];
        //开始监听
        [manager startMonitoring];
    }
    相关链接:
    IOS-利用AFNetworking监听网络状态
  • 相关阅读:
    hadoop分布式搭建
    朴素贝叶斯算法
    python数组并集交集补集
    VMware Workstation下安装Linux
    决策树ID3算法
    微信小程序开发测试
    筛法求素数质数
    STL——heap结构及算法
    STL——序列式容器
    使用位图字体工具BMFont从图片生成自定义字体
  • 原文地址:https://www.cnblogs.com/On1Key/p/5505220.html
Copyright © 2011-2022 走看看