NSUrlSession:是否可以在后台上传文件?

NSUrlSession: is it possible to upload files in the background?

使用 NSUrlSession 和后台配置让我下载文件,即使应用程序被 iOS 终止。出于好奇,我尝试添加一个上传任务并注意到它不会继续,即使应用程序只是暂停也是如此。

Apple 谈到“Downloading in the background”,但他们没有明确说明上传 是不可能的。

有人可以确认上传和后台会话配置不能一起工作吗?

他们确实一起工作。

您需要做的是:

有一个带有后台配置的 NSURLSessionConfiguration

NSURLSessionConfiguration *conf = [NSURLSessionConfiguration backgroundSessionConfiguration:@"backgroundSession"];

设置一个 NSURLSession (@属性 NSURLSession *urlSession)

获取文件路径(fullPath)

创建 NSURLRequest(请求)

创建一个 NSURLSessionTask

NSURLSessionTask*task = [self.urlSession uploadTaskWithRequest:request fromFile:fullPath];
[task resume];

任务将在后台 运行。您可以从 NSURLSession 委托方法中获取状态。

干杯