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监听网络状态
  • 相关阅读:
    人工智能,垂直领域
    西方企业该向中国式创新学什么?
    [Leetcode 6] ZigZag问题的一种新思路
    Unknown column '*' in 'field list' 异常解决
    多媒体——图像文件大小的计算
    Lucky Number
    win7 64位系统下进入debug
    Chromium网页DOM Tree创建过程分析
    做好长期奋斗的准备
    IP寻址和子网运算
  • 原文地址:https://www.cnblogs.com/On1Key/p/5505220.html
Copyright © 2011-2022 走看看