Funziona la raggiungibilità di Apple con connettività 3G?
-
27-09-2019 - |
Domanda
Sto sviluppando un'applicazione per iPad, e sto cercando di capire il modo migliore per decidere se un utente può collegarsi a Internet. Se l'utente non ha la connettività, io caricare i dati memorizzati nella cache, altrimenti sarò caricare nuovi dati. Sto cercando di utilizzare la classe raggiungibilità di Apple per questo, e ho voluto vedere se sto facendo questo in modo corretto. In applicationDidFinishLaunchingWithOptions, sto facendo questo:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
Reachability hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReach startNotifer];
Poi la mia reachabilityChanged: Sembra che questo:
- (void)reachabilityChanged:(NSNotification* )note {
Reachability *curReach = [note object];
self.internetConnectionStatus = [curReach currentReachabilityStatus];
if (internetConnectionStatus == NotReachable) {
[viewController getDataOffline];
} else {
if (![[NSUserDefaults standardUserDefaults] objectForKey:kFIRST_LAUNCH]) [viewController getCurrentLocation];
else [viewController getData];
}
}
In questo momento, questo è perfettamente funzionante per il WiFi iPad. Voglio solo fare in modo che questo lavoro per 3G iPads. La prego di farmi sapere se sto facendo questo in modo corretto o no?
Soluzione
Sì, la classe raggiungibilità può utilizzare sia WiFi e 3G per determinare se un host remoto è raggiungibile.
Inoltre, come nota a margine che si può prendere in considerazione sempre la visualizzazione dei dati memorizzati nella cache sul lancio della vostra applicazione, quindi in modo asincrono l'aggiornamento ai nuovi dati in background. A seconda del contesto dell'applicazione questo potrebbe creare una grande esperienza utente migliore dal momento che alcuni dati siano sempre disponibili.
Se siete interessati a saperne di più su questo c'è un fantastico capitolo intitolato "Fake It‘Til You Make It: Trucchi e consigli per il miglioramento dell'interfaccia di risposte". Trovato nel libro 'iPhone Advanced Projects'
Altri suggerimenti
Sì, la classe raggiungibilità vi dirà se si può raggiungere utilizzando qualsiasi metodo di rete.