Apple's documentation建议使用WkWebView
进行新的开发,虽然它似乎有一个拼写错误,它建议{em> mac 中的 UIWebView / em>开发人员库。
对于新开发,请使用此类而不是旧的UIWebView类。
错字可能是因为他们试图将OSX和iOS界面统一到网络视图,对{两者都使用same header。
但是,WKWebView
没有WKWebView
在OSX中具有的所有功能。例如,您可以在WebView
中访问本机界面中的DOM节点,但我在WebView
中看不到通过Swift / Objective-C执行此操作的任何方法。
就我的目的而言,WKWebView
似乎是我所需要的,但我厌倦了启动依赖于将被删除的API的项目。但是,我没有看到任何提及在标题或文档中的任何位置弃用WebView
的意图。
更令人困惑的是,WebKit Framework Reference引用了WebView
和较早的网络视图API而没有澄清任何内容。
WKWebView
WKWebView对象显示交互式Web内容,例如用于应用内浏览器。
web视图
WebView是WebKit框架中的核心视图类,用于管理WebFrame和WebFrameView类之间的交互。
OSX中WK
会消失吗?
答案 0 :(得分:3)
这不是误报。 Apple在6.0中将Safari移出了UIWebView / WebView,因此安全修复程序在旧类中并没有发生。仅仅因为这个原因,你不应该把它用于新的东西。 Apple已发布incrementally improving it所有操作系统版本,现在可以使用私有扩展(文件://访问,下载等)
话虽如此,但它并不完全等同于旧的WebView。你不能再直接访问DOM了,因为网络/渲染/ UI进程被拆分了,你通过制作类似的元素引用来创建锁。在这两个支柱之间使用postMessage()
message handler和wkwebview.evaluateJavaScript()以及callback-ish / promisy JS代码来异步处理Web<>本机交互。
答案 1 :(得分:0)
重要
从iOS 8.0和OS X 10.10开始,使用WKWebView将Web内容添加到您的应用程序。
不要使用UIWebView或WebView。