我对恢复iap感到困惑,如何恢复它我已经管理了所有代码如何恢复它工作正常。 我面临的问题是在哪里调用恢复以前的购买 1)在应用程序第一次运行时,在视图中调用仅加载一次...
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
2)在用户再次点击购买功能之前调用它 如果它无法恢复,则调用购买功能。
我很困惑如何解决它...... 我面临的另一个问题是,当它尝试从不同的苹果ID(实际上没有购买该功能)恢复以前的购买时,然后在模拟器弹出窗口打开connot连接到ITUNE ......
答案 0 :(得分:0)
要恢复,您必须提供恢复按钮,以便每当用户单击该按钮时,应恢复用户所做的所有购买。在IBAction
方法中编写这些代码以恢复
-(IBAction)restorePurchase:(id)sender
{
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
请记住,应用购买测试应该在不在模拟器上的设备上完成。
答案 1 :(得分:0)
你有一些选择来解决这个问题:
首先调用app: - 保留一个NSUserDefaults值来计算应用程序的运行时间,就像在didFinishLaunchingWithOptions方法中一样:
int i = [[NSUserDefaults standardUserDefaults] integerForKey:@"usageCount"];
i = i+1;
[[NSUserDefaults standardUserDefaults] setInteger:i forKey:@"usageCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
从应用的任何位置,您都可以查看并致电
if([[NSUserDefaults standardUserDefaults] integerForKey:@"usageCount"]==0)
{
//Call you action
}
首次运行时,您可以调用还原购买的值。