Frage

Im Grunde muß ich den Land des Nutzers beim Start der Anwendung identifizieren und aktivieren oder ein ortsbasierte Feature in meiner App auf seinem / ihrem Land zu deaktivieren. Ich muss dies so schnell wie möglich in der Anwendung delegieren tun vor dem RootViewController der Belastung. Gibt es trotzdem, dies im iPhone SDK zu tun ??

War es hilfreich?

Lösung

Haben Sie den Namen des Landes müssen, dass das Gerät physisch in befindet, während die App läuft?

Oder könnten Sie mit dem System auszukommen locale das Gerät verwenden, wie zum Beispiel en_US oder fr_CA?

Wenn letzteres, können Sie:

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

Dann currentLocaleID wird "en_US" oder "fr_CA" oder ähnlich sein.

Ansonsten müssen Sie Corelocation und irgendeine Form von Reverse Geocoder verwenden, um Ihre lat / long in einen Ländernamen zu konvertieren.

MKReverseGeocoder kann dies tun, aber die Bedingungen des Dienstes sagen, dass Sie es in Verbindung mit einer Google-Karte zu tun, die Sie möglicherweise nicht gerecht wird. Nur auf OS 3.0 und höher finden Sie in der Dokumentation für MKReverseGeocoder für weitere Informationen.

Ich brauchte diese selbst und endete auf unserem Server tun Geocoding in PHP auf, die Geräte-IP-Adresse. Es ist rudimentär, aber hat uns detailliert genug für unsere Bedürfnisse.

Sehen Sie sich diese Web-Service aus: http://ws.geonames.org/ FindNearby? lat = 47.3 & lng = 9
Welche gibt ein XML-Dokument mit dem Namen Land und in der Nähe Ort gegeben ein lat / lng Paar.

Dieser Ansatz beruht auf dem Gerät jedoch eine aktive Datenverbindung hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top