iPhone:以编程方式检查应用内购买状态

时间:2012-01-11 12:44:11

标签: iphone objective-c in-app-purchase mkstorekit

如您所知,可以通过Settings-> General-> Restrictions打开和关闭应用程序内购买。现在我想知道,在我们实际付款之前,有没有办法以编程方式检查应用程序内购买的状态。

2 个答案:

答案 0 :(得分:3)

我已经在SKPaymentQueue类中获得了解决方案。我使用“canMakePayments”方法检查应用内购买的限制。

来自Apple文档:

SKPaymentQueue Class Reference: 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");     
}

答案 1 :(得分:0)

通过阅读存储在/User/Library/Preferences/.的属性列表,可以访问大多数用户设置但是由于沙箱限制,您可能无法访问其中的一些。所以你必须通过代码尝试这个。