可以保证照片在后台上传吗?

时间:2012-06-14 22:51:03

标签: iphone ios

我想创建一个简单的应用,用户可以在其中拍照。关键是我需要保证照片尽快上传到我们的服务器。这必须是真的,即使拍摄照片,没有互联网连接,或者即使电池在上传过程中干涸,或者您能想到的任何其他情况。

解决此问题的最简单方法是使用进度条,但我真的不希望我的用户不必要地等待。

下次应用启动时,照片会上传不够好,因为我需要尽快拍照。

我的问题是,是否可以保证照片在后台上传?

This问题有些类似,但我没有任何东西可以使用该位置,因此应用程序可能会被我的App Store拒绝。

1 个答案:

答案 0 :(得分:3)

简而言之:你无法保证任何事情。你只能尝试并希望它上传,你可以做一些事情来最大限度地提高你的机会,但是如果长时间没有连接,你可以根据你提到的限制做任何事情。

您只能在应用程序位于前台时执行上传。

除非您有背景类型 - 正如您猜测的那样,如果您假装有位置或其他类型,而您没有,那么您将被拒绝。

因此,您可以使用的唯一其他选项是使用beginBackgroundTaskWithExpirationHandler。

一旦用户离开你的应用程序,这将为你提供大约10分钟的后台执行时间(但如果他们终止了应用程序,那么你无能为力)。

如果应用程序位于前台时没有连接+一旦移动到后台后额外的10分钟,除了下次应用程序启动时再试一次,除了再试一次之外,没有什么可以做的。

使用Reachability类查看是否存在URL的可访问性,如果是,请尝试上传,如果没有注册可达性状态的更改通知,则一旦出现可达性,请尝试再次上载。

如果您有可访问性,请尝试上传,如果网络出现故障,请继续重试,直到10分钟结束。

P.S。 如果电池耗尽,你怎么可能保证上传?