LG webOS后退事件

Con*_*dor 8 javascript keycode webos smart-tv

目前,我正在开发LG webOS应用程序(使用Vue.js)。一切正常,除了当我按下遥控器上的“后退”按钮时,不会触发“后退”事件。这导致我被迫将函数分配回到上一页,另一个按钮(对用户不友好)而不是正常的返回按钮。

(仅供参考:我正在使用webOS标牌显示)

我已经阅读了有关历史记录API和处理back事件的文档(webOS Back Button),并尝试了以下方法,但是我尝试的方法均无效:

  • 设置disableBackHistoryAPItrueappinfo.json然后在按下后退按钮(键代码461)时手动捕获按下事件。
  • 设置disableBackHistoryAPIfalseappinfo.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)。

-奖励已过期但仍在寻找答案-

bur*_*akk 3

尝试将此代码添加到您的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 来转换代码。

请参阅页面了解更多信息。