【发布时间】:2020-01-27 09:54:12
【问题描述】:
我有一个位于捆绑包中的 html 文件,我正在使用 WKWebView 从该 html 加载内容:
let fileURL = URL(fileURLWithPath: Bundle.main.path(forResource:"demo", ofType: "html")!)
webView.loadFileURL(fileURL, allowingReadAccessTo: fileURL)
然而,这个 html 文件有一些脚本试图访问位于 Documents 目录中的文件(一些视频保存在那里),但得到“无法加载本地资源”。错误。 我在 AVPlayerViewController 的其他地方使用这些文件,所以我知道这些文件存在并且我使用的 url 是正确的。
我试过了:
1. 将文档目录 url 传递给 allowedReadAccessTo 参数 - webview 甚至不加载
2. 将文件目录中的项目复制到 tmp 目录并在脚本中传递这个 (tmp dir) url - 它可以工作,但是这个过程发生的太多了,而且由于内存问题和大文件所花费的时间,我不想复制这么多文件。
3. 将 html 文件及其脚本从包复制到文档目录 - 不相关因为我使用的脚本不时更改,所以要确保用户始终拥有(脚本的)最新版本,每次应用启动时我都必须复制它。
那么,有没有其他方法可以让 html 文件(位于 bundle 中)访问文档文件?
提前致谢,
【问题讨论】:
标签: ios swift webview wkwebview