Подтвердить что ты не робот

IOS магазин в iTunes

Мне интересно, есть ли решение, узнать, в какой стране пользователь загрузил приложение.

Например: приложение x было загружено в США, когда пользователь открывает приложение, приложение проверяет, в какой стране оно было загружено. В этом примере возвращение будет "США"

Кто-нибудь знает, как это решить?

4b9b3361

Ответ 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 для Канады и т.д. Хотя это не полностью охватывает, когда люди в некоторых странах задают язык чему-то еще чем страны родного языка, это лучше, чем ничего.