Javascript Apple TVML:按下Siri remote上的菜单按钮时将应用程序发送到后台

Javascript Apple TVML:按下Siri remote上的菜单按钮时将应用程序发送到后台,javascript,swift,tvos,apple-tv,tvml,Javascript,Swift,Tvos,Apple Tv,Tvml,当TVML应用程序中的Siri remote按下“菜单”按钮时,我不知道如何将应用程序发送到后台。我是TVML开发的新手 我在尝试TVML开发,并创建了一个小的演示应用程序,应用程序一启动,我就在其中播放视频。现在的问题是根据苹果的指导原则,如果我在我的根页面上,按下siri remote上的菜单按钮,那么我的应用程序应该进入后台 现在我的应用程序没有相应的行为。我尝试了许多解决方案,如: 将我的appDelegate()注册为第一响应者,如下所示- UIApplication.sharedAp

当TVML应用程序中的Siri remote按下“菜单”按钮时,我不知道如何将应用程序发送到后台。我是TVML开发的新手

我在尝试TVML开发,并创建了一个小的演示应用程序,应用程序一启动,我就在其中播放视频。现在的问题是根据苹果的指导原则,如果我在我的根页面上,按下siri remote上的菜单按钮,那么我的应用程序应该进入后台

现在我的应用程序没有相应的行为。我尝试了许多解决方案,如:

将我的appDelegate()注册为第一响应者,如下所示-

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

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

override func remoteControlReceivedWithEvent(event: UIEvent?) {

}
覆盖pressBegin()和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)
        }
}
override func PressesBegined(按下:Set,withEvent事件:UIPresseEvent?){
超级。按开始(按,带事件:事件)
如果按.first?.type==UIPressType.Menu{
}
}
override func PresseEnd(按:设置,带事件:UIPresseEvent?){
super.PresseEnd(按,带事件:事件)
如果按.first?.type==UIPressType.Menu{
出口(0)
}
}
我只有一个名为application.js的.js文件,我把它保存在一个名为server的文件夹中,并按照苹果的指导方针访问它。我甚至下载了苹果的TVMLCatalogsingTVMLTemplates项目,但我不知道他们在哪里添加了代码,当我们在根菜单上并按下菜单按钮时,将应用程序提交到后台

我在application.js中只有一个函数,我在
App.onLaunch=function(options){}

一切都很好。我只是想知道我应该在application.js文件或appDelegate中编写什么代码,当按下菜单按钮时,我的应用程序将进入后台。 注意:我没有任何层次结构或子控制器,所有代码都从application.js执行,因此我的application.js是根菜单,我只需按菜单按钮将应用程序提交到后台


提前谢谢:)

奇怪的是,已经一个月了,即使是在悬赏的时候也没有人回答这个问题!!!也许这是一个愚蠢的问题,没有人愿意回答

不管怎样,我都能得到我的答案,所以我要和每个人分享

实际上,问题是视频播放器没有感觉到菜单按钮按下。我猜它覆盖了这个事件,所以应用程序并没有提交到后台。我使用了苹果提供的模板,它开始工作了


我想我们需要在我们的应用程序中实现DOM结构,苹果提供的模板已经有了。所以我根据我的需要操纵模板,现在我在视频播放器上获得菜单按钮事件。现在播放列表是我的根控制器,视频是它的子控制器。当我在播放视频时按下菜单按钮时,它会弹回到播放列表控制器,然后在菜单按钮上再次按下它以提交到背景。最后,通过此解决方案,我的应用程序现在已获得批准,并在app store上运行。

我今天刚刚发现了您的问题

我认为最好的方法是从导航中删除所有历史记录

为此,需要调用函数

navigationDocument.clear()
这将导致删除之前访问的所有页面,按下菜单按钮时将返回主屏幕

希望它能帮助你