何时关闭恢复的事务,用户不下载

时间:2015-12-02 22:37:04

标签: ios storekit

在恢复非耗材Apple托管内容的交易时,如何确定何时关闭用户当时决定不下载的交易?

Apple建议这样做但不解释如何:

  

如果您的应用使用应用收据并且拥有Apple托管的内容,请让用户在开始还原过程之前选择要还原的产品。在恢复期间,重新下载用户选择的内容并立即完成任何其他交易。

他们似乎暗示您正在强迫用户立即决定是否要下载或不下载每个项目。

我想改为将下载按钮更改为可选的“恢复”状态,只要用户愿意,就可以按下该状态,例如: (这是我们的应用程序,每个可下载产品的下载按钮处于“恢复”状态。)

Here's our app with the download button for each downloadable product in a "restore" state.

此实现的问题在于您没有关闭用户不想下载的其他事务。

我尝试关闭applicationDidEnterBackground方法上的交易,但是关闭的交易请求没有发送给Apple。

这种实施是否可行?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我说:

  

“我尝试关闭applicationDidEnterBackground方法上的事务,但是关闭的事务请求没有发送给Apple。”

但这不正确。您可以在App Delegate函数applicationDidEnterBackground中关闭所有打开的事务。

以下代码将关闭所有已恢复的事务,因此下次打开应用时不会提示用户使用Apple ID登录。

func applicationDidEnterBackground(application: UIApplication) {
    for transaction in SKPaymentQueue.defaultQueue().transactions {
        SKPaymentQueue.defaultQueue().finishTransaction(transaction)
    }
}