2015-03-17 3 views
0

Мы разрабатываем модуль, который проверяет, является ли подключение к Интернету активным или неактивным или отключенным. Предыдущие сценарии работают хорошо, за исключением случая, если есть соединение WI-FI, но интернет неактивен. Мы убедились, что мобильное соединение данных (3G, 4G) не включено.Достижимость iOS не работает

Мы видели, что все рекомендуют использовать класс Reachability Tony Million, который заменяет один из них Apple.

Ниже, есть код, который мы используем:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
Reachability *reachability = [Reachability reachabilityWithHostname:@"www.google.com"]; //Cambiar por el servidor 

    reachability.reachableBlock = ^(Reachability *reachability) { 
     NSLog(@"Network is reachable."); 

    }; 

    reachability.unreachableBlock = ^(Reachability *reachability) { 
     NSLog(@"Network is unreachable."); 

    }; 

    // Start Monitoring 
    [reachability startNotifier]; 

    return YES; 
} 

Есть ли подключение WI-FI, но интернет не активен, он не работает, потому что он идет:

reachability.reachableBlock = ^(Reachability *reachability) { 
    NSLog(@"Network is reachable."); 
} 

вместо

reachability.unreachableBlock = ^(Reachability *reachability) { 
    NSLog(@"Network is unreachable."); 

} 

Что нам не хватает?

Спасибо заранее,

С уважением

+1

Пожалуйста, обратитесь это: http://stackoverflow.com/questions/13411606/достижимость-не-работа-когда-wi-fi-connected-but-no-internet? rq = 1 – CallMeSan

+0

спасибо за всех! –

+0

Я использовал это, и это здорово: https://github.com/tonymillion/Reachability Это то, что я положил в приложение iPad Pandemic. – Almo

ответ

0

Попробуйте это,

- (BOOL)isNetAvailable 
{ 
    BOOL isNetAvailable = NO; 

    Reachability *reach = [Reachability reachabilityWithHostName:@"www.google.com"]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus]; 
    if (netStatus != NotReachable) 
    { 
     isNetAvailable = YES; 
    } 
    else 
    { 
     isNetAvailable = NO; 
    } 
    return isNetAvailable; 
} 
0

Вы можете использовать:

NSURLRequest *nsrequest = [NSURLRequest requestWithURL:[NSURL URLWithString: @"http://www.google.com"]]; 
NSHTTPURLResponse *response = nil; 
NSError *error; 
NSData *data = [NSURLConnection sendSynchronousRequest:nsrequest returningResponse:&response error:&error]; 

if(response.statusCode==0){ 
    NSLog(@"Network is unreachable."); 
} 
else{ 
    NSLog(@"Network is reachable."); 
} 
Смежные вопросы