Question

Fondamentalement, je besoin d'identifier le pays de l'utilisateur au démarrage de l'application et activer ou désactiver une fonction de géolocalisation dans mon application en fonction de son / son pays. Je dois le faire aussi rapidement que possible dans le délégué de l'application avant le chargement du RootViewController. Y at-il de toute façon de le faire dans le SDK iPhone ??

Était-ce utile?

La solution

Avez-vous besoin le nom du pays que le dispositif est situé physiquement pendant que l'application fonctionne?

Ou pourriez-vous faire faire avec les paramètres régionaux du système, l'appareil utilise comme en_US ou fr_CA?

Dans ce dernier cas, vous pouvez:

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

Alors currentLocaleID sera "en_US" ou "fr_CA" ou similaire.

Sinon, vous aurez besoin d'utiliser CoreLocation et une certaine forme de géocodage inverse pour convertir votre lat / long en un nom de pays.

MKReverseGeocoder peut le faire, mais les conditions de service dire que vous devez faire en conjonction avec une carte Google qui peut ne pas vous convenir. Uniquement disponible sur OS 3.0 et au-dessus, recherchez la documentation MKReverseGeocoder pour plus d'informations.

Je avais besoin moi-même et a fini par faire géocodage en PHP sur notre serveur, en utilisant l'adresse IP du périphérique. Il est rudimentaire, mais nous a donné suffisamment de détails pour nos besoins.

Découvrez ce service web: http://ws.geonames.org/ FindNearby? lat = 47,3 & lng = 9
Ce qui renvoie un document XML avec le pays et les proches de lieu donné une paire lat / lng.

Cette approche repose sur le dispositif ayant une connexion de données active bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top