WKWebView 是作为 UIWebView 的替代品设计的吗?

Is WKWebView designed as a replacement of UIWebView?

问这个问题是因为我不确定为什么 Apple 在没有弃用 UIWebView 的情况下引入了 WKWebView。有一个想法很重要,因为我正在编写一个大型代码库并且需要做出明智的/基于事实的决定。

WKWebView 目前的限制:

https://mail.mozilla.org/pipermail/mobile-firefox-dev/2014-December/000993.html

How can I retrieve a file using WKWebView?

更新: UIWebView 现已弃用,Apple 积极劝阻开发人员使用它。


有几个原因,包括安全性(进程模型之外)、性能和内存管理。 Apple 是否会弃用 UIWebView 除了 Apple 之外没有人可以回答,但是考虑到目前存在的许多限制(一些在 WebKit2 源存储库中部分解决以供将来 iOS WK2 框架包含),我有根据的猜测是UIWebView 是为了满足不同的需求而留在这里。考虑到 WebKitLegacy 和 WebKit2(现已更名为 WebKit)框架都引用相同的实现框架(WebCore、JSCore 等),保持 UIWebView 存活并不需要很多工作。

根据 Xcode 9,UIWebView 已弃用。 ‍♂️

文档消息如下:

Legacy UIWebView for support of older macOS platforms. Prefer using WKWebView if possible.

更新: UIWebView 在 iOS 12 中已被弃用。 https://developer.apple.com/documentation/uikit/uiwebview

根据Apple Developer site

If your app still embeds web content using the deprecated UIWebView API, we strongly encourage you to update to WKWebView as soon as possible for improved security and reliability. WKWebView ensures that compromised web content doesn’t affect the rest of an app by limiting web processing to the app’s web view. And it’s supported in iOS and macOS, and by Mac Catalyst.

The App Store will no longer accept new apps using UIWebView as of April 2020 and app updates using UIWebView as of December 2020.