iOS 应用内购买导致 > 20MB 下载
我正在考虑遵循“免费增值”模式的应用程序设计,其中某些内容是免费的,但用户可以在应用程序内购买更多内容。
我担心的是他们可以购买的内容将大于 20Mb,这是 3G 应用程序下载的限制。
有没有人尝试过这个或者知道这会产生什么影响?我想知道如果他们在使用 3G 时购买该应用程序会发生什么...他们是否必须返回计算机来完成内容下载,然后将其同步到手机?
I'm considering a design for an app following the "freemium" model where certain content is free but the user can purchase more content within the app.
My concern is that the content they can purchase will be >20Mb, the limit for a 3G App download.
Has anyone attempted this or have any idea what the implications would be? I'm wondering what happens if they buy the app while on 3G... would they have to go back to their computer to finish downloading the content and then sync it to the phone?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 3G 连接上大于 20Mb 的情况,这不会失败。内容不是从 Apple 的服务器(限制为 20Mb)传送,而是从您的服务器传送。因此,下载将正常进行。但是,如果下载量较大,则无法完成的可能性会增加。您可以在此处检查是否需要在可能的情况下提供其他内容。
应用内购买编程指南很好地涵盖了这一点。
最终,正确交付内容的责任取决于您。 Apple 将提供机制来确定您是否必须恢复购买。您可以在多种情况下恢复内容(用户换了新手机、用户重新安装应用程序、用户首次购买时无法获取内容等)。所有内容交付都是您(作为应用程序开发人员)的责任。
在对您来说最简单的情况下,非消耗品一旦购买就不会再被收取费用。也就是说,如果他们购买了该商品一次,则尝试购买第二次(由于相当多的应用程序意识到它已被购买)StoreKit 将返回成功购买,但不会向用户收费。
在更主动的层面上,您可以在应用启动时通过
restoreCompletedTransactions
获取已购买的商品列表,并提供任何缺失的内容。With regards to what happens to >20Mb on a 3G connection this will not fail. Content is not being delivered from Apple's servers (where the 20Mb limit is) but from your servers. So, the download will go forward as normal. However, with a large download size there is an increased chance of it not completing. This is where you come in to check if you need to deliver additional content when possible.
The In App Purchase Programming Guide covers this quite well.
Ultimately, the responsibility for properly delivering content is up to you. Apple will provide the mechanisms to determine if you must restore a purchase. You'd restore content in a number of situations (user got a new phone, user reinstalled app, user failed to get content on initial purchase, etc). All content delivery is your (as the app developer) responsibility.
At the least-work case for you, non-consumable items once purchased will never be charged for again. That is, if they purchase the item one time, the attempt to buy it a second (due to a fairly of the app to realize it's been bought) StoreKit will return a successful purchase, but not charge the user.
At a more proactive level, you can obtain the purchased items list via
restoreCompletedTransactions
when the app starts and deliver any missing content.