gpt4 book ai didi

ios - 我可以使用 NSURLSessionUploadTask 进行离线同步任务吗?

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:20 26 4
gpt4 key购买 nike

我需要类似于 Facebook 的离线发布功能的东西。基本上,无论连接状态如何,我都希望用户在设备上本地创建内容,并且只要互联网可用,它就应该 POST/PUT 到服务器。

我在互联网上搜索了一个解决方案,我发现 NSURLSessionUploadTask 可以在后台用于 POST-ing。但是我不知道是否支持以下场景:

  • 当用户离线时,我的任务是否会保留在后台队列中,操作系统是否会在重新连接到网络后尝试执行队列中的项目?
  • 如果应用程序被用户强行关闭或崩溃会怎样?
  • 如果操作失败会怎样?

最佳答案

首先,后台NSURLSession只允许上传文件。如果这对你来说没问题:

  • 任务将在队列中,直到它收到服务器响应。
  • 如果您的应用被强制关闭,任务仍会执行。请求完成后,您的应用程序将在非交互式后台状态下启动并接收 application:handleEventsForBackgroundURLSession:completionHandler:。在您处理信号并调用完成处理程序或 30 秒超时后,应用程序将关闭。
  • 如果操作失败,您将收到 URLSession:task:didCompleteWithError:

有个好tutorial在后台 NSURLSessions 上。我建议您阅读这篇精彩文章的所有 4 个部分。
如果文件上传不适合您,我建议您将信息保存到本地数据库,然后等待互联网可以访问。 (这里的一个好方法是使用 Reachability 库,Alamofire 也允许这样做)。当互联网可用时,只需使用保存的数据调用您的 http 请求。

关于ios - 我可以使用 NSURLSessionUploadTask 进行离线同步任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com