首页 > 解决方案 > 如何在 tizen 中执行默认键操作?

问题描述

我正在尝试开发一个基本的 Tizen 电视应用程序。为此,我创建了两个锚标记和一个按钮。代码如下。

  <!DOCTYPE html>
<html>
<head>
    <title>ReactSampleApp</title>
    <style>
    body,html{
        position:absolute;
        padding:0px;
        margin:0px;
        width:100%;
        height:100%;
        background:#fff;
    }
</style>
<script src="js/main.js"></script>
</head>

<body> 
    <a href="./page2.html">
    <button>click here for some music</button>
    </a>
    <a href="./page3.html">
    <button>click here to go to page3</button>
    </a>
    <button onclick="function(){alert(0)}">click here for an alert</button>
    
</body>
</html>

正如您所看到的,它只是一个普通的 HTML 示例页面,在单击这些按钮时会遍历到不同的页面。

它工作正常,所以没有问题。

问题在于关注元素。好吧,这不完全是我的疑问。

window.onload = function() {

    // add eventListener for keydown
    document.addEventListener('keydown', function(e) {
        switch(e.keyCode){
        case 37: //LEFT arrow
            break;
        case 38: //UP arrow
            break;
        case 39: //RIGHT arrow
            break;
        case 40: //DOWN arrow
            break;
        case 13: //OK button
//          window.open("/page2.html");
            break;
        case 10009:
            tizen.application.getCurrentApplication().exit();
            break;
        default:
            console.log('Key code : ' + e.keyCode);
            break;
        }
    });
    
};

此代码来自我的 main.js 文件。

我只是写它来处理关键事件——上、下、左、右和回车。现在在这个 switch 块中,我能够编写警报并能够与页面交互。但现在我想给出常规的上、下、左、右输入而不是警报。

含义 - 说如果有一个网格(一个动态的)。如何通过水平或垂直遍历元素来关注元素?我需要编写显式代码还是我在这里遗漏了什么?Tizen 是否提供了带有输入键的 Web 元素的基本遍历?

提前致谢

标签: tizensamsung-smart-tvtizen-web-apptizen-tv

解决方案


对于要传递到客户端应用程序的 JS 运行时的远程控制键事件,您首先需要注册要与该registerKey方法一起使用的键事件

https://www.tizen.org/tv/web_device_api/tvinputdevice#::TVInputDevice::TVInputDeviceManager::registerKey

使用此页面底部表格中“密钥名称”列中的值:https ://developer.samsung.com/smarttv/develop/guides/user-interaction/remote-control.html

例如注册电视遥控器上的“红色”按钮。

window.tizen.tvinputdevice.registerKey("ColorF0Red");

然后您可以在您的 keyDown 处理程序中侦听 403 的键码值


推荐阅读