iphone - 能保证一张照片在后台上传吗?

标签 iphone ios

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

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

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

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

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

最佳答案

简而言之:您无法保证任何事情。你只能尝试并希望它被上传,你可以做一些事情来最大化你的机会,但如果长时间没有连接,那么考虑到你提到的限制,你无能为力。

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

除非你有背景类型——正如你猜到的那样,如果你假装有位置,或者其他类型之一,而你没有,那么你会被拒绝。

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

一旦用户离开您的应用程序,您将有大约 10 分钟的时间在后台执行(但如果他们终止应用程序,您将无能为力)。

如果应用程序在前台时没有连接 + 移动到后台后的额外 10 分钟,除了下次应用程序启动时重试之外,您无能为力。

使用 Reachability 类查看 url 是否存在可达性,如果存在则尝试上传它,如果不存在则注册可达性状态更改的通知,一旦出现可达性就尝试再次上传。

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

附言 您怎么可能期望在电池电量耗尽时保证它能够上传?

关于iphone - 能保证一张照片在后台上传吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042409/

相关文章:

iphone - 检测视频将在 UIWebView 中播放

ios - 如何根据 UIPickerview 中的第一个组件选择设置第二个组件中的数据

iphone - 以后如何删除 child ? (cocos2d)

ios - 使用 UIPresentationFormSheet,为什么我的 View 在键盘打开时不移动到键盘上方?

iphone - 动画 block 相互干扰

ios - iOS8 beta 5 上的 UIWebView 中的定位服务无法正常工作

ios - NSURLConnection 将 SendRequestForAuthenticationChallenge 持久化

ios - 类 AppDelegate : UIResponder, UIApplicationDelegate { SWIFT 中的 SIGABIRT 错误

ios - 同时从 2 个不同的 NSNotifications 调用确切的方法

ios - RestKit - 'Cannot add object with entity ' entityName' 为 'entityName'' 的实体缓存