Macos 使用WebView将闭包从JavaScript传递给Swift

Macos 使用WebView将闭包从JavaScript传递给Swift,macos,swift,webview,webkit,Macos,Swift,Webview,Webkit,各位, 我正在为混合MacOSX应用程序编写一个示例。 HTML+JavaScript作为视图,Swift作为控制器 JavaScript代码应该能够设置回调,该回调将在程序执行的某个点从swift端触发 JavaScript代码 ... controller.setCallback(function() { /* do something useful */ }) ... setCallback的快速实现 func setCallback(var callback: WebScriptObj

各位,

我正在为混合MacOSX应用程序编写一个示例。 HTML+JavaScript作为视图,Swift作为控制器

JavaScript代码应该能够设置回调,该回调将在程序执行的某个点从swift端触发

JavaScript代码

...
controller.setCallback(function() { /* do something useful */ })
...
setCallback的快速实现

func setCallback(var callback: WebScriptObject!) {
        JSObjectCallAsFunction(...)
}
JSObjectCallAsFunction需要JSObject!作为论据

var object = callback.JSObject()

但现在对象是非托管类型。我应该如何使它成为JSObject

所以你想识别javascript函数何时完成?我只需要执行它。据我所知,我应该将WebScriptObject作为函数参数,并为从WebScriptObjects检索到的JSObject调用JSObjectCallAsFunction这是一个将值从javascript传递给swift的github项目: