iOS网络监控— BMReachability

1. What‘s BMReachability?

BMReachability是基于AFNetworking的Reachability类封装的监听网络状态变化的组件。 它在AF提供的无网络/wifi/蜂窝网络推断的基础上,添加了对2G/3G/4G网络的推断。

typedef NS_ENUM(NSInteger, BMNetworkReachabilityStatus) {

BMNetworkReachabilityStatusUnknown = -1,

BMNetworkReachabilityStatusNotReachable = 0,

BMNetworkReachabilityStatusReachableViaWWAN = 1,

BMNetworkReachabilityStatusReachableViaWiFi = 2,

BMNetworkReachabilityStatusReachableVia2G = 3,

BMNetworkReachabilityStatusReachableVia3G = 4,

BMNetworkReachabilityStatusReachableVia4G = 5,

};

2. 系统要求:

最低要求支持 iOS 7.0 版本号

3. How To Use?

在你的类中导入BMReachability.h头文件,添加BMAddNetworkStatusObserver(self)监听,并实现BMNetworkStatusProtocol,在监听对象销毁时请注意移除监听BMRemoveNetworkStatusObserver(self)

Example:

- (void)dealloc{

BMRemoveNetworkStatusObserver(self);

}

- (void)viewDidLoad {

[super viewDidLoad];

BMAddNetworkStatusObserver(self);

}

#pragma mark - BMNetworkStatusProtocol

- (void)networkStatusDidChangedFromStatus:(BMNetworkReachabilityStatus)fromStatus

toStatus:(BMNetworkReachabilityStatus)toStatus{

NSLog(@"*****************************************");

if (fromStatus != toStatus) {

NSLog(@"========状态改变了啊=========");

}

NSLog(@"fromStatus: %@ toStatus: %@",@(fromStatus),@(toStatus));

NSString *statusStr = [[BMEnvObserverCenterNetworkStatus defaultCenter] currentNetWorkStatusString];

NSLog(@"当前网络状态为: %@",statusStr);

}

特别提示: 你必需要在监听类销毁时调用BMAddNetworkStatusObserver(self);

4. QA 

欢迎交流,在使用中遇到问题。能够给留言,当然最好自己试着改动。有好的建议,也希望给留言。或者新浪微博联系我 新浪微博:http://weibo.com/rubbishpicker

github地址:https://github.com/pjk1129/BMReachability

时间: 2024-08-09 16:01:43

iOS网络监控— BMReachability的相关文章

iOS开发——网络编程OC篇&(五)网络监控

网络监控 随着移动网络升级:2G->3G->4G甚至相传正在研发的5G,网络速度是越来越快,但这流量也像流水一般哗哗的溜走. 网上不是流传一个段子: 睡觉忘记关流量,第二天房子就归移动了! 这固然是一种夸张的说法,但是作为一个优秀的App开发人员,我们需要在App中给出最恰当的提示. 在需要花费大量流量的时候(例如:视频,下载等)给出一些提示. 在用户视频期间用户切换网络的时候给出是否继续观看的提示! 下面笔者就给出一种可以实时监控网络状态改变的方法! 笔者使用的是网络流传最广的网络监控类:R

iOS网络监测方法

方法一(官方): Reachability ================================================================================ 框架地址:https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip 使用方法 1>  添加一个联网状态监听对象 @property (nonatomic, strong) Reachabil

iOS网络高级编程:iPhone和iPad的企业应用开发之错误处理

本章内容 ●    iOS应用中的网络错误源 ●    检测网络的可达性 ●    错误处理的经验法则 ●    处理网络错误的设计模式 到目前为止,我们所介绍的iPhone与其他系统的网络交互都是基于一切正常这个假设.本章将会放弃这个假设,并深入探究网络的真实世界.在真实世界中,事情是会出错的,有时可能是非常严重的错误:手机进入与离开网络.包丢掉或是延迟:网络基础设施出错:偶尔用户还会出错.如果一切正常,那么编写iOS应用就会简单不少,不过遗憾的是现实并非如此.本章将会探讨导致网络操作失败的几

IOS网络访问之使用AFNetworking

IOS网络访问之使用AFNetworking AFNetworking是IOS上常用的第三方网络访问库,我们可以在github上下载它,同时github上有它详细的使用说明,最新的AFNetworing2.0与1.0有很大的变化,这里仅对2.0常用的使用方法进行总结 基于NSURLConnection的API 提交GET请求 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [man

iOS网络相关知识总结

iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Request的URL, HTTPMethod, HTTPHeader, HTTPBody等信息.一般发请求尽量不要使用NSURLRequest,因为它不能设置请求方式.请求超时等(总之什么都不能设置).通常发请求都使用NSMutableURLRequest,可以进行更多的设置. 补充1:因为NSURL不支持

check_mk nagios 整合系统网络监控系统中文版

详细价格和服务请咨询 qq:30498675 详细参考资料  http://www.178yun.cn check_mk是一个开源整合的网络监控系统. 主要功能: 1.      能够对当今各种主流操作系统与设备进行监控 操作系统:windows,linux,aix,hp 网络交换设备:F5,cisco,h3c,Huawei 数据库:mssql,oracle,mysql Web server:apache,nginx 监控参数:cpu利用率.内存.虚拟内存.运行时长.端口流量.数据包错误率.电源

IOS网络访问之使用AFNetworking<2>

IOS网络访问之使用AFNetworking AFNetworking是IOS上常用的第三方网络访问库,我们可以在github上下载它,同时github上有它详细的使用说明,最新的AFNetworing2.0与1.0有很大的变化,这里仅对2.0常用的使用方法进行总结 基于NSURLConnection的API 提交GET请求 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [man

ios网络开发 AFNetworking

一.早前的几个网络框架 1.ASI框架: HTTP终结者.很牛, 但是有BUG, 已经停止更新. 2.MKNetworkKit (印度人写的). 3.AFN一直还在更新. AFNetworking的出现:MAC/iOS设计的一套网络框架.(为了简化网络操作) 地址:https://github.com/AFNetworking/AFNetworking *AFN专注与网络数据传输,以及网络中多线程的处理. 二.AFNetworking的使用 1.AFN特性 : *登录传参数时,传递字典即可.(键

IOS网络访问之NSURLSession

NSURLSession是IOS7中新添加的网络访问接口,作用与NSURLConnection一致,在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.如果用户强制将程序关闭,NSURLSession会断掉. NSURLSession中关键类有下面几种 1:NSURLSessionConfiguration:用于配置NSURLSession工作模式以及网络设置 工作模式分为下面三种: 普通模式(default):可以使用缓存 + (NSURLSessionC