Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 购买/恢复应用内购买单个按钮。(检查是否以前购买过)_Ios_In App Purchase_Restore - Fatal编程技术网

Ios 购买/恢复应用内购买单个按钮。(检查是否以前购买过)

Ios 购买/恢复应用内购买单个按钮。(检查是否以前购买过),ios,in-app-purchase,restore,Ios,In App Purchase,Restore,我目前正在实施应用内购买,刚刚读到一些帖子说需要一个恢复购买按钮,否则苹果将拒绝应用 我不想在我的UI设计中添加第二个按钮 所以我的问题是 是否有办法检查用户以前是否进行过应用内购买。在删除和重新安装应用程序之前 显然,NSUserDefaults将在删除时被擦除,所以我不能使用它 if (//*CHECK IF PREVIOUSLY PURCHASED*) { [[SKPaymentQueue defaultQueue] addTransactionObserver:self];

我目前正在实施应用内购买,刚刚读到一些帖子说需要一个恢复购买按钮,否则苹果将拒绝应用

我不想在我的UI设计中添加第二个按钮

所以我的问题是

是否有办法检查用户以前是否进行过应用内购买。在删除和重新安装应用程序之前

显然,NSUserDefaults将在删除时被擦除,所以我不能使用它

if (//*CHECK IF PREVIOUSLY PURCHASED*) {

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

} else {

    SKPayment *payment = [SKPayment paymentWithProduct:product];
    [[SKPaymentQueue defaultQueue] addPayment:payment];

}

如果用户没有实际输入他们的详细信息,他们就无法知道他们是否购买了该商品。因此,您需要一个按钮来调用购买/恢复操作

是的,如果您没有恢复按钮,苹果将拒绝您的应用程序。我知道第一手资料

如果你反对有两个按钮,你可以只做一个按钮,说明检查以前的购买,如果它不返回任何东西,然后改为购买按钮。但是是的,这方面的用户体验不太好

按照用户界面的设计,使用普通的购买按钮,然后在应用程序的“设置”部分放置还原按钮。按钮不需要彼此相邻,从我看到的情况来看,这是大多数应用程序使用的模式

旁注


如果您有一个服务器端实现,并且您的应用程序使用某种登录标识用户,您可以在服务器端跟踪他们购买的物品,当他们再次登录并且以前购买过物品时,您可以触发恢复过程,如果我没记错的话,用户仍然需要输入他们的Apple ID才能使用此过程进行恢复。

在app purchase中,用户不会在应用程序中购买任何东西。在这种情况下,用户单击恢复购买,它想显示一条警告消息