WKWebView中的Javascript - evaluateJavaScript vs addUserScript [英] Javascript in WKWebView - evaluateJavaScript vs addUserScript

查看:2243
本文介绍了WKWebView中的Javascript - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆