我有一个应用程序,它实现了 FileProviderExtension 的所有花里胡哨。现在问题出现了,在文件应用程序中显示下载/上传进度需要什么?
有一个先前提出的问题,答案相当模糊,没有产生任何结果。
这是startProvidingItem(at url: URL ...)
函数的粗略代码:
let downloadDelegate = DownloadDelegate(completionHandler, targetLocation: url, fileManager: fileManager)
let session = URLSession(configuration: URLSessionConfiguration.default, delegate: downloadDelegate, delegateQueue: nil)
let downloadTask = session.downloadTask(with: sftpURL)
NSFileProviderManager.default.register(downloadTask, forItemWithIdentifier: id) { error in
if let error = error {
print("Error registering progress task \(error)")
} else {
print("Registered progress task")
downloadTask.resume()
}
}
DownloadDelegate
调用completionHandler
错误或nil
成功的地方。这一切都有效,但即使 downloadTask 已注册但FileProviderManager
没有显示任何进度。
Waiting to Download
它开始在文件下方显示不确定的微调器。下载任务肯定会发送进度事件(通过 中的urlSession(..., totalBytesWritten: ...)
方法确认DownloadDelegate
),但 FileProvider 似乎忽略了它们。
TL;DR:在 FileExtension 中使下载进度正常工作需要什么?