ios - 如何检查当前 URLSessionDownloadTask 的恢复能力?
<p><p>目前我正在从服务器下载文件,效果很好。</p><hr/>
我的问题是,在实际下载开始之前,我怎么知道 url 是否恢复 <strong>capability</strong>?
<br/>
下面是一些代码片段,<br/><p></p>
<pre><code>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(_ block:DownloaderCompletionHandler?) {
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
}
}
}
</code></pre>
<p>请在这种情况下指导我。
<strong>提前致谢</strong></p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>只有满足以下条件才能恢复下载:</p>
<ul>
<li><p>自您第一次请求资源以来,该资源没有改变</p>
</li>
<li><p>任务是 HTTP 或 HTTPS GET 请求</p>
</li>
<li><p>服务器在其响应中提供 ETag 或 Last-Modifiedheader (或两者)</p>
</li>
<li><p>服务器支持字节范围请求</p>
</li>
<li><p>临时文件未因磁盘空间压力而被系统删除</p>
</li>
</ul>
<p>→ 来源:<a href="https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel" rel="noreferrer noopener nofollow">https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel</a> </p></p>
<p style="font-size: 20px;">关于ios - 如何检查当前 URLSessionDownloadTask 的恢复能力?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/46316524/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/46316524/
</a>
</p>
页:
[1]