
在 Tizen TV 应用开发中,Exit 按键并非通过 keyCode 10182 触发,而是由智能遥控器长按“Back/Exit”键触发,对应 key === 'Exit' 事件,需使用 event.key 而非 keyCode 判断。
在 tizen tv 应用开发中,exit 按键并非通过 keycode 10182 触发,而是由智能遥控器长按“back/exit”键触发,对应 key === 'exit' 事件,需使用 `event.key` 而非 `keycode` 判断。
在 Samsung Tizen TV 平台上,Exit 按键行为与遥控器类型强相关:基础遥控器(Basic Remote)有独立的 Back 和 Exit 物理按键;而当前主流的智能遥控器(Smart Remote)仅有一个“Back/Exit”复合键——短按触发 key === 'Back',长按(约 1 秒以上)才触发 key === 'Exit'。因此,使用 event.keyCode === 10182 的写法不仅语义错误(该值非标准 keyCode,且 Tizen 不支持此自定义码),也无法匹配实际事件。
✅ 正确做法是监听 keydown 事件,并检查 event.key 属性:
document.addEventListener('keydown', function(event) {
// 短按:返回上一级(如页面栈回退)
if (event.key === 'Back') {
console.log('Back key pressed');
// 示例:history.back() 或自定义导航逻辑
}
// 长按:触发退出应用(推荐用于主页面)
else if (event.key === 'Exit') {
console.log('Exit key long-pressed');
tizen.application.getCurrentApplication().exit();
}
});⚠️ 注意事项:
-
权限声明:确保 config.xml 中已添加必要权限:
<tizen:privilege name="http://tizen.org/privilege/inputdevice"/>
- 事件监听时机:建议在 webapp 初始化完成、DOM 加载就绪后(如 window.onload 或 DOMContentLoaded)绑定事件,避免监听失效。
- 焦点管理:Tizen TV 默认仅对可聚焦元素(如 <button>、<a>)或 document 触发键盘事件。若页面无焦点元素,需手动调用 document.body.focus() 或设置 tabindex="-1" 保证事件捕获。
- 兼容性提示:keyCode 已废弃,现代 Web 标准推荐统一使用 event.key(返回字符串,如 'Back'、'Exit')或 event.code(返回物理键位标识),Tizen TV 运行时完全支持 event.key。
? 总结:放弃 keyCode === 10182 的错误假设,拥抱 Tizen 官方推荐的 key 语义化判断方式;区分 Back(导航回退)与 Exit(应用退出)的交互意图;结合权限、焦点与监听时机三要素,才能实现稳定可靠的遥控器按键响应。

















