標籤:
通常在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]) { //在此重新整理介面 }}
iOS開發--監測網路變化