Как проверить статус интернета в iPhone - PullRequest
1 голос
/ 27 декабря 2010

Я хотел проверить, подключен ли интернет или нет, используя SystemConfiguration или CFNetwork, я не совсем уверен, какой именно.

Тогда я хочу знать, что если интернет подключен, то он подключен через Wi-Fi или нет.

Я попробовал пример, где я использовал следующий код

-(IBAction) shownetworkStatus
{
    NSString *str = @"http://www.google.com";

    NSURL *url = [NSURL URLWithString:str];

    NSURLRequest *req = [NSURLRequest requestWithURL:url];

    if (req!=NULL) {
        lbl.text = @"Connected";
    }
    else {
        lbl.text = @"notConnected";
    }

}


некоторые говорят, что это недопустимо для Apple, и вы должны использовать SystemConfiguration Framework. Пожалуйста, дайте мне знать, что нужно сделать.

Кроме того, я лично считаю, что то, что я делаю в приведенном выше коде, не является правильным, как будто однажды Google также может быть недоступен из-за обслуживания или некоторых других факторов.

Также, если бы вы могли предоставить мне ссылку, где я мог бы отобразить название сети WIFI, тогда это было бы действительно здорово.

Я искал в интернете, затем я получил этот код Reachability.h, который опять-таки является вышибалой, так как я хочу изучать концепции, а не копировать, вставлять их

Спасибо и С уважением

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

Основываясь на том, что упоминает Raxit, я использую следующий код (извлеченный из примера достижимости, упомянутого Raxit) для проверки доступа в Интернет в моем делегате приложения:

- (BOOL)isReachableWithoutRequiringConnection:(SCNetworkReachabilityFlags)flags
{
    BOOL isReachable = flags & kSCNetworkReachabilityFlagsReachable;

    BOOL noConnectionRequired = !(flags & kSCNetworkReachabilityFlagsConnectionRequired);
    if ((flags & kSCNetworkReachabilityFlagsIsWWAN)) {
        noConnectionRequired = YES;
    }

    return (isReachable && noConnectionRequired) ? YES : NO;
}

- (BOOL)isHostReachable:(NSString *)host
{
    if (!host || ![host length]) {
        return NO;
    }

    SCNetworkReachabilityFlags        flags;
    SCNetworkReachabilityRef reachability =  SCNetworkReachabilityCreateWithName(NULL, [host UTF8String]);
    BOOL gotFlags = SCNetworkReachabilityGetFlags(reachability, &flags);

    CFRelease(reachability);

    if (!gotFlags) {
        return NO;
    }

    return [self isReachableWithoutRequiringConnection:flags];
}


- (BOOL)connectedToNetwork {

    return [self isHostReachable:@"www.hostyoureallycareabouthavingaconnectionwith.com"];
}
0 голосов
/ 27 декабря 2010

Вы можете использовать код доступности, предоставленный Apple. Это пример кода. Вы можете найти всю информацию о подключении к интернету. Это ссылка http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...