
- JavaScriptCore Widget.
- JavaScriptCore 小工具.

dependencies: [
.package(url: "https://github.com/William-Weng/WWJavaScriptContext.git", .upToNextMajor(from: "1.0.4"))
]
函数 |
功能 |
build(script:) |
建立执行完成的环境 |
callFunctionName(_:arguments:) |
执行 javaScript 程序 |
evaluateScript(_:) |
执行 Script |
insertNativeFunctionName(_:handler:) |
创建 Swift 函数供 js 使用 |
removeNativeFunctionName(_:) |
移除 Swift 函数 |
createdNativeFuntions() |
取得已建立的 Swift 函数 |
exceptionHandler(_:) |
响应 js 控制台错误 |
import UIKit
import WWJavaScriptContext
import WWPrint
final class ViewController: UIViewController {
private var context: WWJavaScriptContext!
override func viewDidLoad() {
super.viewDidLoad()
simpleDemo()
addNumbers(num1: 5, num2: 6)
removeFunction()
}
}
private extension ViewController {
func simpleDemo() {
let script = "var jsFunc = function(message) { return '測試用訊息:' + message; }"
context = WWJavaScriptContext.build(script: script)
context.exceptionHandler { context, exception in
if let exception = exception { wwPrint(exception) }
}
wwPrint(context.callFunctionName("jsFunc", arguments: ["William"]))
}
func addNumbers(num1: Int, num2: Int) {
let addNumbersHandler: @convention(block) (Int, Int) -> Int = { num1, num2 in return num1 + num2 }
_ = context.insertNativeFunctionName("add", handler: addNumbersHandler)
wwPrint("自訂function:\(context.createdNativeFuntions())")
wwPrint(context.callFunctionName("add", arguments: [num1, num2]))
}
func removeFunction() {
context.exceptionHandler { context, exception in
if let exception = exception { wwPrint(exception) }
}
_ = context.removeNativeFunctionName("add")
wwPrint(context.callFunctionName("add", arguments: [1, 2]))
}
}