如何防止Amazon Fire TV HTML5 Web应用程序中的默认返回行为?

时间:2016-10-05 19:26:09

标签: javascript html5 amazon amazon-fire-tv

我试图在某些情况下覆盖默认的后退行为,并更新我的应用程序状态,而不是触发历史记录popstate事件。

是否还有其他一些事件我应该联系以防止默认行为?我发现远程后退按钮使用e.keyCode === 27

触发了一个keydown事件

const FIRE_REMOTE_BACK = 27;
handleBackButton = (e) => {
  e.stopImmediatePropagation();
  e.stopPropagation();
  e.preventDefault();
  // update app state
}
handleKeyDown = (e) => {
  const {keyCode} = e;
  
  if (keyCode === FIRE_REMOTE_BACK) {
    return handleBackButton(e);
  }
}

我看到我的应用程序状态已暂时更新,但后面的事件已完成。

2 个答案:

答案 0 :(得分:0)

回答了我自己的问题。聆听' keyup' (不是keydown)事件和preventDefault()

答案 1 :(得分:0)

就我而言(FireOS 7 WebView Chrome 88),我还必须添加以下内容:

document.addEventListener('keypress', function (event) {
  event.stopPropagation();
  event.preventDefault();
});

否则我会让远程按键交互双枪。