0
基本的なTVMLアプリケーションをセットアップしました。現在、単純なイベント(ボタンプレスなど)はJavaScript(TVJS)を介して処理されます。Apple TVのSwiftコードTVML TVJS JavaScript App
ユーザーがボタン(TVMLテンプレートから提供される)を押すと、UIエレメントを操作するSwiftで実行するコードが必要になります。
これを行うにはどうすればよいですか?
基本的なTVMLアプリケーションをセットアップしました。現在、単純なイベント(ボタンプレスなど)はJavaScript(TVJS)を介して処理されます。Apple TVのSwiftコードTVML TVJS JavaScript App
ユーザーがボタン(TVMLテンプレートから提供される)を押すと、UIエレメントを操作するSwiftで実行するコードが必要になります。
これを行うにはどうすればよいですか?
下記のように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...');
はこれを参照してください:[tvOSアプリの両方でネイティブとTVMLを使用するには?](http://stackoverflow.com/questions/37765886/how-to-use-both-native- and-tvml-in-a-tvos-app)を使用します。 – OOPer