xbox一个控制器可防止Javascript使用默认的后退按钮行为

时间:2019-07-11 03:29:41

标签: javascript xbox-one

我有一个xbox应用程序,该应用程序的webview包含一个javascript应用程序。在该应用程序中,我有这样的内容:

navigator.gamepadInputEmulation = 'gamepad';

window.addEventListener('onkeydown', function(event) {
  if (event.keyCode === 196) {
    event.stopImmediatePropagation();
    // custom back button logic
  }
});

自定义后退按钮逻辑运行,但是即使使用event.stopImmediatePropagation();,默认控制器后退按钮逻辑也运行。有什么解决办法吗?

如果我设置了navigator.gamepadInputEmulation = 'keyboard';,此问题将消失,但是所有控制器输入事件都会运行两次。

1 个答案:

答案 0 :(得分:0)

这是对您的快速修复,只需拦截“ backrequested”并将其设置为已处理:

var systemNavManager = Windows.UI.Core.SystemNavigationManager.getForCurrentView();
systemNavManager.addEventListener("backrequested", (event)=>event.handled = true, false);

希望有帮助!