Compruebe si la connection a Internet del dispositivo iOS está funcionando

Hay muchas preguntas aquí sobre encontrar una connection activa a internet en una aplicación, pero ninguna funciona si usted está en una connection 3g y no tiene crédito de datos, o si está en una networking WiFi en un hotel que networkingirige automáticamente a una Inicie session en la página y aún no ha ingresado la contraseña. Ese tipo de situación.

¿Cuál es la forma más rápida de verificar si la connection a internet es realmente operativa?

Puede usar la class AFNetworkReachabilityManager en AFNetworking .

https://github.com/AFNetworking/AFNetworking

El enlace anterior lo ayudará a configurar las cosas. Esto le proporcionará una verificación continua de la networking de acuerdo con sus requisitos. Aquí hay algunas líneas de código:

[[AFNetworkReachabilityManager shanetworkingManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status)); }]; [[AFNetworkReachabilityManager shanetworkingManager] startMonitoring]; 

La mejor manera de lograr esto, sin utilizar Reachability ni ninguna otra API, es creando un NSURL e intentando recibir datos de él. Para la mala connection agregué un time de espera de 20 segundos.

Me gusta:

 - (void)checkConnection //Run this on a side queue, never on a main queue { NSURL *checkURL = [NSURL URLWithString:@"http://www.apple.com"]; NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:checkURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0]; NSData *data = [NSData dataWithContentsOfURL:lRequest]; if (data) { connected = YES; } else { connected = NO; } } 

Eso verificará si un website específico es accesible y establece un time de espera que indica una connection de networking lenta.

¡Este código podría tener errores, ya que no lo he usado / probado todavía! Comenta esta respuesta si la hay.