iOS之Reachability和AFN判断网络连接状态
2016-01-22 17:50
344 查看
1.Reachability // 监听网络状态改变的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil]; // 创建Reachability self.conn = [Reachability reachabilityForInternetConnection]; // 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification) [self.conn startNotifier]; // 处理网络状态改变 - (void)networkStateChange { // 1.检测wifi状态 Reachability *wifi = [Reachability reachabilityForLocalWiFi]; // 2.检测手机是否能上网络(WIFI\3G\2.5G) Reachability *conn = [Reachability reachabilityForInternetConnection]; // 3.判断网络状态 if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi NSLog(@"有wifi"); } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网 NSLog(@"使用手机自带网络进行上网"); } else { // 没有网络 NSLog(@"没有网络"); } } 2.AFN // 1.获得网络监控的管理者 AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; // 2.设置网络状态改变后的处理 [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { // 当网络状态改变了, 就会调用这个block switch (status) { case AFNetworkReachabilityStatusUnknown: // 未知网络 NSLog(@"未知网络"); break; case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网) NSLog(@"没有网络(断网)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络 NSLog(@"手机自带网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI NSLog(@"WIFI"); break; } }]; // 3.开始监控 [mgr startMonitoring];
相关文章推荐
- 浏览器HTTP_USER_AGENT汇总——Firefox、Chrome、IE9、IE8、IE7、IE6
- retrofit请求网络时,针对泛型解析…
- 网络篇-NSURLSessionDownloadTask上传
- HTTP之头部过长和非80端口的报文分析
- 由HTTP的\r\n所联想到的
- HTTP之X-Requested-With分析和思考
- 阅读完HTTP等协议的RFC文档之后的感受
- 网络请求
- java程序使用HttpURLConnection连接互联网(完善中)
- 网络篇-NSURLConnection原生上传
- Volley源码解析
- 【OpenSource】--TinyHttpD
- Android5.0以下WebView实现访问Https双向认证网页
- Http通信过程(7步)
- ajax--怎么用ajax做到无刷新
- SGU 326 Perspective (网络流)
- linux常用命令—— 网络通信(十)
- 【图解HTTP】第二章 简单的http协议
- linux常用命令—— 网络通信(九)
- 利用XMLHttpRequest level 2 实现文件异步上传