Verificare la connessione internet in iPhone - non solo per router
-
26-10-2019 - |
Domanda
Io uso i normali strumenti di raggiungibilità per verificare se ci sia una connessione internet. Funziona in maggior parte dei casi, ma se si scollega il cavo WAN al wifi-router, per qualche motivo ancora dicono che può trovare l'host da wifi. Se cambio l'indirizzo web a qualcosa che non esiste, si dirà "Internet è giù", come dovrebbe. Dove è il mio problema?
Esempio:
I. Ho il "cavo di internet" unplugged, ma il telefono collegato tramite wifi al router. Corro con questa linea, la prima volta per questo dominio:
hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];
Risultato = Nessun host trovato (corretto)
II. Ho disattivare il WiFi nel telefono. Risultato = Host trovato con WWAN (corretta)
III. Permetto wifi nel telefono. Risultato = Host trovato con WIFI. (Non è corretto, dal momento che il router non è in linea)
Soluzione
Per controllare internet mando una richiesta HTTP a un sito (molto probabilmente google.com) se non restituisce vero, vuol dire niente internet. Questo caso funziona anche la connessione è così lento. Qui è il metodo.
- (BOOL) connectedToInternet
{
NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}
Altri suggerimenti
Si consiglia di controllare questo filo . Il codice di raggiungibilità è noto per verificare la connettività solo con il vostro router. Ci dovrebbe essere una notifica per la connettività ora.