WKWebView 中的 Javascript - evaluateJavaScript 与 addUserScript

标签 javascript ios swift wkwebview

我正在尝试了解使用 WKWebview 执行 javascript 的最佳方式

有人可以给我使用 WKWebView 时的用例/最佳实践。

何时使用 addUserScriptWKScriptMessageHandler 以及何时使用 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)

对比

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 从 native 代码注入(inject) js DOM 强调文本 WKUserContentController 允许在 DOM 树开始加载或完成加载时添加(和删除)WKUserScript 以注入(inject)。相反,evaluateJavaScript 允许应用程序在任何时间按需执行 javascript 片段。

关于WKWebView 中的 Javascript - evaluateJavaScript 与 addUserScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488423/

相关文章:

ios - 保存后自动将pdf文件附加到邮件中

ios - 使用 Obj-C Realm,有什么方法可以使用 Swift 中的 NSNumber<RLMInt> 吗?

javascript替换多个正则表达式匹配项之一

ios - Swift UIColor 初始值设定项 - 仅在针对 iPhone5s 时出现编译器错误

javascript - js - 变量取某个值

iphone - 静态标题/导航栏?

ios - 在 iOS 中实时更改播放轨道的速度(节奏)

ios - 来自 2 个节点的 Firebase 查询

javascript - 如何使用android phonegap上传文件?

javascript - 在 IE 中加载和解析 XML