3

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

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

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

注册我的 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 中编写什么代码,以便在按下菜单按钮时我的应用程序进入后台。注意:我没有任何层次结构或子控制器,所有代码都从 application.js 执行因此我的 application.js 是根菜单,我只需在按下菜单按钮时将应用程序提交到后台。

先感谢您 :)

4

2 回答 2

2

奇怪的是已经一个月了,即使设置了赏金这个问题也没有人回答这个问题!可能这是一个愚蠢的问题,没有人愿意回答!

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

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

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

于 2016-07-13T09:43:56.133 回答
0

我今天才发现你的问题。

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

为此,您需要调用该函数

navigationDocument.clear()

这将导致删除所有以前访问的页面,并且当按下菜单按钮时将返回主屏幕。

希望它可以帮助你。

于 2016-07-26T11:31:31.063 回答