iOS 14 上的 WKWebView 仅在显着延迟后加载内容

Posted

技术标签:

【中文标题】iOS 14 上的 WKWebView 仅在显着延迟后加载内容【英文标题】:WKWebView on iOS 14 only loads content after a significant delay 【发布时间】:2020-07-28 07:36:15 【问题描述】:

ios 14 的 WKWebViews 中加载内容似乎存在一些问题。每当加载某些内容(网页或 html 字符串)时,加载实际开始之前需要 25 秒。

我已经在一个生产项目和几个用 Swift 和 Objective-C 编写的样板 WKWebView 项目中进行了尝试,它们都有相同的 25 秒延迟。

这发生在两台 Mac 上的 iPhone 和 iPad 模拟器中,都运行 Catalina 和 Xcode 12 beta 3。

我还没有在实际设备上尝试过这个,因为我的主要手机是我唯一能够运行 iOS 14 的设备,我不想在其上安装 iOS 14 只是为了检查是否存在此问题。

有其他人看到这个问题吗?

【问题讨论】:

“其他人看到过这个问题吗?” - 是的,只是花了一个小时试图解决这个问题,但完全失败了。我试图从应用程序包中读取文件;你是这种情况,还是远程 URL 也会发生这种情况? 我在模拟器中加载WKWebView时也遇到了同样的问题,但是在真机上效果很好。 @matt 我在模拟器中看到了本地和远程 URL 的问题。我能够在 iPad 上安装 iOS 14,但无法重现该问题。似乎只有模拟器。 不仅仅是 WKWebView。移动 Safari 也有同样的问题。 【参考方案1】:

经过两晚的努力,我认为这是我在 SwiftUI 中犯的一个错误(WKWebViewUIViewRepresentable),我得出的结论是这是 iOS 14 的问题,但仅限于模拟器上的 。在 Xcode 12 beta 4 中未修复。

iOS 13 在模拟器上没有延迟。您可以通过在运行 iOS 13 的模拟器和运行 iOS 14 的第二个模拟器中打开 Safari 轻松测试这一点。Safari iOS 13 中的任何网页几乎都会立即打开。 Safari iOS 14 中的任何网页都会延迟 20-30 秒打开(除非它是您点击网站本身的链接)。

如果您在装有 iOS 14 的真实设备上使用 WKWebView 或 Safari 打开网页也没有延迟(使用 iOS 14 beta 4 测试)。

我通过反馈辅助应用向 Apple 报告了此问题。

[更新]似乎已在 Xcode 12 beta 5 中修复:模拟器中不再有延迟。

【讨论】:

以上是关于iOS 14 上的 WKWebView 仅在显着延迟后加载内容的主要内容,如果未能解决你的问题,请参考以下文章

iPad上的WKWebView水平滚动

在 iOS14 上释放 wkwebview 时,发送手势事件导致崩溃

iOS学习笔记14-网络WebView

iOS14,WKWebView 无法打开带有 _blank 目标的链接

目录上的多个快照

WKWebView 可以调用主应用程序中的函数并返回值吗?