从 WKDownload 获取下载进度 [已关闭]

Get download progress from WKDownload [closed]

提问人:Jack M 提问时间:11/17/2023 最后编辑:Jack M 更新时间:11/23/2023 访问量:38

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

4天前关闭。

这篇文章是在 15 小时前编辑并提交审核的。

我有一个 WKDownloadDelegate 设置,我希望跟踪文件下载的当前进度。据我所知,没有明显的方法可以做到这一点。

我注意到WKDownload有一个与URL相同的进度对象

func webView(_ webView: WKWebView, navigationResponse: WKNavigationResponse, didBecome download: WKDownload) {
       download.progress.observe(\.fractionCompleted) {progress, _ in
            print(progress.fractionCompleted)
      }
  }

编辑:我发现这是由于完成的分数从未改变,因为它不知道最终的下载大小。我最终在打印进度对象时发现了变化,但它似乎不知道最终大小。所以分数不会改变。Completed

Parent: 0x0 (portion: 0) / Fraction completed: 0.0000 / Completed: 29395 of -1

最后的解决方法是让 Web 服务器发送标头Content-Length

iOS Swift WKWebView

评论

1赞 HangarRash 11/17/2023
你说没有明显的解决方案,但你随后发布了看似明显的解决方案。你试过你发布的代码吗?请更新您的问题,以了解有关您的问题的更多信息。
0赞 Leo Dabus 11/17/2023
您需要将 progress 对象分配给 UIProgressView 对象的 observedProgress 属性

答: 暂无答案