IOS магазин в iTunes
Мне интересно, есть ли решение, узнать, в какой стране пользователь загрузил приложение.
Например: приложение x было загружено в США, когда пользователь открывает приложение, приложение проверяет, в какой стране оно было загружено. В этом примере возвращение будет "США"
Кто-нибудь знает, как это решить?
Ответы
Ответ 1
Если у вас есть какие-либо покупки в приложении, вы можете прочитать локаль из SKProduct. В качестве резервной копии используйте локаль устройства.
NSLocale *locale;
SKProduct *baseProduct = nil; // replace as applicable
if (baseProduct) {
locale = baseProduct.priceLocale; // from the user credit card on iTunes
} else {
locale = [NSLocale currentLocale]; // from user preferences
}
NSString *countryCode = [locale objectForKey:NSLocaleCountryCode];
NSLog(@"Two-letter country code: %@", countryCode);
Ответ 2
Там может быть достаточно хорошая корреляция между страной хранения iTunes и locale пользователем. Это зависит от ваших потребностей - если этого недостаточно, я не думаю, что есть способ узнать, из какого фактического магазина было загружено приложение.
Чтобы получить эту локаль, вы можете использовать:
NSString *localeIdentifier = [[NSLocale currentLocale] localeIdentifier];
Надеюсь, этого достаточно для ваших нужд.
Ответ 3
Невозможно проверить "какой" приложение App Store было загружено.
Если вам нужно сделать что-то на основе местоположения, вы должны посмотреть CLLocation
, чтобы получить текущее местоположение пользователя, однако может показаться навязчивым для приложения спросить пользователя о своем местоположении, если оно не очевидно, зачем оно понадобилось местоположение.
Вы также можете проверить язык на устройстве пользователя, например en_gb для Великобритании, dk для Дании, en_ca для Канады и т.д. Хотя это не полностью охватывает, когда люди в некоторых странах задают язык чему-то еще чем страны родного языка, это лучше, чем ничего.