Как получить информацию о стране пользователя
Вопрос
В основном мне необходимо определить страну пользователя при запуске приложения и включить или отключить функцию на основе местоположения в моем приложении на основе его / ее страны. Мне нужно сделать это как можно быстрее в делегате приложения до загрузки RootViewController. Есть ли в любом случае делать это в iPhone SDK ??
Решение
Вам нужно имя страны, которую устройство физически находится в то время как приложение работает?
Или вы могли бы сделать с системой Locale, устройство используется, например, en_US или FR_CA?
Если последний, вы можете:
NSLocale *currentUsersLocale = [NSLocale currentLocale];
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`
потом currentLocaleID
будет "en_US"
или "fr_CA"
или похожие.
В противном случае вам нужно будет использовать Корилокацию и некоторую форму обратного геокодера для преобразования вашей латы / длинного в название страны.
MKREVIREGEOCODER может сделать это, но условия обслуживания говорят, что вам нужно делать это в сочетании с картой Google, которая может не соответствовать вам. Доступно только на ОС 3.0 и выше, ищите документацию для MkReversegeCoder для получения дополнительной информации.
Мне нужен это сам и в итоге делал геокодирование в PHP на нашем сервере, используя IP-адрес устройства. Это рудиментарный, но дал нам достаточное количество деталей для наших потребностей.
Проверьте этот веб-сервис: http://ws.geonames.org/findnearbyblat=47.3&lng=9.
Который возвращает XML Doc со страной и близлежащие имена места, предоставленные пары LAT / LNG.
Этот подход опирается на устройство, имеющее активное соединение с данными.