【问题标题】:TVML custom templateTVML 自定义模板
【发布时间】:2015-12-07 10:22:57
【问题描述】:
我正在使用tvOS 为 Apple TV 建立一个网上商店,我是新手!
我想知道,你能用 xml 编写你自己的模板,还是坚持使用苹果提供的默认模板?也许可以将不同的模板相互组合?
【问题讨论】:
标签:
ios
tvos
apple-tv
tvml
tvjs
【解决方案1】:
有点。您可以编写自己的模板,但它涉及几个不同的部分。另外,我不知道自定义编写模板与NavigationDocument 交互的方式。因此,您仅限于:
- 所有 Apple 模板
- 所有自定义模板
- 带有一些自定义叶模板的 Apple 模板。
(3) 我的意思是您使用 Apple 模板来驱动您的大部分页面,但您推送的最后一页是全屏模式视图,它们只是覆盖了 NavigationDocument 模板堆栈。
假设您想尝试 (2) 或 (3),请继续阅读。
原生部分
首先,您需要原生部分。这是用于构建基于 UIKit 的类的 Objective-C 或 Swift 代码,这些类可以显示您的自定义 UI 并处理事件。
native 部分使用JavaScriptCore 在TVApplicationControllerDelegate 的-[appController:evaluateAppJavaScriptInContext:] 方法中将自己暴露给JavaScript 运行时。
为此我推荐使用 Objective-C,因为使用 JavaScriptCore 所需的语法更简单。
模板处理部分
这可以是 JavaScript 或本机。它读取您的 JSON 或 XML 数据,通过您之前公开的接口创建本机对象,然后将 JSON/XML 值映射到本机对象的属性中。最后,您需要将视图呈现到屏幕上,或者覆盖 NavigationDocument 模板堆栈,或者使用您自己的自定义导航堆栈。