【发布时间】:2016-01-13 17:58:19
【问题描述】:
我试图用来自 Swift 的回调调用一个 Javascript 函数,但我没有让它工作。
我拥有的是:
Javascript:
global.calculateWithCb = function(temp,cb){
cb(5 * temp)
}
global.calculate = function(temp) {
return 5 * temp
}
斯威夫特:
let context = JSContext()
let scriptURL = NSURL(fileURLWithPath: String("XXX/bundle.js"))
let script : String = try String(contentsOfURL:scriptURL, encoding: NSUTF8StringEncoding)
var jsSource: String! = script
jsSource = "var window = this; \(jsSource)"
context.evaluateScript(jsSource)
let calculate = context.objectForKeyedSubscript("calculate")
let output = calculate.callWithArguments([40]).toNumber()
所以计算函数按预期工作,但我真的不知道如何将块作为回调参数传递。我在网上搜索了很多,但我没有找到任何提示,也许有人可以指出我正确的方向?
【问题讨论】:
-
你有没有想过这个问题?我现在正在尝试这样做。
-
我已经完全使用 Objective C,这对你有帮助吗?
-
你好@Sprotte。您是如何解决这个问题的?
标签: javascript ios swift callback javascriptcore