2016-07-04 1 views
0

기본 TVML 애플리케이션을 설정했습니다. 현재 간단한 이벤트 (예 : 버튼 누름)는 JavaScript (TVJS)를 통해 처리됩니다.Apple TV의 Swift 코드 TVML TVJS 자바 스크립트 앱

사용자가 TVML 템플릿을 통해 제공되는 버튼을 누르면 대신 UI 요소를 조작하는 일부 코드를 Swift에서 실행하고 싶습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

+2

이 참조 : [A tvOS 응용 프로그램에서 모두 네이티브 및 TVML를 사용하는 방법?] (http://stackoverflow.com/questions/37765886/how-to-use-both-native- and-tvml-in-a-tvos-app). – OOPer

답변

1

아래와 같이 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...');