【发布时间】:2019-03-14 19:58:22
【问题描述】:
我正在关注 Apple 的 Playing Media in a Client-Server App 示例项目。
func executeRemoteMethod(_ methodName: String, completion: @escaping (Bool) -> Void) {
appController?.evaluate(inJavaScriptContext: { (context: JSContext) in
let appObject : JSValue = context.objectForKeyedSubscript("App")
if appObject.hasProperty(methodName) {
appObject.invokeMethod(methodName, withArguments: [])
}
}, completion: completion)
}
在应用程序生命周期事件期间调用该方法,如下所示:
func applicationWillEnterForeground(_ application: UIApplication) {
executeRemoteMethod("onWillEnterForeground", completion: { (success: Bool) in
// ...
})
}
我想知道它是如何工作的。这是为了让原生 iOS 代码库可以将生命周期事件传达给 Javascript 代码吗?当我设置断点时,我看到 executeRemoteMethod 函数被调用。但我认为它实际上并没有做任何事情。如何将其映射到 js 函数?我必须创建一个新的 js 文件还是只在我的 application.js 文件中创建一个新函数?
【问题讨论】:
标签: javascript swift tvos apple-tv tvml