【发布时间】:2026-02-20 14:25:01
【问题描述】:
我正在尝试在 Swift 中获取 JavaScript 函数引用并执行它。
最初我在JS端使用arrow function,我的JavaScript函数是这样的。
const invokeCallback = (cbID, args) => {
// do some stuff
}
在 Swift 方面,我使用JSContent 中的objectForKeyedSubscript 来获取上下文全局对象中的invokeCallback 属性。
context?.evaluateScript(jsCodeContent)
let invoke: JSValue? = context?.objectForKeyedSubscript("invokeCallback")
guard let invokeCallback = invoke else { return }
guard !invokeCallback.isUndefined else { return }
invokeCallback.call(withArguments: [cbId, args])
但我不能,结果是undefined。
Printing description of invoke:
▿ Optional<JSValue>
- some : undefined
然后,我尝试使用这种语法来定义function。
function invokeCallback(cbID, args) {
}
我现在可以在 Swift 端检索函数了
Printing description of invokeCallback:
function invokeCallback(cbID, args) {
// ....
}
有人知道为什么第一种情况不起作用而第二种情况起作用吗?请把这些知识分享给我?谢谢
参考:
【问题讨论】:
标签: javascript swift javascriptcore