2015-10-30 1 views
1

Je veux savoir quelle est la méthode la plus récente et efficace pour vérifier la connexion Internet dans iOS.La plupart des réponses dans stackoverflow est obsolète, il semble.J'ai traversé REACHABILITY class.Il fonctionne bien.Mais j'ai un problème.Quelle est la méthode la plus récente et efficace pour vérifier la connexion Internet dans iOS?

J'ai une connexion wifi qui demande l'ouverture de session du fournisseur à certains moments. Ainsi, la classe d'accessibilité indique que la connexion Wi-Fi est disponible mais Internet n'est pas utilisable. Donc, quand j'appelle une URL, l'indicateur d'activité que j'utilise avec l'url continue de tourner et je ne reçois aucun rappel sur l'erreur.Il ya une solution? Merci.

Aussi, pouvez-vous expliquer ce que cela signifie exactement?

@property (nonatomic) Reachability *hostReachability; 
@property (nonatomic) Reachability *internetReachability; 
@property (nonatomic) Reachability *wifiReachability; 

comme, Qu'est-ce wifiReachability? Est-il connecté au WiFi? Ou Internet est disponible via wifi?

EDIT: C'est ce que j'utilise now.Creating une classe appelée connectivité

#import "Connectivity.h" 
#import "Reachability.h" 
@implementation Connectivity 
+(BOOL)checkConnectivity 
{ 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [reachability currentReachabilityStatus]; 
    return networkStatus != NotReachable; 
} 
@end 

Est-ce assez pour vérifier internetconnection?

+3

Je ne suis pas sûr (d'où le commentaire), mais je suppose * hostReachability est si oui ou non le site Web peut être atteint, internetRechability est si oui ou non il y a une connexion Internet (pas nécessairement fonctionnelle one), et 'wifiReachability' est de savoir s'il y a ou non une connexion à un réseau wifi (et pas nécessairement une connexion de travail). – Jojodmo

+1

@Jojodmo - Votre hypothèse est correcte. Juste pour ajouter, 'InternetReachability' vérifie l'itinéraire par défaut sur le réseau, qui est fondamentalement rien mais vérifiant si l'Internet peut être connecté sans frapper un hôte particulier. Vous devriez le poster comme réponse. – Gandalf

+1

Je ne pense pas que vous ne puissiez pas vérifier la 'connexion Internet réelle' avec' Reachability'. J'utiliserais une "API REST" spécifique et vérifierais que la réponse est comme prévu. – Ryan

Répondre

1

ci-après le autre autre manière très simple pour vérifier la connectivité internet:

NSURL *scriptUrl = [NSURL URLWithString:@"http://www.google.com/m"]; 
NSData *data = [NSData dataWithContentsOfURL:scriptUrl]; 
if (data) 
    NSLog(@"Device is connected to the internet"); 
else 
    NSLog(@"Device is not connected to the internet"); 

Espérons que cela aidera.