如果之前已加载某些网页,WKWebView 不会加载 .archive 文件
Posted
技术标签:
【中文标题】如果之前已加载某些网页,WKWebView 不会加载 .archive 文件【英文标题】:WKWebView doesn't load .archive file if some web page has been loaded previously 【发布时间】:2019-07-15 18:18:37 【问题描述】:我遇到了WKWebView
的一些奇怪行为。
如果我在初始化 webView 后立即使用 loadFileURL(_ URL: URL, allowingReadAccessTo readAccessURL: URL)
加载 .webarchive 文件,它运行良好,但是当我使用 load(_ request: URLRequest)
加载一些 Web 内容然后尝试使用前面提到的方法加载文件时,我在 @987654324 中出现错误@委托方法:
[ProcessSwapping] 0x10af34160 - ProvisionalPageProxy::didFailProvisionalLoadForFrame: pageID = 1, frameID = 1, navigationID = 4
当当前 webView url 方案不是 file
时,我通过重新创建 WKWebView
实例暂时解决了这个问题,以防使用 file
方案加载 URL。在我看来这是不可接受的。
在研究过程中,我猜测这种行为与对某些资源的许可有关。甚至loadFileURL
方法有readAccessURL
参数它可能没有更新。
【问题讨论】:
我现在才打这个;有什么消息吗? 不,我最终选择了独立的 webViews,一个用于本地文件,另一个用于远程资源。 【参考方案1】:我不确定我是否正确理解了您的问题。
您的“webView(_:decidePolicyFor:decisionHandler:)”函数似乎将其视为 http/https URL。所以,你应该在函数中指定它就像一个 http/https URL。
【讨论】:
以上是关于如果之前已加载某些网页,WKWebView 不会加载 .archive 文件的主要内容,如果未能解决你的问题,请参考以下文章
从 HTML 将图像加载到 UITextview/WKWebView