标签:
通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。
一、包含头文件
#import "Reachability.h"
同时在ViewContorller中添加实例变量:Reachability *_networkConn;
二、建立网络变化监听
网络变化包括从断开变为连接、连接变为断开两种情况,任意一种情况发生,app都会收到网络变化通知。 在viewDidLoad方法中添加如下代码:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil]; _networkConn = [Reachability reachabilityForInternetConnection]; [_networkConn startNotifier];其中,networkStateChange函数会在网络发生变化的时候被调用。
三、获取网络状态
在接受到网络变化通知后,通知并没有告知当前的网络状态,所以我们并不知道当前网络是处于断开还是连接,需要主动探测,探测方法如下:
- (BOOL)isNetworkEnable { BOOL flag = YES; Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"]; switch ([r currentReachabilityStatus]) { case NotReachable: flag = NO; break; case ReachableViaWWAN: break; case ReachableViaWiFi: break; default: break; } return flag; }
四、刷新界面
- (void)networkStateChange { if ([self isNetworkEnable]) { //在此刷新界面 } }
标签:
原文地址:http://blog.csdn.net/wang_lichun/article/details/42804087