当前位置: 首页 > news >正文

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监听网络状态

转载于:https://www.cnblogs.com/On1Key/p/5505220.html

相关文章:

  • WCF学习之旅—WCF服务部署到应用程序(十)
  • 第三节课作业——指针
  • AngularJS 应用身份认证的技巧
  • UDP数据报
  • 实时预测用户对物品偏好 阿里云推荐引擎帮助你更好的提升业务
  • PHPer书单
  • 【译】使用newInstance()来实例化fragment
  • Android 2.3 r1 中文API (78)—— ViewAnimator
  • 构建之法阅读笔记06
  • 实现多点跳跃登录Xshell使用教程
  • [UML]UML系列——类图class的实现关系Realization
  • iOS不得姐项目--pop框架的初次使用
  • Mysql主主同步-配置数据同步
  • php字符串类型讲解
  • IOS照片颠倒分析及移动/页面端的处理策略和思路
  • Akka系列(七):Actor持久化之Akka persistence
  • Android系统模拟器绘制实现概述
  • Django 博客开发教程 16 - 统计文章阅读量
  • golang中接口赋值与方法集
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript设计模式与开发实践系列之策略模式
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • nodejs调试方法
  • VUE es6技巧写法(持续更新中~~~)
  • 分布式熔断降级平台aegis
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 记录:CentOS7.2配置LNMP环境记录
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 两列自适应布局方案整理
  • 使用docker-compose进行多节点部署
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 系统认识JavaScript正则表达式
  • 原生Ajax
  • NLPIR智能语义技术让大数据挖掘更简单
  • 阿里云服务器如何修改远程端口?
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #QT(串口助手-界面)
  • $.ajax()
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (Ruby)Ubuntu12.04安装Rails环境
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (生成器)yield与(迭代器)generator
  • (转)原始图像数据和PDF中的图像数据
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net Signalr 使用笔记
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [20190401]关于semtimedop函数调用.txt
  • [AAuto]给百宝箱增加娱乐功能
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法