IPHONE:Storekit - 中止交易恢复(应用内购买)

时间:2009-11-09 17:13:39

标签: iphone

正如Apple的“建议”一样,我已在我的应用程序中添加了一个按钮,用于恢复旧的成功交易。

问题是这个。用户单击该按钮,应用程序开始恢复事务。如果在此过程中由于某种原因关闭了应用程序,则该过程将在下次运行应用程序时继续。

在我的情况下,恢复所有交易可能需要一些时间,特别是如果用户有很多交易。因此,当应用程序再次启动时,我看到一个黑屏,并且在最后一个事务恢复之前不会加载应用程序。

显然,恢复事务的过程会挂起在完成之前不加载的应用程序。

正如Apple建议的那样,我在应用程序的开头就有了这个......

CustomStoreObserver *observer = [[CustomStoreObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];

这对于恢复中断的销售非常有用,但在我的情况下,当问题是恢复已经购买的旧交易时会造成痛苦。

我希望能够在程序启动时中止任何可能运行的旧事务的恢复,并在脚趾应用程序运行时允许它们。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

你能不能在不同的线程/运行循环中创建商店观察者,以免它阻止UI线程?

如果失败了,只有在显示启动画面后才添加事务观察者?