2012-10-15 50 views
5

我有一个苹果托管的应用内购买。但我无法弄清楚如何下载与之相关的内容。 我能得到下载的对象,并要求下载开始:从苹果托管的应用内购买下载内容

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

这时候我迷路:我应该后做什么? 我看过苹果文档,没有找到任何可能帮助我的东西。

Thx

+0

你有解决你的问题? –

回答

0

我能解决我的问题。调用

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

然后

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

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

+0

直到下载失败才能像魅力一样工作。那又怎么样? – openfrog

0

实施SKPaymentTransactionObserver。当支付队列改变状态时,观察者将被通知。例如,paymentQueue:updatedDownloads:将被一系列SKDownloads调用,其downloadState表示下载的状态更改。如果您想了解完成的下载,请查找downloadState == SKDownloadStateFinished。

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

+0

谢谢,我确实实现了SKPaymentTransactionObserver。此外,我在一开始就放了一个NSlog,以知道该方法是否被调用。我已经尝试了不同的测试账户,但(void)paymentQueue :(SKPaymentQueue *)队列updatedDownloads:(NSArray *)下载永远不会被调用。我的下载停留在缓冲区 –

+0

你知道下载时会出现什么样的内容吗?压缩? PKG?什么?如果它是一个压缩包,解压缩时只有内容文件或文件夹结构? – SpaceDog

+0

内容是一个zip文件,但它可以作为文件夹结构访问。有一个plist和一个名为Contents的文件夹,它具有你下载的任何内容。您可以使用iExplorer查看手机上的外观。 –

相关问题