Pregunta

Básicamente necesito para identificar el país del usuario en el inicio de la aplicación y activar o desactivar una característica basada en la ubicación en mi aplicación basada en su / su país. Necesito hacer esto lo más rápido posible en el delegado de la aplicación antes de la carga de la RootViewController. ¿Hay alguna forma de hacer esto en el iPhone SDK ??

¿Fue útil?

Solución

¿Es necesario el nombre del país que el dispositivo se encuentra físicamente en el mientras la aplicación se está ejecutando?

O podría conformarse con el sistema local está usando el dispositivo como por ejemplo en_US o fr_CA?

En este último caso, se puede:

NSLocale *currentUsersLocale = [NSLocale currentLocale];  
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`

Entonces currentLocaleID será "en_US" o "fr_CA" o similar.

De lo contrario, tendrá que utilizar CoreLocation y alguna forma de Geocoder inversa para convertir su latitud / longitud de largo en nombre de un país.

MKReverseGeocoder puede hacer esto, pero los términos del servicio que usted necesita estar haciéndolo conjuntamente con un mapa de Google que no se pueden satisfacer. Sólo disponible en OS 3.0 y arriba, busque la documentación de MKReverseGeocoder para obtener más información.

que necesitaba esto mismo y terminé haciendo geocodificación en PHP en nuestro servidor, utilizando la dirección IP del dispositivo. Es rudimentaria, pero nos dio suficientes detalles para nuestras necesidades.

Salida este servicio web: http://ws.geonames.org/ FindNearby? lat = 47,3 y lng = 9
Que devuelve un documento XML con nombres de países y cerca de un lugar dado lat / lng par.

Este enfoque se basa en el dispositivo que tiene una conexión de datos activa sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top