OSX上的WebView与WKWebView

时间:2015-12-18 21:02:19

标签: macos webview wkwebview

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会消失吗?

2 个答案:

答案 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。

https://developer.apple.com/documentation/webkit/wkwebview