2016-07-04 12 views
0

基本的なTVMLアプリケーションをセットアップしました。現在、単純なイベント(ボタンプレスなど)はJavaScript(TVJS)を介して処理されます。Apple TVのSwiftコードTVML TVJS JavaScript App

ユーザーがボタン(TVMLテンプレートから提供される)を押すと、UIエレメントを操作するSwiftで実行するコードが必要になります。

これを行うにはどうすればよいですか?

+2

はこれを参照してください:[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...'); 
関連する問題