IOS. Определение страны пользователя без использования CLLocationManager.
Мне не нужны точные данные о местоположении, и я не хочу, чтобы пользователь видел, как "Это приложение хочет определить ваше местоположение". Мне просто нужно определить страну пользователя, предполагая, что у них есть интернет-соединение через сеть или Wi-Fi.
Каков наилучший способ сделать это? Есть ли способ использовать их IP?
Это будет работать, только если у них есть носитель:
CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
NSString *mcc = [carrier mobileCountryCode];
И NSLocale
не является надежным в том, что пользователь может изменить его в настройках своего устройства. Невозможно использовать настройку языка устройства по той же причине. Мне нужна страна, основанная на том, где они физически расположены.
Ответы
Ответ 1
Вы можете получить IP-адрес пользователя и использовать базу данных геолокации, чтобы угадать их местоположение на основе описанного здесь: https://en.wikipedia.org/wiki/IP_address_location. Если вас интересует только регион, вы можете найти некоторые данные в региональных интернет-реестрах (https://en.wikipedia.org/wiki/Regional_Internet_registry), чтобы помочь вам, поскольку они контролируют все IP-адреса для определенного региона.
Ответ 2
Обратитесь к этому URL Как может whatsapp знать код страны при первом запуске на iphone.
Надеюсь, что этот вопрос и вопрос в URL-адресе я дал вам для работы.