【发布时间】:2013-01-18 12:27:48
【问题描述】:
我们正在构建一个 iPhone 应用,但在后台下载应用内购买时遇到问题,我想知道是否有人有解决方案……
我们的应用内购买相当大 35-40mb,每次购买由 5 件商品组成,每件 7-8mb,因此手机通常会进入待机状态,或者用户在下载购买之前切换应用程序,因此应用内购买是必不可少的购买在后台无缝下载。
当我们下载购买时,我们必须从服务器下载大约 35-40mb,并同时更新应用程序中的本地 sqlite 数据库。我们已经测试在前台下载项目并且它工作正常,我们已经做了一些处理以保持下载过程在后台继续并且下载继续并且我们可以在调试器中看到它工作。
但是我们有以下问题……
用户开始下载 应用上的下载页面显示应用正在下载 用户离开应用程序或手机进入待机状态 用户返回应用
此时,应用启动画面会加载并停留在屏幕上,直到完成其中一个 8mb 下载,完成后,它会切换到应用上的下载页面。这真的让用户感到困惑,因为他们认为应用程序已经崩溃了。
那么我们如何管理应用内购买,以便当用户按下下载时,它会在后台开始下载,并且在下载过程中应用正常运行?所以用户离开应用程序,当他们返回时,它会显示正确的页面和下载进度。用户在应用内导航,它工作正常。
一些观察...
我必须连续运行 NSURLConnection 5 次才能执行下载,因为每次应用内购买有 5 个项目。
我注意到的是,当第一次下载正在进行时,即使用户按下主页按钮,“didEnterBackground”方法也不会被调用,但在第一次下载过程完成后,“didEnterBackground”方法会被调用.如果用户将应用程序置于后台,然后返回到前台,则应该调用“didEnterForeground”,但不是。
我正在使用与“MainThread”不同的线程下载数据,但仍在同一问题中运行。
任何帮助将不胜感激。
【问题讨论】:
标签: iphone