现在开发的项目中,基本上都会涉及网络连接,那么项目中处理好网络连接状态就很有必要了。但是如果每一次的网络请求前都进行一次当前的网络状态查询显然是不科学的,所以就需要来设置一个全局的网络查询方法,对当前的网络连接状态进行实时监听。
苹果给出了一个第三方Reachability来监听网络状态,网上很多的第三方也是在此基础上封装而来。这里使用的是 AFNetworking 3.x中 AFNetworkReachabilityManager检测。AFNetworkReachabilityManager是AFNetworking中,独立的模块,用来实时监测网络变化的。
主要可以监测出的状态有:1、无网络 2、Wifi网络 3、蜂窝网络 4、未知网络
使用方法:在Appdelegate文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
在基类的BaseViewController,
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifi:) name:AFNetworkingReachabilityDidChangeNotification object:nil];
}中注册通知
- (void)notifi:(NSNotification *)noti{
//自定义代码,显示提示语就行
}
项目中使用AFNetworkReachabilityManager的情况有以下几种,根据不同情况提示不同的提示语:
(1)进行网络请求前,检查网络状态
(2)网络切换过程中
(3)正常使用中,突然断网了