实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking、ASIHttpRequest(这个停更了,想必现在没多少人用),swift的 Alamofire 等。

楼主有简单的耍了下主流的app,发现绝大部分都没有对 网络状态做实时的监听,QQ 和 微信 有做,但是这2个用的都是socket,所以第一时间侦听到了网络状态。在无网络情况下,重新连接到网络的过程中,目前看了 ,也只有 QQ 和 微信 做了 实时连接(app做了实时响应)。其他,支付宝,淘宝,京东,饿了么,等等 (BOSS直聘只能WIFI下可以使用,3G/4G下用不了,什么鬼?) 都需要用户主观的刷新页面。 个人感觉 体验不是很好。

不要求所有的页面做到页面的及时刷新,但主要页面,或是 首页 你能给个响应吧。我重连了网络,app就不能自己刷新下么。

APPLE 有给我们提供api,当然我们可以用现成的 RealReachability 、AFNetworkReachabilityManager(这货AFNetworking提供的)。有的可能需要判别2G/3G/4G 以及WIFI,给个传送门:http://www.jianshu.com/p/efcfa3c87306   。

我们就拿 AFNetworkReachabilityManager 做个示例:

AFNetworkReachabilityManager *afNetworkReachabilityManager = [AFNetworkReachabilityManager sharedManager];

    //    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(afNetworkStatusChanged:) name:AFNetworkingReachabilityDidChangeNotification object:nil];//这个可以放在需要侦听的页面
[afNetworkReachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) {
case AFNetworkReachabilityStatusNotReachable:{
NSLog(@"网络不通:%@",@(status) );
break;
}
case AFNetworkReachabilityStatusReachableViaWiFi:{
NSLog(@"网络通过WIFI连接:%@",@(status));
break;
} case AFNetworkReachabilityStatusReachableViaWWAN:{
NSLog(@"网络通过无线连接:%@",@(status) );
break;
}
default:
break;
} NSLog(@"网络状态数字返回:%@",@(status));
NSLog(@"网络状态返回: %@", AFStringFromNetworkReachabilityStatus(status)); NSLog(@"isReachable: %@",@([AFNetworkReachabilityManager sharedManager].isReachable));
NSLog(@"isReachableViaWWAN: %@",@([AFNetworkReachabilityManager sharedManager].isReachableViaWWAN));
NSLog(@"isReachableViaWiFi: %@",@([AFNetworkReachabilityManager sharedManager].isReachableViaWiFi)); }];
  [afNetworkReachabilityManager startMonitoring];  //开启网络监视器;

我们只要在AppDelegate 里面 调用一下就好。

iOS 实时监听app的网络连接状态的更多相关文章

  1. Win8 app判断网络连接状态

    Win8 app判断网络连接状态 NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged; ...

  2. iOS  如何判断当前网络连接状态  网络是否正常  网络是否可用

    网络资源:出处http://blog.csdn.net/mad1989/article/details/8987368   众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的 ...

  3. iOS开发——Reachability和AFNetworking判断网络连接状态

    一.Reachability // 监听网络状态改变的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selec ...

  4. iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)

    前言 我们知道在APP开发过程中.监听手机当前的网络状态还是一个非经常常使用的方法,这里我来为大家接受一种使用AFNetWorking来监听当前的网络状态的方法:网络监听对程序开发的帮助有非常多:比方 ...

  5. Android实时监听网络状态

    Android实时监听网络状态(1)   其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就 ...

  6. Windows Phone 8 获取与监听网络连接状态(转)

    原文地址:http://www.cnblogs.com/sonic1abc/archive/2013/04/02/2995196.html 现在的只能手机对网络的依赖程度都很高,尤其是新闻.微博.音乐 ...

  7. 类似吸顶功能解决ios不能实时监听onscroll的触发问题

    问题:近期项目需要一个类似西东功能,当页面向上滚动160px后div固定在顶部 解决方法:首先,想到的是window.onscroll方法 .fixed{position:fixed;-webkit- ...

  8. iOS下的实际网络连接状态检测(转)

    序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代 ...

  9. 李洪强iOS下的实际网络连接状态检测

    iOS下的实际网络连接状态检测 序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部 ...

随机推荐

  1. Handsontable 新增一行 默认值

    效果图:

  2. 格而知之15:我所理解的Block(1)

    1.Block 本质上是一个struct结构体,在这个结构体中,最重要的成员是一个函数(当然除函数外还有其他重要的成员). 2.在开始解析Block之前,首先来回顾一下Block的格式.Block相关 ...

  3. Highcharts 非常实用的Javascript统计图

    Highcharts 官网: http://www.highcharts.com Highcharts 官网示例:http://www.highcharts.com/demo/ Highcharts ...

  4. Vs2012于Linux应用程序开发(2):图案

    1.1     代码提示功能 在vs中开发中,Visual Assist是一个很优秀的插件,我们仍然能够使用它进行代码的分析,但它仅仅能支持vcxprojproject,因而我们选择对vcxproj的 ...

  5. Javascript进阶篇——浏览器对象—Location、Navigator、userAgent、screen对象

    Location对象location用于获取或设置窗体的URL,并且可以用于解析URL.语法: location.[属性|方法] location对象属性图示: location 对象属性: loca ...

  6. LANMP 一键下载

    下载安装 wget http://dl.wdlinux.cn:5180/lanmp_v2.5.tar.gz tar zxvf lanmp_v2.5.tar.gz sh install.sh 4个可选安 ...

  7. 【SQL语句】 - Ctrl+3 查询表属性的存储过程 [sp_select_talberowName]

    /**-- ============================================= Author: xftCteateDate: 2013-10-11Description:查看表 ...

  8. jBPM4.4与SSH2整合

    整合jBPM的目的就是能够通过注入的方式得到ProcessEngine实例,因为ProcessEngine是jbpm 的核心. 整合步骤: 1.新建web程,搭建好SSH2环境 2.导入jbpm相关的 ...

  9. GSS2-Can you answer these queries II

    ---恢复内容开始--- 这道题真的是非常恶心,看题解看了半天才弄懂,而且题解上说的相当简略. 此题大意是询问去掉重复元素的最大子区间和,没有修改操作. 没有修改操作,这样就可以离线处理了. 这道题有 ...

  10. MFC让控件随窗口大小而改变

    转载自http://blog.csdn.net/chw1989/article/details/7488711 大小和位置都改变(亲测可行) 1.首先为窗体类添加CRect m_rect,该成员变量用 ...