(一二五)手机网络状态的监听
2015-08-25 22:47
507 查看
对于一些需要与服务器进行长连接的App,需要对网络状态进行监控,当网络不佳时及时提醒用户,从而提高用户体验。通过苹果自带的框架和Reachability类可以实现网络状态改变的监听。
要实现网络监听,按照下面的步骤进行。
①导入SystemConfiguration框架。
②通过Xcode的帮助文档搜索Reachability,打开样例工程,将其中的Reachability类的代码拷贝到自己的工程,有两个文件,如下图所示。
③创建对象,保存对象,添加监听和启动监听。
注意reachabilityForInternetConnection才能用于wifi、3G、无网络三种状态。
注意监听的名称为kReachabilityChangedNotification。
注意要实现三种网络状态,要用真机来调试。
要实现网络监听,按照下面的步骤进行。
①导入SystemConfiguration框架。
②通过Xcode的帮助文档搜索Reachability,打开样例工程,将其中的Reachability类的代码拷贝到自己的工程,有两个文件,如下图所示。
③创建对象,保存对象,添加监听和启动监听。
注意reachabilityForInternetConnection才能用于wifi、3G、无网络三种状态。
注意监听的名称为kReachabilityChangedNotification。
- (void)viewDidLoad{ [super viewDidLoad]; Reachability *wifiReach = [Reachability reachabilityForInternetConnection]; _wifiReach = wifiReach; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange:) name:kReachabilityChangedNotification object:nil]; [wifiReach startNotifier]; }④在监听的回调中拿到状态判断。
注意要实现三种网络状态,要用真机来调试。
- (void)networkStateChange:(NSNotification *)nof{ switch (self.wifiReach.currentReachabilityStatus) { case ReachableViaWiFi: NSLog(@"wifi"); break; case ReachableViaWWAN: NSLog(@"移动数据"); break; case NotReachable: NSLog(@"无网络"); break; } }⑤在控制器销毁时,一定要记得移除监听。
- (void)dealloc{ [self.wifiReach stopNotifier]; [[NSNotificationCenter defaultCenter] removeObserver:self]; }
相关文章推荐
- (一二五)手机网络状态的监听
- 网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用
- 网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用
- TCP客户端和服务端的通信,通过服务端将客户端的小写字母转化成大写发送回来
- 在Ubuntu 14.04 64bit上使用网络诊断工具mtr
- Python源码分析1 - Building Python http://blog.csdn.net/atfield/article/details/1396729
- 2016网络红人萧天 最新资料
- 网络相关的Linux命令总结
- 计算机网络系统--常用DOS命令
- TCP CLOSE_WAIT 过多解决方案
- centos7无线网络连接
- Http 专题一:概述
- 计算机网络——计算机网络和因特网
- iOS应用架构谈 网络层设计方案
- AFNetWorking 简单介(XML,JSON解析和判断网络状态
- 网络流(最小割)问题中的基础构图及分析方法小结
- HTTP头字段总结
- 网络后台开发面试题
- 【java】网络
- linux查看tcp的状态命令