提出这个问题,因为我不确定为什么Apple在不弃用UIWebView的情况下引入了WKWebView。重要的是要有一个想法,因为我正在编写一个大型代码库,需要做出明智的/基于事实的决策。
我们可能不得不期望这两个课程在未来共存而且没有一个被弃用吗?
WKWebView纯粹是为速度性能而设计的(使用JIT),并且可能仅用于某些用例吗?
WKWebView的当前限制:
https://mail.mozilla.org/pipermail/mobile-firefox-dev/2014-December/000993.html
答案 0 :(得分:12)
根据Xcode 9,User
已弃用。 ♂️
文档信息显示:
旧版UIWebView支持旧版macOS平台。如果可能,请更喜欢使用WKWebView。
已更新:在iOS 12中,现在不推荐使用UIWebView。 https://developer.apple.com/documentation/uikit/uiwebview
答案 1 :(得分:8)
有几个原因,包括安全性(进程外模型),性能和内存管理。 Apple是否会弃用UIWebView
并不是任何人都可以回答的问题,但Apple考虑到目前存在的许多限制(在WebKit2源库中部分解决了未来的iOS WK2框架包含),我的教育猜测是{{{ 1}}是为了满足不同的需求。考虑到WebKitLegacy和WebKit2(现在改名为WebKit)框架引用相同的实现框架(WebCore,JSCore等),保持UIWebView
活着不需要很多工作。
答案 2 :(得分:2)
如果您的应用仍使用已弃用的
UIWebView
API嵌入网络内容,我们强烈建议您尽快更新为WKWebView
,以提高安全性和可靠性。WKWebView
通过将网络处理限制在应用程序的网络视图中,确保泄露的网络内容不会影响应用程序的其余部分。 iOS和macOS以及Mac Catalyst都支持它。从2020年4月开始,App Store将不再接受使用
UIWebView
的新应用程序,并且从2020年12月开始不再使用UIWebView
的应用程序更新。