昨天浏览了cocoaChina,发现了一遍文章是优化Reachablity框架的出来的检测网络类,大家都知道这个Reachablity框架是用来检测网络变化的!但是也是有一点bug,事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态;这种情况包括但不限于如下场景:

1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法上网,但本地连接已经建立;

2.存在了本地网络连接,但信号很差,实际无法连接到服务器;

3.iOS连接的路由设备本身没有连接外网。

感谢管振纬的分享,以下链接为RealReachability,一个比Reachablity更好用的网络框架!http://www.cocoachina.com/ios/20160224/15407.html

大家觉得麻烦的话,直接看我的代码就好了,利用RealReachability做出来的网络检测demo!代码不多!除了全局检测网络变化,我还加了不管在哪个类都可以判断是否可用和获取当前的网络状态,希望能帮助到大家!

使用方法:

1、点击上面的链接下载RealReachability,把RealReachability文件夹拖入到工程2、最简便的集成方法当属pod: pod 'RealReachability

3、依赖:Xcode5.0+,支持ARC, iOS6+.项目需要引入SystemConfiguration.framework.

创建两个成员属性

导入头文件

接收通知

实现通知方法

以下就是我们在别的控制器获取当前的网络状态和网络是否可用!

导入头文件

ok!就这样就完成了!写的不好,希望大家多多提点,喜欢的点个赞,鼓励下!哈哈

转载 iOS全局检测网络变化的实时状态的更多相关文章

  1. 检测网络变化(wifi、2g、3g、4g)

    检测网络变化(wifi.2g.3g.4g) 1.注册广播"android.net.conn.CONNECTIVITY_CHANGE"和"android.net.wifi. ...

  2. C#如何检测网络端口连接的状态

    原文:C#如何检测网络端口连接的状态 C#如何检测/监控远程连接网络端口的情况(例如:3389端口是否处于监听状态,是否建立了连接等). using System; using System.Coll ...

  3. iOS开发 - 检测网络状态(WIFI、2G/3G/4G)

    本文转载至 http://blog.csdn.net/wangzi11322/article/details/45580917 检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 ...

  4. iOS Reachability检测网络状态

    一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发.其实在网络开发中还有比较常用的就是网络状 ...

  5. iOS开发——网络篇——数据安全(MD5),HTTPS,检测网络状态

    一.数据安全 1.提交用户的隐私数据一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 ...

  6. iOS开发网络篇—Reachability检测网络状态

    前言:当应用程序需要访问网络的时候,它首先应该检查设备的网络状态,确认设备的网络环境及连接情况,并针对这些情况提醒用户做出相应的处理.最好能监听设备的网络状态的改变,当设备网络状态连接.断开时,程序也 ...

  7. [iOS 多线程 & 网络 - 2.8] - 检测网络状态

    A.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 ...

  8. 李洪强iOS开发之使用 Reachability 检测网络

    1.iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方应用. 大多数的iOS应用都需要联网,甚至有些应用严重依赖网络,没有网络就无法正常工作. 2.在你的应用尝试通 ...

  9. iOS开发 - Swift实现检测网络连接状态及网络类型

    一.前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要.本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络.Wifi). 二.如何实现 Reachabili ...

随机推荐

  1. apache的动态和静态

    apache的动态和静态  http://www.cnblogs.com/eoiioe/archive/2008/12/23/1360476.html(2.0和2.2一样) 关于apache的动态与静 ...

  2. 关于在SSH2中使用ajax技术的总结(主要写Struts2和ajax)

    以下内容是自己理解的,因为还没有看过相关的文章,所以,技术上还是有很大的欠缺.不过这也是自己努力思考得到的,如果有什么更好的建议可以回复我. 1. 任务需求: 实现一个包含数据的表格,并且有分页功能. ...

  3. sass高级语法的补充

    1. 继承 2.混入 3.函数 我这篇博客需要点基础才能看懂, 但我这篇博客是对上一篇的 sass高级语法 的补充 从这方面来看也无所谓了

  4. C#数据之List

    一.C# List根据值找到索引值方法 List<int> test = new List<int>(); int index = test .FindIndex(item=& ...

  5. [Angular] Debug Angular apps in production without revealing source maps

    Source: https://blog.angularindepth.com/debug-angular-apps-in-production-without-revealing-source-ma ...

  6. linux获取后台进程的控制台数据

    linux提供了一个daemon函数,使得进程能够脱离控制台执行,实现了后台执行的效果.可是进程后台执行后,原本在终端控制台输出的数据就看不到了. 那么,如何才干找回这些数据? 这里.文章主题就环绕着 ...

  7. 设置快速的debian源的方法:

    1)设置临时源 vi /etc/apt/sources.list #添加以下一行到文件最后 deb http://http.us.debian.org/debian stable main 2)更新软 ...

  8. 内容提供器(ContentProvider)

    一.简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使 ...

  9. SQL语句练习手册--第三篇

    一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHE ...

  10. springboot 有用网址收集

    http://www.ityouknow.com/spring-boot.html springboot多数据源配置: https://blog.csdn.net/neosmith/article/d ...