Apple から TVMLCatalog アプリケーションをダウンロードしました。コードは 2 つの部分に分割されます。
- クライアント- TVML および TVJS ファイルを保持します
- TVMLCatalog プロジェクト- これは、TVML/TVJS をセットアップする基本的な Xcode プロジェクトです。
TVMLCatalog Projectと同じバンドルでクライアントTVJS ファイルをホストしようとしています。
AppDelegate didFinishLaunching を次のように変更しました。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
/*
Create the TVApplicationControllerContext for this application
and set the properties that will be passed to the `App.onLaunch` function
in JavaScript.
*/
let appControllerContext = TVApplicationControllerContext()
/*
The JavaScript URL is used to create the JavaScript context for your
TVMLKit application. Although it is possible to separate your JavaScript
into separate files, to help reduce the launch time of your application
we recommend creating minified and compressed version of this resource.
This will allow for the resource to be retrieved and UI presented to
the user quickly.
*/
TVBootURL = NSBundle.mainBundle().pathForResource("application", ofType: "js")!
TVBaseURL = TVBootURL.stringByReplacingOccurrencesOfString("application.js", withString: "")
if let javaScriptURL = NSURL(string: TVBootURL) {
appControllerContext.javaScriptApplicationURL = javaScriptURL
}
appControllerContext.launchOptions["BASEURL"] = TVBaseURL
if let launchOptions = launchOptions as? [String: AnyObject] {
for (kind, value) in launchOptions {
appControllerContext.launchOptions[kind] = value
}
}
appController = TVApplicationController(context: appControllerContext, window: window, delegate: self)
return true
}
これは、クライアントをインポートした方法を示すスクリーンショットです: Xcode スクリーンショット
プロジェクトを実行すると (シミュレーターでのみテストされます)、AppleTV シミュレーター画面に次のメッセージが表示されます。
アプリケーションの起動エラー - 操作を完了できませんでした。(TVMLKitErrorDomain エラー 3.)
このように TVJS ファイルからローカルにロードできますか?