【发布时间】:2021-09-17 00:41:07
【问题描述】:
我正在尝试让 WKURLSchemeHandler 在 WebView 使用自定义 url 方案时提供视频文件。我意识到didReceive(data) 可以被多次调用,所以我想出了如何分块加载我的视频文件并将其发回。
问题是所有这些工作都是在主线程上完成的。我找不到如何在后台线程上成功完成此操作的示例。我能找到的所有 WKURLSchemeHandler 示例,包括 WWDC 演示视频here(接近视频结尾)都非常基础。他们都没有展示如何处理大文件,更不用说如何从主线程中推出工作了。
如果我只是将所有内容都包装在 DispatchQueue.global(qos: .background).async {...} 中,那么我的应用程序崩溃 b/c WebView 会抛出一个非托管异常,错误为 this task has already been stopped!
任何人都知道如何成功地做到这一点?
【问题讨论】:
标签: wkwebview wkurlschemehandler