앱티비에서 Hello World.
11885 단어 appleTVJavaScripttvOSSwiftTVML
개시하다
왜냐하면 앱TV 앱이 없는 일본어 HowTo 기사.
나는 제임스 웜스베인 사이트를 참고하여 손을 써 보았다.
http://jamesonquave.com/blog/developing-tvos-apps-for-apple-tv-with-swift/
ViewController 또는 StoryBoard 를 사용하지 않음
javascript에서 XML(TVML)을 만들어 화면에 표시합니다.
(스웨이트 요소가 별로 없다)
할 일
1. Xcode7.1beta로 tvos를 만드는 Single View Application.
2. AppDelegate.m 수정
TVMLKit 가져오기
TVApplication Controller를 추가합니다.
TVAP l cation Controller Delegate를 추가합니다.
시작할 때의 응용 프로그램 방법을 수정합니다.
프로그램이 시작될 때main을 하는 것입니다.파일 목록
App.온런치 방법이 됐어.
AppDelegate.swift
import UIKit
import TVMLKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, TVApplicationControllerDelegate {
var window: UIWindow?
var appController: TVApplicationController?
func application(application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [NSObject: AnyObject]?) -> Bool
{
self.window = UIWindow(frame:UIScreen.mainScreen().bounds)
let appControllerContext = TVApplicationControllerContext()
let jsFilePath = NSURL(string: "http://localhost:8000/main.js")
let javascriptURL = jsFilePath!
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
}
// application以降のメソッドは変更しないので省略します。
}
3. main.js 파일 추가
프로젝트 폴더 > New File > Other > Empty 순으로 마우스 오른쪽 버튼으로 클릭
빈 파일을 만들고main을 명명합니다.js로
main.js에 쓰기 처리합니다.
4. main.js에서 XML을 반환하는 방법 추가
어플리케이션 시작 시 App.onLaunch에서 XML을 만들고 Modal을 표시하는 방법을 추가합니다.
main.js
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) {
alert();
}
App.onExit = function() {
console.log('App finished');
}
// XMLを生成してモーダル表示
function alert() {
var alertXMLString =
`<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
// 表示する文言
<title>Hello AppleTV!</title>
</alertTemplate>
</document>`
var parser = new DOMParser();
var alertDOMElement = parser.parseFromString(alertXMLString, "application/xml");
navigationDocument.presentModal(alertDOMElement);
}
5. info.App Transport Security Settings 추가
화면에 글자를 표시할 준비가 되어 있습니다.
이러다 iOS 9의 ATS가 HTTP 통신을 차단할 수 있어 원활하게 진행되지 않는다.
info.plist에 다음과 같은 App Transport Security Settings 추가
YES로 Allow Arbitrary Loads를 회피합니다.
6. 터미널에서 "pyhon-m SimpleHTTPServer 8000"
명령줄의 항목 폴더main입니다.js가 있는 디렉터리로 이동합니다.
터미널에서 "pyhon-m Simple HTTPServer 8000"을 칩니다.
※ 동작을 확인하면 "control+c"로 종료 가능
7. 어플리케이션 시작
각양각색의 상황이 다 달라서 곤혹스러워서 마침내 준비가 되었다.
프로그램을 시작해 보세요!
총결산
StoryBoard에 Label 설정 값을 배치하는 Hello World는
또 다른 어려움과 재미가 있겠지.
제임스 onquave 사이트에서 왜 이걸 설정해야 하나요?
간단하게 썼으니까 관심 있으신 분들은 읽어주세요.
http://jamesonquave.com/blog/developing-tvos-apps-for-apple-tv-with-swift/
다음 단추를 사용하여 Modal 마이그레이션 설명
[appleTV에서 presentModal 화면 이동 AC 나 13일째!]
http://qiita.com/senseiswift/items/eccc7b48328484c25976
참조 소스
Reference
이 문제에 관하여(앱티비에서 Hello World.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/senseiswift/items/1ba47afa73ecc1760cac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)