如果之前已加载某些网页,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 文件的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView

从 HTML 将图像加载到 UITextview/WKWebView

为啥我的 UIScrollView 中的 WKWebview 没有显示?

使用WKWebView替换UIWebView

iOS中WKWebView加载网页失败或者无网络状态判断

WKWebView 实例可以在加载时显示网页吗?