目前我正在从服务器下载文件,效果很好。
class Downloader:NSObject,URLSessionDownloadDelegate {
/*
SOME PROPERTIES & DECLARATIONS
*/
override init() {
super.init()
let backgroundSessionConfiguration = URLSessionConfiguration.background(withIdentifier: url.absoluteString)
backgroundSessionConfiguration.networkServiceType = .default
self.defaultSession = URLSession(configuration: backgroundSessionConfiguration, delegate: self, delegateQueue: OperationQueue.main)
}
func start(_ blockownloaderCompletionHandler?) {
guard self.input == nil else { return }
guard self.output == nil else { return }
if let data = self.resumableData {
self.downloadTask = self.defaultSession.downloadTask(withResumeData: data)
}else {
let request = URLRequest(url: self.input!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 0.60)
self.downloadTask = self.defaultSession.downloadTask(with: request)
}
self.downloadTask.resume()
}
func pause() {
self.downloadTask.cancel { (data) in
self.resumableData = data
}
}
}
请在这种情况下指导我。 提前致谢
只有满足以下条件才能恢复下载:
自您第一次请求资源以来,该资源没有改变
任务是 HTTP 或 HTTPS GET 请求
服务器在其响应中提供 ETag 或 Last-Modified header (或两者)
服务器支持字节范围请求
临时文件未因磁盘空间压力而被系统删除
→ 来源:https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel
关于ios - 如何检查当前 URLSessionDownloadTask 的恢复能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46316524/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |