Come ottenere informazioni sul paese dell'utente
Domanda
Fondamentalmente ho bisogno di identificare paese dell'utente all'avvio dell'applicazione e attivare o disattivare una funzione basata posizione nella mia app basato sulla sua / il suo paese. Ho bisogno di fare questo il più rapidamente possibile nel delegato applicazione prima del caricamento del RootViewController. C'è comunque di fare questo in iPhone SDK ??
Soluzione
Avete bisogno il nome del paese che il dispositivo si trova fisicamente nel mentre l'applicazione è in esecuzione?
In alternativa si potrebbe fare che fare con il sistema locale il dispositivo sta usando come it_IT o fr_CA?
In quest'ultimo caso, è possibile:
NSLocale *currentUsersLocale = [NSLocale currentLocale];
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`
Poi currentLocaleID
sarà "en_US"
o "fr_CA"
o simili.
In caso contrario dovrete usare CoreLocation e una qualche forma di Reverse Geocoder per convertire il vostro / Lat Long in un nome del paese.
MKReverseGeocoder può fare questo, ma i termini di servizio dire è necessario essere farlo in combinazione con una mappa di Google, che non si può soddisfare. Disponibile solo su OS 3.0 e sopra, cerca la documentazione per MKReverseGeocoder per maggiori informazioni.
Avevo bisogno di questo me stesso e finito per fare Geocoding in PHP sul nostro server, utilizzando l'indirizzo IP del dispositivo. E 'rudimentale, ma ci ha dato abbastanza dettagli per le nostre esigenze.
Dai un'occhiata a questo servizio web: http://ws.geonames.org/ FindNearby? lat = 47.3 & lng = 9
Che restituisce un documento XML con paese e luogo vicino nomi dati un lat / lng coppia.
Tale approccio si basa sul dispositivo avente una connessione dati attiva però.