2016-05-27 1 views
3

Je ne sais pas comment envoyer l'application en arrière-plan lorsque le bouton "Menu" est pressé depuis la télécommande Siri dans l'application TVML. Je suis nouveau au développement de TVML. J'ai essayé le développement de TVML et j'ai créé une petite application de démonstration où je joue à la vidéo dès le lancement de l'application. Maintenant, le problème est selon les directives d'Apple, si je suis sur ma page racine et j'appuie sur le bouton de menu sur Siri à distance alors mon application devrait aller à l'arrière-plan.Apple TVML: Envoie l'application en arrière-plan lorsque le bouton Menu est enfoncé sur la télécommande Siri

Maintenant, mon application ne se comporte pas en conséquence. J'ai essayé plusieurs solutions comme:

enregistrer mon appDelegate() pour devenir FirstResponder comme suit -

UIApplication.sharedApplication().beginReceivingRemoteControlEvents() 
self.becomeFirstResponder() 

override func canBecomeFirstResponder() -> Bool { 
    return true 
} 

override func remoteControlReceivedWithEvent(event: UIEvent?) { 

} 

Redéfinition pressBegin() et pressEnded() -

override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?) { 
     super.pressesBegan(presses, withEvent: event) 
     if presses.first?.type == UIPressType.Menu { 


     } 
} 

override func pressesEnded(presses: Set<UIPress>, withEvent event: UIPressesEvent?) { 
     super.pressesEnded(presses, withEvent: event) 

     if presses.first?.type == UIPressType.Menu { 

      exit(0) 
     } 
} 

Je n'ai qu'un. js fichier nommé application.js et je l'ai gardé dans un serveur de nom de dossier et y accéder selon les directives des pommes. J'ai même téléchargé le projet TVMLCatalogUsingTVMLTemplates d'Apple, mais je ne suis pas en mesure de comprendre où ils ont ajouté du code pour envoyer l'application en arrière-plan lorsque nous sommes dans le menu racine et appuyez sur le bouton de menu.

J'ai juste une fonction dans application.js et j'appelle dans App.onLaunch = function(options){}

Tout fonctionne parfaitement bien. Je veux juste savoir quel code dois-je écrire dans mon fichier application.js ou appDelegate que mon application va à l'arrière-plan lorsque le bouton de menu est pressé. Note: Je n'ai pas de hiérarchie ou de contrôleurs enfants tout le code s'exécute à partir de application.js Ainsi, mon application.js est le menu racine et je dois juste soumettre l'application en arrière-plan sur le bouton de menu.

Merci d'avance :)

Répondre

2

Il est étrange que ça a été un mois et personne n'a répondu à cette question, même si une prime a été mis à cette question !!! Peut-être que c'était une question stupide et aucun corps pris la peine de répondre!

De toute façon j'ai eu ma réponse, donc je la partage avec tout le monde.

En fait, le problème était que le lecteur vidéo ne détectait pas le bouton du menu. Je suppose que c'était l'annulation de cet événement et donc l'application ne se soumettait pas à l'arrière-plan. J'ai utilisé les modèles fournis par Apple et ça a commencé à fonctionner!

Je suppose que nous devons implémenter une structure DOM dans notre application et les modèles fournis par Apple l'ont déjà. J'ai donc manipulé les modèles en fonction de mes besoins et maintenant je reçois un événement de bouton de menu sur le lecteur vidéo. Alors maintenant, une liste de lecture est mon contrôleur racine et la vidéo est son contrôleur enfant. Lorsque j'appuie sur le bouton de menu pendant la lecture d'une vidéo, il revient au contrôleur de liste de lecture et de nouveau sur le bouton de menu, il est envoyé à l'arrière-plan. Enfin, avec cette solution, mon application est maintenant approuvée et en direct sur l'App Store.

0

Je viens de trouver votre question aujourd'hui.

Je pense que la meilleure façon de le faire est de supprimer tout l'historique de la navigation.

Pour ce faire, vous devez appeler la fonction

navigationDocument.clear() 

Cela entraînera de supprimer toutes les pages précédentes et lorsque le bouton accessibles du menu appuyez sur pour revenir à l'écran principal.

Espérons que cela pourrait vous aider.