2013-05-14 245 views
1

在我的啓動畫面中,我訂閱了UIApplicationDidBecomeActiveNotification。檢查Internet連接iOS App

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    // register notifications 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkInternetConnection:) name:UIApplicationDidBecomeActiveNotification object:nil]; 

} 

-(void) checkInternetConnection:(NSNotification *) notification 
{ 
    internetStatus = [[Reachability reachabilityForInternetConnection] currentReachabilityStatus]; 

    if(internetStatus == NotReachable) 
    { 
     [AppHelper showAlert:@"ERROR" message:@"Error downloading data. Please check your network connection and try again." cancelButtonTitle:nil otherButtonTitles:@[@"OK"]]; 
     return; 
    } 

    [self viewDidAppear:YES]; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    if(!(internetStatus == NotReachable)) 
    { 
     AppDelegate *applicationDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
     [applicationDelegate performSelector:@selector(showMainMenu) withObject:[NSNumber numberWithBool:YES] afterDelay:3.0]; 
    } 
} 

的問題是,互聯網連接將只在啓動屏幕上檢查,所以如果我在其他一些畫面中,我失去互聯網連接那麼有沒有辦法告訴大家,連接已不見了。我怎樣才能做出一個好的邏輯來檢查客戶的互聯網連接。

+0

你使用的是webview。 – 2013-05-14 16:47:11

+0

希望這下面的鏈接是有用的.. [http://stackoverflow.com/questions/1083701/how-to-check-for-an-active-internet-connection-on-iphone-sdk] [1] [1]:http://stackoverflow.com/questions/1083701/how-to-check-for-an-active-internet-connection-on-iphone-sdk – 2013-05-14 16:50:03

回答

1

您想要使用可訪問性庫,以便獲取有關更改的回調(like this one)。

然後,在每個需要它的控制器中,創建一個可達性實例並將reachableBlockunreachableBlock設置爲執行所需的操作。

0

我會建議創建一個類,所有的互聯網請求過濾,然後在該類中檢查連接性(使用可達性建議)。如果你這樣設計,它應該簡化一點。