1
我正在iPhone应用程序中实现应用程序内购买,允许下载不重要的数据量。iPhone应用内购买:如何使用storekit检测未完成的交易?
现在,我试图弄清楚商店套件是否可以告诉我是否有任何交易在购买完成但已被应用程序关闭中断。
据我可以告诉做到这一点的唯一方法是观察者添加到SKPaymentQueue:
[[SKPaymentQueue defaultQueue] addTransactionObserver:someObject];
,等待defaultQueue对someObject调用
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
。这是在中断状态物品交易阵列SKPaymentTransactionStatePurchased在上面显示出来时,这种方法是
我在解决这一问题的首次尝试是增加我的观察,然后问:
[SKPaymentQueue defaultQueue].transactions
和检查那些。据称这返回了一系列“未决”交易,但根据我的经验,这不包括SKPaymentTransactionStatePurchased中的交易。
我一直希望使用storekit来维护这个状态,并且会喜欢任何想法。谢谢。
这绝对是一个正确的答案,因为In App Purchase Programming Guide明确指出,交易结果直接存储在设备或开发人员的服务器上取决于应用程序。但是,您可能需要考虑将数据存储在NSUserDefaults中,因为它比使用sqlite数据库简单得多,并在用户同步其设备时进行备份。 – 2011-02-22 04:31:00
托马斯摩尔上面说的。 WWDC 2014会议题为“优化应用内购买”很好地解释了哪些部分取决于开发人员以及Apple负责的部分。他们还概述了过度缓存的危险性等。如果您正在实施IAP,则必须参加会议。 – 2014-11-02 23:25:47