Я слежу за примером проекта Apple для Воспроизведение мультимедиа в приложении клиент-сервер .
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
?