gpt4 book ai didi

ios - 如何在 iOS 上使用 FileProviderExtension 显示下载进度

转载 作者:行者123 更新时间:2023-12-01 16:22:03 24 4
gpt4 key购买 nike

我有一个应用程序,它实现了 FileProviderExtension 的所有花里胡哨。现在问题出现了,在文件应用程序中显示下载/上传进度需要什么?

外面有一个previously asked question有一个相当模糊的答案,没有产生任何结果。

这是 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 中使下载进度正常工作需要什么?

最佳答案

我已经实现并且工作正常。
(见 https://forums.developer.apple.com/thread/91280#292614)

  • URLSession 应该使用 .background 配置。
  • 配置应该有一个有效的 sharedContainerIdentifier。
  • 您的扩展的容器应用程序应该有权访问共享容器。
  • 扩展应该通过 documentSize 属性报告正确的文件大小。
  • 关于ios - 如何在 iOS 上使用 FileProviderExtension 显示下载进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54581119/

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