如何防止 Amazon Fire TV HTML5 网络应用程序中的默认返回行为?
How to prevent default back behavior in Amazon Fire TV HTML5 web app?
我试图在某些情况下覆盖默认的返回行为,并更新我的应用程序状态而不是触发历史 popstate 事件。
有没有我应该挂钩的其他事件来防止默认行为?我发现远程后退按钮使用 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);
}
}
我看到我的应用程序状态短暂更新,但随后返回事件完成。
回答了我自己的问题。监听 'keyup'(不是 keydown)事件和 preventDefault()
就我而言(FireOS 7 WebView Chrome 88)我还必须添加以下内容:
document.addEventListener('keypress', function (event) {
event.stopPropagation();
event.preventDefault();
});
否则我会让远程按键交互双发。
我试图在某些情况下覆盖默认的返回行为,并更新我的应用程序状态而不是触发历史 popstate 事件。
有没有我应该挂钩的其他事件来防止默认行为?我发现远程后退按钮使用 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);
}
}
我看到我的应用程序状态短暂更新,但随后返回事件完成。
回答了我自己的问题。监听 'keyup'(不是 keydown)事件和 preventDefault()
就我而言(FireOS 7 WebView Chrome 88)我还必须添加以下内容:
document.addEventListener('keypress', function (event) {
event.stopPropagation();
event.preventDefault();
});
否则我会让远程按键交互双发。