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

我正在尝试 TVML 开发,并创建了一个小型演示应用程序,我在应用程序启动后立即播放视频。现在问题是按照苹果的指导方针,如果我在我的根页面上并且我按下 siri Remote 上的菜单按钮,那么我的应用程序应该进入后台。

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

注册我的 appDelegate() 成为 FirstResponder 如下 -

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

我只有一个名为 application.js 的 .js 文件,我将它保存在一个文件夹名称服务器中,并按照苹果指南访问它。我什至下载了苹果的 TVMLCatalogUsingTVMLTemplates 项目,但是当我们在根菜单上并按下菜单按钮时,我无法理解他们在哪里添加了将应用程序提交到后台的代码。

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

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

先感谢您 :)

最佳答案

奇怪的是,一个月过去了,竟然悬赏了这个问题,也没有人回答这个问题!!!可能这是一个愚蠢的问题,没有人愿意回答!

我以任何方式得到我的答案,所以我与每个人分享。

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

我想我们需要在我们的应用程序中实现一个 DOM 结构,而苹果提供的模板已经有了它。所以我根据我的需要操纵了模板,现在我在视频播放器上收到菜单按钮事件。所以现在播放列表是我的根 Controller ,视频是它的子 Controller 。当我在播放视频时按下菜单按钮时,它会弹回播放列表 Controller ,然后再次按下菜单按钮将其提交到后台。最后,通过这个解决方案,我的应用程序现在已获得批准并在应用程序商店中上线。

关于javascript - 苹果 TVML : Send APP to background when Menu button pressed on Siri remote,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37486596/

10-13 02:33