Можно ли осуществить покупки в приложении только для некоторых стран? - PullRequest
5 голосов
/ 09 декабря 2011

Есть ли способ использовать встроенные покупки, чтобы они не были доступны в США, и в то же время выяснить, доступны ли они или нет - и, если нет, выполнить специальные задачи для клиентов в США, которые не могут их использовать?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Вы можете использовать CLLocationManager, чтобы найти местоположение пользователей, а затем использовать MKReverseGeocoder, чтобы выяснить, в какой стране они находятся.

Некоторые люди отказывают в доступе к информации о местоположении. В качестве резервной копии вы можете использовать язык, на котором находится текущее устройство (но есть некоторые очевидные проблемы с этим подходом):

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

Тогда вам просто нужно использовать условное выражение:

if(in USA){ 
  do whatever, don't allow in-app purchases
} else {
  allow in app purchases
}
0 голосов
/ 09 декабря 2011

Возможно, вы могли бы отправить запрос продукта в фоновом режиме, и отображать кнопку покупки, только если что-то возвращается.Недостатком является то, что могут быть проблемы (сбои в работе магазина, проблемы с сетью, вы временно отключаете продукт), которые могут привести к сбою запроса продукта, поэтому вам придется соответствующим образом разработать альтернативный интерфейс пользователя.

SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:productId]]; 
productRequest.delegate = self;
[productRequest start];


-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    if ([[response products] count] > 0) {
        // display purchase link
    } else {
        // display alternative UI
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...