gpt4 book ai didi

javascript - 用于 JavaScript 的 UIWebView 或 WKWebkit?

转载 作者:可可西里 更新时间:2023-11-01 06:24:16 24 4
gpt4 key购买 nike

我想要加载请求的网页并访问 DOM 的元素以从其中一个节点返回值。我有一些 JavaScript 可以做到这一点。问题是将值返回到我的应用程序的最佳方法。 我看到 UIWebView 有一个功能

stringByEvaluatingJavaScriptFromString

WKWebKit 有功能

func evaluateJavaScript(javaScriptString: String!, completionHandler: ((AnyObject!, NSError!) -> Void)!)

那么它们之间的主要区别是什么?哪个更好?为什么适合我的用例?

最佳答案

总的来说,WKWebView 在几个方面与 UIWebView 不同

  • 它使用与 Safari 相同的 Javascript 引擎,因此它在 Javascript 评估时要快得多(它使用即时编译在运行脚本之前将您的脚本编译为机器代码)
  • 它仅支持 iOS8 及更高版本,因此不适用于旧平台
  • 它在单独的进程中运行,因此 WKWebView 代码中的崩溃不会导致整个应用程序崩溃。

为了回答您的具体问题,UIWebView stringByEvaluatingJavaScriptFromString 在等待您的代码运行时阻止您的应用程序,因此是同步的。相比之下,因为 WKWebView 代码是在另一个进程中运行的,所以你必须与它异步交互;您将运行 Javascript 的请求提交给 WebKit 进程,当 JavaScript 评估完成且结果准备就绪时,您的完成处理程序将运行。与此同时,调用evaluateJavaScript的线程会继续执行其他代码。

关于javascript - 用于 JavaScript 的 UIWebView 或 WKWebkit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com