首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 19223|回復(fù): 1
上一主題 下一主題
[分享]

Apple TV編程指南——?jiǎng)?chuàng)建Client-Ser

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2015-12-2 10:13 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自浙江
Apple TV編程指南——?jiǎng)?chuàng)建Client-Ser

創(chuàng)建C-S應(yīng)用程序(Creating a Client-Server App )
C-S應(yīng)用跟其他應(yīng)用在使用JavaScript和TVML上略有不同。Xcode應(yīng)用的主要功能是訪問一個(gè)主JavaScript文件,然后展示由TVML文件創(chuàng)建的頁面到屏幕上。
圖2-1表示出C-S模型

Apple TV編程指南——?jiǎng)?chuàng)建Client-Ser

JavaScript文件加載TVML頁,并將每一頁推到導(dǎo)航堆棧上。當(dāng)用戶瀏覽你的應(yīng)用程序,TVML頁在導(dǎo)航堆棧上入棧和出棧。用戶關(guān)閉你的應(yīng)用程序后,Apple TV首屏幕將出現(xiàn)。圖2-2顯示了一個(gè)基本的應(yīng)用程序流程。
圖 2-2C/S 應(yīng)用程序流

Apple TV編程指南——?jiǎng)?chuàng)建Client-Ser

構(gòu)建C/S應(yīng)用程序:
  • 打開Xcode,創(chuàng)建一個(gè)新項(xiàng)目。
  • 從tvOS中選擇單視圖應(yīng)用程序模板。
  • 刪除view controller文件和應(yīng)用程序的main storyboard。
  • 打開info.plist文件并刪除main storyboard文件的輸入名稱。

注:更多關(guān)于設(shè)置網(wǎng)絡(luò)安全的信息,查看App Transport Security Technote.
5. 對(duì)AppDelegate.swift 進(jìn)行如下修改:
  • 加入引用TVMLKit
  • 修改類描述為class AppDelegate: UIResponder, UIApplicationDelegate, TVApplicationControllerDelegate {.
  • 加入在你的class中加入如下全局變量:var appController: TVApplicationController?
  • 根據(jù)如下修改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}當(dāng)一臺(tái)蘋果電視連接到你的計(jì)算機(jī)時(shí),你可以通過上面例子加載一個(gè)TVML頁面并顯示在模擬器或在電視屏幕上。關(guān)于JavaScript類的更多信息,參見 TVJS Framework Reference.

Listing 2-1中 JavaScript 加載了一個(gè)詢問用戶是否想要更新APP高級(jí)版本的提示框的 TVML 頁面,(Listing 2-2) 。頁面加載完成后被推到導(dǎo)航棧上,然后操作系統(tǒng)展示給用戶。關(guān)于 TVML 模板和元素的更多信息,請(qǐng)查看Apple TV Markup Language Reference.
Listing 2-1 將 TVML 頁面推到導(dǎo)航棧上
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編程指南——?jiǎng)?chuàng)建Client-Ser

重要
當(dāng)從web服務(wù)器上訪問JavaScript和XML文件時(shí),你通常需要確保頁面上的任何更改對(duì)于client app來說都是可見的。這樣你的服務(wù)器就必須確保client不會(huì)緩存任何頁面。當(dāng)服務(wù)器響應(yīng)不應(yīng)緩存的頁面的HTTP請(qǐng)求時(shí),服務(wù)器應(yīng)當(dāng)在HTTP響應(yīng)頭文件中包含Cache-Control:no-cache.



上一篇:Apple TV3連接電視無信號(hào)
下一篇:Apple TV編程指南——資源管理
沙發(fā)
發(fā)表于 2015-12-2 10:20 | 只看該作者 | 來自浙江
看起來好高級(jí)的樣子啊

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-11-16 08:31 , Processed in 0.076741 second(s), 14 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表