我已经设置了基本的TVML应用程序。目前,通过JavaScript(TVJS)处理简单事件(例如按下按钮)。
当用户按下按钮(通过TVML模板提供)时,我想要在Swift中运行一些代码来操作UI元素。
最好的方法是什么?
答案 0 :(得分:2)
您可以在TVApplicationControllerDelegate中使用evaluateAppJavaScriptIn方法,如下所示,并在其中编写相应的swift方法; (迅速的一面)
// MARK: TVApplicationControllerDelegate
func appController(_ appController: TVApplicationController, evaluateAppJavaScriptIn jsContext: JSContext){
let debug : @convention(block) (String!) -> Void = {
(string : String!) -> Void in
#if DEBUG
print("[log]: \(string!)\n")
#endif
}
jsContext.setObject(unsafeBitCast(debug, to: AnyObject.self), forKeyedSubscript: "debug" as (NSCopying & NSObjectProtocol)!)
}
之后你可以像这样从TVJS调用这个方法; (js方)
debug('Hello from js to swift...');