【问题标题】:How to serve big files using WKURLSchemeHandler?如何使用 WKURLSchemeHandler 提供大文件?
【发布时间】:2019-10-03 10:50:06
【问题描述】:

我正在使用WKURLSchemeHandler 提供WkWebView 无法直接读取的本地文件。虽然它适用于像视频这样的小文件,但当它必须提供像视频这样的大文件时,它会完全冻结应用程序。

现在,我正在一步读取完整文件,这不适合重要文件。

data = try Data(contentsOf: fileUrl)

我应该怎么做才能避免这种情况?有没有办法“流式传输”文件的内容?

【问题讨论】:

    标签: swift macos cocoa wkwebview wkurlschemehandler


    【解决方案1】:

    didReceive(Data) 比较特殊,可以多次调用部分数据,因此可以进行分块读取/流式传输。这在文档中并不明显,但他们在他们的演示文稿中这样说 uf 方案处理程序功能(见 32:30):https://developer.apple.com/videos/play/wwdc2017/220/

    此外,WKURLSchemeTask 的函数可以在后台线程上调用,无需在主线程上调用(并且可能会阻塞 UI)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 2013-03-06
      相关资源
      最近更新 更多