2015-03-17 1 views
0

Nous développons un module, qui vérifie si la connexion Internet soit active ou non active ou désactivée. Les scénarios précédents fonctionnent bien, sauf dans le cas d'une connexion WI-FI mais Internet n'est pas actif. Nous nous sommes assurés que la connexion mobile de données (3G, 4G) n'est pas activée.iOS joignabilité ne fonctionne pas bien

Nous avons vu que tout le monde recommande d'utiliser la classe de Tony joignabilité Million, qui remplace celui de l'Apple.

Ci-dessous, il y a le code que nous utilisons:

-(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; 
} 

Qu'il y ait une connexion Wi-Fi, mais l'Internet n'est pas actif, il ne fonctionne pas parce qu'il va à:

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

au lieu de

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

} 

Ce qui nous manque?

Nous vous remercions à l'avance,

Cordialement

+1

S'il vous plaît se référer à ceci: http://stackoverflow.com/questions/13411606/accessibilité-non-travail-quand-wi-fi-connecté-mais-non-internet? rq = 1 – CallMeSan

+0

merci pour tout! –

+0

Je l'ai utilisé cela, et il est génial: https://github.com/tonymillion/Reachability C'est ce qui est que je mets dans l'application iPad en cas de pandémie. – Almo

Répondre

0

Essayez celui-ci,

- (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

Vous pouvez utiliser:

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."); 
}