tvosAan de slag met tv's


Opmerkingen

Deze sectie geeft een overzicht van wat tv's zijn en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook grote onderwerpen binnen tv's vermelden en een link naar de gerelateerde onderwerpen bevatten. Omdat de documentatie voor tv's nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Voorbeeld voor TVML-app

Voor het starten van tvOS neem ik aan dat je kennis moet hebben van de snelle en iOS-app. Men kan beginnen met het lezen van een artikel uit Apple Reference Document .

Er zijn 2 soorten tv-apps die we kunnen maken, een traditionele app, dat wil zeggen dat de xcode-code hetzelfde is als in de iOS-app.

Hier nemen we een voorbeeld van een ander type tv-app die de Client-server-app wordt genoemd

[! [voer hier de afbeeldingsbeschrijving in] [2]] [2]

Een client-server-app bouwen:

  1. Open Xcode en maak een nieuw project.

  2. Selecteer de Single View Application-sjabloon van tvOS. voer hier de afbeeldingsbeschrijving in

  3. Verwijder het viewcontrollerbestand en het hoofdverhaal van de app.

  4. Open het bestand info.plist en verwijder het hoofdnaambestand van het storyboardbestand.

OPMERKING Zie [NSAppTransportSecurity] [3] om uw netwerkbeveiliging in te stellen.

  1. Breng deze wijzigingen aan in het bestand AppDelegate.swift:
    • Voeg import TVMLKit toe.
    • Wijzig de klassendeclaratie in klasse AppDelegate: UIResponder, UIApplicationDelegate, TVApplicationControllerDelegate {.De volgende globale variabele aan uw klasse toevoegen: var appController: TVApplicationController?
    • Toepassing wijzigen: didfinishLaunchingWithOptions: volgens de code in de onderstaande lijst:
 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
    }
 

De code in het bovenstaande voorbeeld laadt een JavaScript-bestand dat vervolgens een TVML-pagina laadt en weergeeft in de simulator of op een televisiescherm als een nieuwe Apple TV is aangesloten op uw computer. Zie Apple TV JavaScript Framework Reference voor meer informatie over JavaScript-klassen.

JavaScript in listing 2-1 laadt een TVML-pagina (listing 2-2) die een waarschuwing weergeeft met de vraag of de gebruiker wil upgraden naar de premiumversie van uw app. Nadat de pagina is geladen, wordt deze op de navigatiestapel geplaatst. Het besturingssysteem geeft deze vervolgens weer aan de gebruiker. Zie Apple TV Markup Language Reference voor meer informatie over beschikbare TVML-sjablonen en -elementen.

Lijst 2-1 Een TVML-pagina op de navigatiestapel plaatsen

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');
}
 

Lijst 2-2A TVML-pagina om een waarschuwing weer te geven

<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>