我想加载请求的网页并访问DOM的元素以从其中一个节点返回值。我有一些JavaScript可以做到这一点。问题是将值返回到我的应用程序的最佳方法。 我看到UIWebView有一个功能
stringByEvaluatingJavaScriptFromString
和WKWebKit有功能
func evaluateJavaScript(javaScriptString:String!,completionHandler:((AnyObject!,NSError!) - > Void)!)
那么它们之间的主要区别是哪个更好,为什么我的用例呢?
答案 0 :(得分:8)
通常,WKWebView在某些方面与UIWebView不同
要回答您的具体问题,UIWebView stringByEvaluatingJavaScriptFromString
会在等待代码运行时阻止您的应用,因此同步。相比之下,因为WKWebView代码在另一个进程中运行,所以必须异步地与它进行交互;您提交运行Javascript到WebKit流程的请求,并在JavaScript评估完成并且结果准备就绪时运行完成处理程序。同时,调用evaluateJavaScript
的线程将继续执行其他代码。