【发布时间】:2019-08-21 08:19:00
【问题描述】:
目前我正在开发一个 LG webOS 应用程序(使用 Vue.js)。一切正常,除了当我按下遥控器上的后退按钮时,后退事件不会触发。这导致我不得不将函数分配给返回上一页的另一个按钮(不是用户友好的),而不是正常的返回按钮。
(仅供参考:我使用的是 webOS 标牌显示器)
我已阅读有关历史 API 和处理返回事件 (webOS Back Button) 的文档并尝试了以下方法,但我尝试的方法均无效:
- 将
appinfo.json中的disableBackHistoryAPI设置为true,然后在按下返回按钮时手动捕获keydown事件(键码461); - 将
appinfo.json中的disableBackHistoryAPI设置为false,然后为popstate事件添加事件监听器 - 反之亦然(因为你永远不知道)
即使试图捕捉后退按钮按下事件(所以捕捉键码 461)也不起作用。该应用程序识别所有其他键码,但按下后退按钮根本不做任何事情(不触发任何事件)。有人对此有任何想法吗?
为了确保问题本身不受应用程序限制,我安装了以下应用程序Back Button Application。相同的结果:没有返回事件。
捕捉关键事件的代码(记录除461之外的所有关键代码):
window.addEventListener('keydown', evt => {
evt = evt || window.event
console.log(evt.keyCode)
if (evt.keyCode === 461) {
router.go(-1)
}
})
后退按钮正在在 LG webOS 模拟器 (v4.0) 上注册。如前所述,我使用的框架是 Vue.js,我使用 Cordova Toast 将我的项目编译到 LG webOS(将来会编译到三星 Tizen)。
-- 赏金已过期,但仍在寻找答案--
【问题讨论】:
-
你能把代码贴在你试图捕捉“keydown”事件的地方吗?
-
@burakk 添加了代码!
-
奇怪的问题,但关键是正常工作吗?如果您可以抓住除此之外的任何其他键,那么遥控器可能存在硬件问题?
-
@noa-dev 可以肯定的是,我尝试了不同的遥控器但仍然是同样的问题。
标签: javascript keycode webos smart-tv