我的恢复实施似乎基本上正常。
从paymentQueue:updatedTransactions:
我用一个模态活动指示器阻止UI,为每个恢复的事务触发对我们服务器的请求,得到回复告诉我要下载的相应(非消耗)项目的ID。我关闭了交易。最后,paymentQueueRestoreCompletedTransactionsFinished
或restoreCompletedTransactionsFailedWithError:
是我删除活动指标的提示,如果是的话。开始下载到现在为止还挺好。它有效。
如果恢复过程中断(应用程序退出),paymentQueue:updatedTransactions:
仍然可以在应用程序再次启动时正常工作,但我没有收到paymentQueueRestoreCompletedTransactionsFinished
事件。因此,我错过了删除活动指示器并开始下载的提示。
有人知道可能导致这种情况的原因吗?
我的解决方法是完全忽略paymentQueueRestoreCompletedTransactionsFinished
,而是使用paymentQueue:removedTransactions:
来跟踪队列中的项目数,并在没有更多项目时相应地执行操作。虽然打开了显示更多信息性进度信息的选项,但并不会让我觉得特别优雅。