iOS 监听网络连接状态之AFN
作者:AustinKuture
摘要: “在网络访问失败的时候,应用没有做出适当的提示”是苹果的iOS审核团队拒绝一个
应用的常见理由。苹果要求你必须先检测网络连接状态,当网络不可用的时候以某种方式
告知用户,或者用其他优雅的方式进行处理。
-
iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方应用。大多数的iOS应用都需要联网,甚至有些应用严重依赖网络,没有网络就无法正常工作。在你的应用尝试通过网络获取数据之前,你需要知道当前设备是否知道连接上了网络,甚至有时候你可能还需要知道当前网路是由wifi还是由移动蜂窝网络提供的。
-
为了更好的入手和快速的开发需求,本篇主要使用AFN自带方法进行监听网络连接状态,如果想使用原生框架也可以根据苹果官方文档结合自己需求进行开发,苹果官方示例:https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
-
项目中倒入AFNetworking,引入头文件,并在控制器中加入以下方法即可:
- (void)reachability{ AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: // 未知网络 NSLog(@"未知网络"); break; case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网) NSLog(@"没有网络(断网)"); [self alertView]; break; case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络 NSLog(@"手机自带网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI NSLog(@"WIFI"); break; } }]; [mgr startMonitoring]; }