首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LG webOS背事件

LG webOS背事件
EN

Stack Overflow用户
提问于 2019-08-21 08:19:00
回答 3查看 2.9K关注 0票数 9

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

(FYI:我用的是webOS标牌显示器)

我已经阅读了关于历史API和处理back事件(webOS背按钮)的文档,并尝试了以下内容,但我尝试的都没有效果:

  • disableBackHistoryAPI设置为true in appinfo.json,然后在按后退按钮时手动捕获按键事件(keycode 461);
  • disableBackHistoryAPI中将false设置为appinfo.json,然后为popstate事件添加事件侦听器
  • 反之亦然(因为你永远不知道)

即使试图捕获后退按钮按下事件(因此捕获键代码461)也不起作用。应用程序识别所有其他键码,但按后退按钮不会做任何事情(不触发任何事件)。有人知道这件事吗?

为了确保问题本身不受应用程序的约束,我安装了以下应用程序后退按钮应用程序。同样的结果:没有back事件。

捕获键事件的代码(记录除461以外的所有密钥代码):

代码语言:javascript
复制
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,我使用科多瓦烤面包将我的项目编译为LG webOS (以及未来的三星Tizen)。

--赏金过期但仍在寻找答案--

EN

回答 3

Stack Overflow用户

发布于 2019-08-27 09:39:31

尝试将此代码添加到index.html的head部分,并将"disableBackHistoryAPI": true添加到appinfo.json中:

代码语言:javascript
复制
<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>

请记住,ES6是不支持在LG webOS电视。我想您已经知道了,并使用Babel来转换代码。

有关更多信息,请参考页面。

票数 3
EN

Stack Overflow用户

发布于 2020-05-26 23:18:21

你能使用遥控器上的后退按钮吗?我这里也有同样的问题。

这段代码可以看到其他按钮,除了后退按钮。

代码语言:javascript
复制
    window.addEventListener("keydown", function(inEvent){   

        if(window.event) {
            keycode = inEvent.keyCode;
        } else if(e.which) {
            keycode = inEvent.which;
        }

        document.getElementById("BtnControle").innerHTML = keycode;

    });  
票数 1
EN

Stack Overflow用户

发布于 2020-05-27 15:07:07

在我的appinfo.json中,我添加了以下内容:disableBackHistoryAPI: true;

从这里开始,下面的代码开始工作了:

代码语言:javascript
复制
<script type = "text / javascript">
         window.addEventListener ("keydown", function (inEvent) {
             if (window.event) {
                 keycode = inEvent.keyCode;
             } else if (e.which) {
                 keycode = inEvent.which;
             }
             switch (keycode) {
                 case 461: history.back (-1); break;
                 case 38: document.getElementById ("TesteTit"). innerHTML = "up"; break;
                 case 40: document.getElementById ("TesteTit"). innerHTML = "down"; break;
             }
         });
</script>

如果你能在你的应用上测试它,告诉我它是否有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57587297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档