TVML 應用示例
對於啟動 tvOS,我認為必須具備 swift 和 iOS 應用程式的知識。可以從 Apple 參考文件開始閱讀文章。
有兩種型別的電視應用程式,我們可以建立一個是傳統的應用程式,即在 xcode 程式碼中建立將類似於我們在 iOS 應用程式中。
這裡我們以其他型別的電視應用程式為例,稱為客戶端伺服器應用程式
[![在此處輸入圖片說明] [2]] [2]
要構建客戶端 - 伺服器應用程式:
-
開啟 Xcode 並建立一個新專案。
-
從 tvOS 中選擇 Single View Application 模板。
-
刪除檢視控制器檔案和應用程式的主故事板。
-
開啟 info.plist 檔案並刪除主故事板檔案基本名稱條目。
注意要設定網路安全性,請參閱[NSAppTransportSecurity] [3]。
- 對 AppDelegate.swift 檔案進行以下更改:
- 新增匯入 TVMLKit。
- 將類宣告更改為 AppDelegate 類:UIResponder,UIApplicationDelegate,TVApplicationControllerDelegate {。將以下全域性變數新增到你的類:var appController:TVApplicationController?
- 修改應用程式: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
appControllerContext.launchOptions["BASEURL"] = TVBaseURL
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
}
上面示例中的程式碼載入一個 JavaScript 檔案,然後載入一個 TVML 頁面並將其顯示在模擬器或電視螢幕上,如果新的 Apple TV 連線到你的計算機。有關 JavaScript 類的更多資訊,請參閱 Apple TV JavaScript Framework Reference。
清單 2-1 中的 JavaScript 載入了一個 TVML 頁面(清單 2-2),該頁面顯示一個警告,詢問使用者是否要升級到應用程式的高階版本。載入頁面後,將其推送到導航堆疊然後作業系統將其顯示給使用者。有關可用 TVML 模板和元素的更多資訊,請參閱 Apple TV 標記語言參考。
清單 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');
}
清單 2-2A TVML 頁面顯示警報
<document>
<alertTemplate>
<title>Update to premium</title>
<description>Go ad free by updating to the premium version</description>
<button>
<text>Update Now</text>
</button>
<button>
<text>Cancel</text>
</button>
</alertTemplate>
</document>