iPhone:以编程方式签入应用程序购买状态

iPhone:以编程方式签入应用程序购买状态,iphone,objective-c,in-app-purchase,mkstorekit,Iphone,Objective C,In App Purchase,Mkstorekit,正如您所知,可以通过设置->常规->限制打开和关闭应用内购买。现在我想知道,有没有办法通过编程检查应用内购买的状态,在我们实际付款之前。大多数用户设置都可以通过读取存储在/user/Library/Preferences/中的属性列表来访问,但由于沙箱限制,您可能无法访问其中一些设置。因此,您必须通过代码来尝试这一点。我在SKPaymentQueue类中找到了解决方案。我正在使用“canMakePayments”方法检查应用程序内购买的限制 来自Apple文档: “可以限制iPhone访问苹果

正如您所知,可以通过设置->常规->限制打开和关闭应用内购买。现在我想知道,有没有办法通过编程检查应用内购买的状态,在我们实际付款之前。

大多数用户设置都可以通过读取存储在
/user/Library/Preferences/
中的属性列表来访问,但由于沙箱限制,您可能无法访问其中一些设置。因此,您必须通过代码来尝试这一点。

我在SKPaymentQueue类中找到了解决方案。我正在使用“canMakePayments”方法检查应用程序内购买的限制

来自Apple文档:

“可以限制iPhone访问苹果应用商店。例如,家长可以限制孩子购买额外内容的能力。在将付款添加到队列之前,应用程序应确认允许用户授权付款。当不允许用户授权付款时,您的应用程序可能还希望更改其行为或外观。”

示例代码:

if ([SKPaymentQueue canMakePayments])
{
    SKPayment *payment = [SKPayment paymentWithProductIdentifier:identifier];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
} else {
    NSLog(@"In-App Purchases are not allowed");     
}