iOS使用AFNetWorking第三库检测网络连接状态
来源:互联网 发布:求购全新0信誉淘宝店铺 编辑:程序博客网 时间:2024/06/06 04:54
今天到公司,由自己的项目还没有空白状态的显示,想到要做一个手机所连接网络的判定,并达到实时监测的目的。了解到如果用iOS自带的Reachability类来实现的话不太方便,因为要保证它处于实时监听的状态,而且在得到当前的网络状态之后就要发送全局通知,出于这样的考虑,决定使用AFNetWorking框架中的AFNetworkActivityIndicatorManager单例类来进行网络状态的实时监听。
以下是具体实现方法:
首先,要引入 AFNetWorking.h 文件,在 AppDelegate 的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中调用以下函数:
-(void)isNetWorking{ //开启网络指示器,开始监听 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; // 检测网络连接的单例,网络变化时的回调方法 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { }];}
再就是在需要监测网络状态控制器中,在- (void)viewDidLoad方法中注册通知的观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifi:) name:AFNetworkingReachabilityDidChangeNotification object:nil]
</pre><pre name="code" class="objc" style="font-size:14px;">最后,实现notifi:的方法:
- (void)notifi:(NSNotification *)noti{ NSDictionary *dic = noti.userInfo; //获取网络状态 NSInteger status = [[dic objectForKey:@"AFNetworkingReachabilityNotificationStatusItem"] integerValue]; switch (status) { case AFNetworkReachabilityStatusNotReachable:{ NSLog(@"无网络连接"); } break; case AFNetworkReachabilityStatusReachableViaWWAN:{ NSLog(@"移动蜂窝网络"); } break; case AFNetworkReachabilityStatusReachableViaWiFi:{ NSLog(@"wifi网络"); } break; case AFNetworkReachabilityStatusUnknown:{ NSLog(@"无法获取网络状态"); } break; default: break; }}
</pre><pre name="code" class="objc">还有需要注意一点,不要忘记注销观察者,代码如下:
-(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self];}
</pre><span style="font-size:18px">这样就可以实现实时监控网络连接状态的目的了.</span><span style="font-size:14px"></span><pre>
2 0
- iOS使用AFNetWorking第三库检测网络连接状态
- iOS网络-AFNetworking检测网络状态
- 使用AFNetworking框架检测网络状态
- AFNetWorking 检测网络状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态
- iOS检测网络连接状态
- iOS开发 使用AFNetworking判断网络状态
- [iOS]网络之使用第三方库AFNetworking
- IOS检测网络连接状态(转)
- iOS开发之检测网络连接状态
- IOS检测网络连接状态(转)
- Glide加载自定义的圆形Imageview
- Android Studio 真机调试时报错
- Euclid
- python线程池模块
- 如何显示隐藏文件的后缀名
- iOS使用AFNetWorking第三库检测网络连接状态
- Cucumber中涉及到的类型转换
- weblogic控制台配置修改
- Rails权限验证工具Pundit
- ABBYY 内置自动化任务的步骤有哪些
- dbUtils工具的使用
- #202 Segment Tree Query
- RxJava Retrofit2 网络请求,返回数据格式统一的数据报文处理方法
- JS中的立即执行函数