【问题标题】:Downloading content from Apple hosted in-app purchase从 Apple 托管的应用内购买中下载内容
【发布时间】:2012-10-15 20:04:25
【问题描述】:

我有一个 Apple 托管的应用内购买项目。但是我不知道如何下载与之相关的内容。 我可以获得可下载的对象并请求开始下载:

[[SKPaymentQueue defaultQueue] startDownloads:currentTransaction.downloads];

那是我迷路的时候:那​​之后我该怎么办? 我查看了 Apple 文档,但没有找到任何可能对我有帮助的内容。

谢谢

【问题讨论】:

  • 您的问题解决了吗?

标签: ios in-app-purchase


【解决方案1】:

实现一个 SKPaymentTransactionObserver。当支付队列改变状态时,观察者会收到通知。例如,paymentQueue:updatedDownloads: 将使用一组 SKDownloads 调用,该数组的 downloadState 指示下载的状态更改。如果您想了解已完成的下载,请查找 downloadState == SKDownloadStateFinished。

http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html

【讨论】:

  • 谢谢,我确实实现了 SKPaymentTransactionObserver。此外,我在一开始就放了一个 NSlog,只是为了知道该方法是否被调用。我尝试过使用不同的测试帐户,但从未调用 (void)paymentQueue:(SKPaymentQueue *)queue updatedDownloads:(NSArray *)downloads。我的下载停滞不前
  • 你知道下载的时候会出现什么样的内容吗?压缩?包装?什么?如果是zip包,解压后里面是什么,是内容文件还是文件夹结构?
  • 内容是 zip,但可以作为文件夹结构访问。有一个 plist 和一个名为 Contents 的文件夹,其中包含您下载的任何内容。您可以使用 iExplorer 查看它在手机上的外观。
  • Marcelo,你需要发布更多代码,这样我们才能看到还有什么问题。您可能想将您的代码与 MKStoreKit 进行比较。
【解决方案2】:

我可以解决我的问题。调用

[[SKPaymentQueue defaultQueue] startDownloads:currentTransaction.downloads];

然后

(void)paymentQueue:(SKPaymentQueue *)queue updatedDownloads:(NSArray *)downloads 

不断被回调。我想我忘记了一些代表或类似的东西。除此之外,我从我的设备中删除了该应用程序并从 Xcode 重新编译它。然后它就像一个魅力 =) 谢谢

【讨论】:

  • 在下载失败之前就像一个魅力。然后呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
相关资源
最近更新 更多