WKWebView中的Javascript - evaluateJavaScript vs addUserScript [英] Javascript in WKWebView - evaluateJavaScript vs addUserScript
问题描述
我正在尝试了解使用WKWebview执行javascript的最佳方式
I am trying to understand the best way to execute javascript with WKWebview
有人可以在使用WKWebView时向我提供用例/最佳实践。
Could someone please give me the use cases / best practices when using WKWebView.
何时使用 addUserScript 和 WKScriptMessageHandler 以及何时使用 evaluateJavaScript
When to use addUserScript and WKScriptMessageHandler and when to use evaluateJavaScript
let jscript = "my script"
let userScript = WKUserScript(source: jscript, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
let userContentController = WKUserContentController()
userContentController.addUserScript(userScript)
let webViewConfiguration = WKWebViewConfiguration()
webViewConfiguration.userContentController = userContentController
webView = WKWebView(frame: self.view.bounds, configuration: webViewConfiguration)
vs
let myScript
self.wkWebView.evaluateJavaScript(script) { (result, error) in
if error != nil {
print("\(error)")
}
}
推荐答案
找到一个很好的解释
http ://jonathanblog2000.blogspot.co.il/2016/11/understanding-ios-wkwebview.html
2.3.2从中注入javascript js DOM的本机代码
强调文本
WKUserContentController允许在DOM树开始加载时添加(和删除)要注入的WKUserScript或完成加载。相反,evaluateJavaScript允许应用程序在 任何 时按需执行javascript代码段。
2.3.2 Inject javascript from native code to js DOM emphasized text WKUserContentController allows add (and remove) a WKUserScript to be injected either when the DOM tree starts to load or finishes to load. On the contrary, evaluateJavaScript allows application to execute a javascript snippet on demand at any time.
这篇关于WKWebView中的Javascript - evaluateJavaScript vs addUserScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!