Как предотвратить обратное поведение по умолчанию в веб-приложении Amazon Fire TV HTML5?

В некоторых случаях я пытаюсь переопределить поведение возврата по умолчанию и обновить состояние моего приложения, а не запускать событие popstate истории.

Есть ли какое-то другое событие, к которому я должен подключиться, чтобы предотвратить поведение по умолчанию? Я обнаружил, что удаленная кнопка «Назад» запускает событие keydown с e.keyCode === 27

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

Я вижу, что состояние моего приложения ненадолго обновляется, но затем завершается обратное событие.


person Liam Schauerman    schedule 05.10.2016    source источник


Ответы (2)


Ответил на мой собственный вопрос. Слушайте событие «keyup» (не keydown) и preventDefault()

person Liam Schauerman    schedule 06.10.2016

В моем случае (FireOS 7 WebView Chrome 88) мне также пришлось добавить следующее:

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

В противном случае я бы получил взаимодействие с удаленным ключом для двойного огня.

person Arnaud Leyder    schedule 28.05.2021