ios - 从 blob url 下载 WKWebview 文件
问题描述
对于 iOS 项目,我需要从给我一个 blob URL 的 web 视图下载一个文件。我已经通过在 webview 中注入 JavaScript 并使用WKScriptMessageHandler捕获数据来处理 iOS 14.5 版本的这种情况。对于 iOS 14.5+ 版本,我正在使用新的WKDownloadDelegate,因为苹果似乎正在阻止通过 JavaScript 注入下载任何文件。在 Xcode 12.5 下一切都运行良好,但令人惊讶的是它没有在 Xcode 13 下构建。
我已经看到 WKDownloadDelegate 方法在 Xcode 12.5 下具有@available(iOS 14.5, *)但这些相同的方法在 Xcode 13 下具有@available(iOS 15.0, *) :
Xcode 12.5:
@available(iOS 14.5, *)
func download(_ download: WKDownload, decideDestinationUsing response: URLResponse, suggestedFilename: String, completionHandler: @escaping (URL?) -> Void)
@available(iOS 14.5, *)
optional func downloadDidFinish(_ download: WKDownload)
Xcode 13:
@available(iOS 15.0, *)
func download(_ download: WKDownload, decideDestinationUsing response: URLResponse, suggestedFilename: String, completionHandler: @escaping (URL?) -> Void)
@available(iOS 15.0, *)
optional func downloadDidFinish(_ download: WKDownload)
正如我上面提到的,一切都在 Xcode 12.5 上运行。但出于持续集成的目的,我需要它在 Xcode 13 下工作。
所以我的问题是:知道Apple正在阻止从iOS 14.5+版本的javascript注入下载任何数据,并且WKDownloadDelegate仅在iOS 15+版本的Xcode 13下工作,是否有任何解决方案可以从iOS的webview下载文件Xcode 13 下 14.5 和 15.0 之间的版本?
解决方案
推荐阅读
- python - 如何使水平线停在特定的 x 值?
- javascript - 单击后ReactJS汉堡菜单不起作用
- r - 在 R 中创建具有各种参数的新函数
- html - CSS - 来自 SVG 徽标的字母之间不需要的间距
- sap-cloud-foundry - sap-cf-mailer VError:没有服务匹配目标
- google-cloud-platform - 如何在 App Engine 应用程序中使用强制 SSL 连接到 Google Cloud SQL
- mysql - 如何列出满足给定条件的所有记录
- ios - 将 XCFrameworks 包含到 Podspec
- java - 错误:未找到 ID 为“kotlin-android”的插件。在安卓工作室
- maven - 从 Linux 文本编辑器进行更改时,如何触发 spring-boot-devtools?