应用内购买 - 通常是在每个应用开放时获取产品列表?

时间:2013-01-01 16:48:58

标签: ios

我正在阅读这个应用内购买教程:

http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial

为了进行购买,我们需要执行以下操作:

SKProduct* product = ...;
SKPayment* payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];

看起来我们需要将SKProduct的实例传递给addPayment:方法。这是否意味着每次用户打开我们的应用时,我们都需要从应用商店获取应用提供的产品列表?

在我的情况下,我有一个硬编码的产品标识符列表。我想知道人们是否一次获取SKProduct个实例的列表,然后将它们缓存到磁盘。然后,在为应用添加更多产品之前,无需重新获取。我猜想像本地化价格这样的动态属性会阻止缓存。

每次应用运行时,重新获取产品列表是否典型?

由于

2 个答案:

答案 0 :(得分:2)

不是每次应用程序启动时都不必强制提出产品请求。 它只取决于应用程序的要求。假设您的应用程序第一个屏幕是像商店SCreen在哪里显示要销售的项目。在这种情况下,您应该向Itunes商店发出产品请求,以便每次启动应用程序时都可以显示与产品相对应的最新信息。

假设在您的应用程序中,单击某个商店按钮时显示产品列表(单击时按任意按钮加载商店内容)。那么在这种情况下,您应该在该时间发出产品请求并在屏幕上显示这些产品。当点击其中任何一个(产品)时,您可以将SKProduct传递给SKPaymentQueue。在这种情况下,每次应用程序启动时都不需要向Itunes Store发出产品请求。< / p>

所以在这里,我会说你首先需要考虑你的应用程序要求。 我希望它可以帮助你。

答案 1 :(得分:1)

在我自己的应用程序中,每当用户进入我的应用程序中的“商店”屏幕时,我都会获取SKProducts,而不是每次运行应用程序时都是如此。如果用户此刻无意购买任何东西,则无需获取产品。等到用户选择查看可以在您的应用中进行的应用内购买的详细信息。