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监听网络状态
  • 相关阅读:
    【JZOJ3188】找数【数论,数学】
    【JZOJ3187】的士【模拟】
    【JZOJ3187】的士【模拟】
    【洛谷P1641】生成字符串【数论,数学】
    【洛谷P1896】互不侵犯【状压dp】
    聚集索引与非聚集索引
    哈希索引
    索引能提高检索速度,降低维护速度
    MySQL索引基本知识
    注解
  • 原文地址:https://www.cnblogs.com/On1Key/p/5505220.html
Copyright © 2011-2022 走看看