Проверка наличия активного интернет-соединения iPhone - PullRequest
5 голосов
/ 03 октября 2011

Я хотел бы проверить, есть ли у пользователя активное подключение к Интернету.Вот как я это реализовал.Кажется, работает нормально, но проблема в том, что ВСЕГДА показывает, что на симуляторе iPhone нет соединения (появляется uialert), даже когда мой Wi-Fi включен или выключен.Кто-нибудь знает, что я делаю не так?Спасибо за вашу помощь!

Reachability *r= [Reachability reachabilityWithHostName:@"http://www.google.com"];
    NetworkStatus internetStatus= [r currentReachabilityStatus];

 if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
    {

        UIAlertView *alert= [[UIAlertView alloc] initWithTitle:@"No internet" message:@"No internet connection found. Please try again later"
                                                      delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }

 else {

 // execute code in app

 }

Ответы [ 2 ]

6 голосов
/ 03 октября 2011

Вот как я это сделал в своих приложениях:

Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];

if(internetStatus == NotReachable) {
    UIAlertView *errorView;

    errorView = [[UIAlertView alloc]
                 initWithTitle: NSLocalizedString(@"Network error", @"Network error")
                 message: NSLocalizedString(@"No internet connection found, this application requires an internet connection to gather the data required.", @"Network error")
                 delegate: self
                 cancelButtonTitle: NSLocalizedString(@"Close", @"Network error") otherButtonTitles: nil];

    [errorView show];
    [errorView autorelease];
}

Что он делает, это то, что он проверяет интернет-соединение, а не если он может достичь домена. Если нет подключения к Интернету (Wi-Fi или сотовая связь), он покажет сообщение UIAlertView (локализовано).

0 голосов
/ 03 октября 2011

Не проверяйте.Радиостанция часто начинает включаться и устанавливать соединение сразу после того, как достижимость сообщает об отсутствии сети (возможно, именно этот процесс запускает сообщение о том, что сети нет, и через несколько секунд его собственный ответ становится ложным)

...