Con*_*dor 8 javascript keycode webos smart-tv
目前,我正在开发LG webOS应用程序(使用Vue.js)。一切正常,除了当我按下遥控器上的“后退”按钮时,不会触发“后退”事件。这导致我被迫将函数分配回到上一页,另一个按钮(对用户不友好)而不是正常的返回按钮。
(仅供参考:我正在使用webOS标牌显示)
我已经阅读了有关历史记录API和处理back事件的文档(webOS Back Button),并尝试了以下方法,但是我尝试的方法均无效:
disableBackHistoryAPI为true,appinfo.json然后在按下后退按钮(键代码461)时手动捕获按下事件。disableBackHistoryAPI为false,appinfo.json然后为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)
}
})
Run Code Online (Sandbox Code Playgroud)
后退按钮是被登记在LG的webOS模拟器(V4.0)。如前所述,我正在使用的框架是Vue.js,我使用Cordova Toast将项目编译为LG webOS(以及将来的Samsung Tizen)。
-奖励已过期但仍在寻找答案-
尝试将此代码添加到您的index.html的头部部分,并"disableBackHistoryAPI": true添加到您的appinfo.json:
<script src="webOSTVjs-1.1.0/webOSTV.js" charset="utf-8"></script>
<script src="webOSTVjs-1.1.0/webOSTV-dev.js" charset="utf-8"></script>
<script type="text/javascript">
window.addEventListener("keydown", function(e) {
console.log("[keyCode] : " + "[" + e.keyCode + "]");
switch (e.keyCode) {
case 461:
console.log("Back key pressed");
webOS.platformBack();
break;
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
请记住,LG webOS 电视不支持 ES6。我想你已经知道了并且使用 Babel 来转换代码。
请参阅此页面了解更多信息。