ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 20439|回复: 1
上一主题 下一主题
[分享]

Apple TV编程指南——创建Client-Ser

[复制链接]
跳转到指定楼层
楼主
发表于 2015-12-2 10:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 | 来自浙江
Apple TV编程指南——创建Client-Ser

创建C-S应用程序(Creating a Client-Server App )
C-S应用跟其他应用在使用JavaScript和TVML上略有不同。Xcode应用的主要功能是访问一个主JavaScript文件,然后展示由TVML文件创建的页面到屏幕上。
图2-1表示出C-S模型

Apple TV编程指南——创建Client-Ser

JavaScript文件加载TVML页,并将每一页推到导航堆栈上。当用户浏览你的应用程序,TVML页在导航堆栈上入栈和出栈。用户关闭你的应用程序后,Apple TV首屏幕将出现。图2-2显示了一个基本的应用程序流程。
图 2-2C/S 应用程序流

Apple TV编程指南——创建Client-Ser

构建C/S应用程序:
  • 打开Xcode,创建一个新项目。
  • 从tvOS中选择单视图应用程序模板。
  • 删除view controller文件和应用程序的main storyboard。
  • 打开info.plist文件并删除main storyboard文件的输入名称。

注:更多关于设置网络安全的信息,查看App Transport Security Technote.
5. 对AppDelegate.swift 进行如下修改:
  • 加入引用TVMLKit
  • 修改类描述为class AppDelegate: UIResponder, UIApplicationDelegate, TVApplicationControllerDelegate {.
  • 加入在你的class中加入如下全局变量:var appController: TVApplicationController?
  • 根据如下修改application:dIDFinishLaunchingWithOptions:

func?application(application:?UIApplication,?dIDFinishLaunchingWithOptions?launchOptions:?[NSObject:?AnyObject]?)?->?Bool?{????self.window?=?UIWindow(frame:?UIScreen.mainScreen.bounds)????????let?appControllerContext?=?TVApplicationControllerContext????????let?javascriptURL?=?NSURL(string:?"Enter?path?to?your?JavaScript?file?here")????????appControllerContext.javaScriptApplicationURL?=?javascriptURL!????if?let?options?=?launchOptions?{????????for?(kind,?value)?in?options?{????????????if?let?kindStr?=?kind?as??String?{????????????????appControllerContext.launchOptions[kindStr]?=?value????????????}????????}????}????????self.appController?=?TVApplicationController(context:?appControllerContext,?window:?self.window,?delegate:?self)????????return?true}当一台苹果电视连接到你的计算机时,你可以通过上面例子加载一个TVML页面并显示在模拟器或在电视屏幕上。关于JavaScript类的更多信息,参见 TVJS Framework Reference.

Listing 2-1中 JavaScript 加载了一个询问用户是否想要更新APP高级版本的提示框的 TVML 页面,(Listing 2-2) 。页面加载完成后被推到导航栈上,然后操作系统展示给用户。关于 TVML 模板和元素的更多信息,请查看Apple TV Markup Language Reference.
Listing 2-1 将 TVML 页面推到导航栈上
function?getDocument(url)?{????var?templateXHR?=?new?XMLHttpRequest;????templateXHR.responseType?=?"document";????templateXHR.addEventListener("load",?function?{pushDoc(templateXHR.responseXML);},?false);????templateXHR.open("GET",?url,?true);????templateXHR.send;????return?templateXHR;}?function?pushDoc(document)?{????navigationDocument.pushDocument(document);}?App.onLaunch?=?function(options)?{????var?templateURL?=?'Enter?path?to?your?server?here/alertTemplate.tvml';????getDocument(templateURL);}?App.onExit?=?function?{????console.log('App?finished');}Listing 2-2 展示提示框的 TVML页面

Apple TV编程指南——创建Client-Ser

重要
当从web服务器上访问JavaScript和XML文件时,你通常需要确保页面上的任何更改对于client app来说都是可见的。这样你的服务器就必须确保client不会缓存任何页面。当服务器响应不应缓存的页面的HTTP请求时,服务器应当在HTTP响应头文件中包含Cache-Control:no-cache.



上一篇:Apple TV3连接电视无信号
下一篇:Apple TV编程指南——资源管理
沙发
发表于 2015-12-2 10:20 | 只看该作者 | 来自浙江
看起来好高级的样子啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-4-25 19:59 , Processed in 0.075056 second(s), 14 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表