当从 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/