iPhone: проверка статуса покупки в приложении программно - PullRequest
4 голосов
/ 11 января 2012

Как вы знаете, встроенные покупки можно включать и выключать в меню «Настройки» -> «Основные» -> «Ограничения». Теперь мне интересно, есть ли способ программно проверить состояние покупки в приложении, прежде чем мы на самом деле осуществим какой-либо платеж.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

У меня есть решение в классе SKPaymentQueue. Я использую метод canMakePayments для проверки ограничений на покупки в приложении.

Из документации Apple:

Ссылка класса SKPaymentQueue: canMakePayments

"iPhone может быть ограничен в доступе к Apple App Store. Например, родители могут ограничить возможность своих детей покупать дополнительный контент. Ваше приложение должно подтвердить, что пользователю разрешено авторизовать платежи до добавления платежа в очередь. Ваше приложение может также захотеть изменить свое поведение или внешний вид, если пользователю не разрешено авторизовать платежи. "

Пример кода:

if ([SKPaymentQueue canMakePayments])
{
    SKPayment *payment = [SKPayment paymentWithProductIdentifier:identifier];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
} else {
    NSLog(@"In-App Purchases are not allowed");     
}
0 голосов
/ 11 января 2012

К большинству пользовательских настроек можно получить доступ, прочитав списки свойств, хранящиеся в /User/Library/Preferences/. Но есть вероятность, что вы не сможете получить доступ к некоторым из них из-за ограничений песочницы.Так что вам придется попробовать это с помощью кода.

...