
在 Tizen TV 应用开发中,keyCode 10182 并非标准退出键码;实际应通过监听 Back 短按与 Exit 长按事件区分行为,且需配合权限配置与遥控器类型(基础/智能)精准适配。
在 tizen tv 应用开发中,keycode 10182 并非标准退出键码;实际应通过监听 `back` 短按与 `exit` 长按事件区分行为,且需配合权限配置与遥控器类型(基础/智能)精准适配。
在 Tizen Studio 开发 TV 应用时,开发者常误以为存在独立的“Exit 键”并尝试使用 keyCode === 10182 进行监听——但该数值并非 Tizen 官方定义的有效键码,也未被任何主流 Samsung 遥控器硬件映射支持。真正可靠的方式是依据 Samsung Developer 文档 对遥控器交互逻辑的规范说明进行实现。
✅ 正确理解遥控器按键行为
Samsung 智能电视遥控器分为两类:
- 基础遥控器(Basic Remote):物理上拥有独立的 Back 和 Exit 键(极少见,多见于旧型号);
-
智能遥控器(Smart Remote):仅有一个 Back/Exit 复合键,其行为由操作方式决定:
- 短按(Click)→ 触发 Back 事件(对应 keyCode = 10009);
- 长按(Long Press)→ 触发 Exit 事件(对应 keyCode = 10010)。
⚠️ 注意:10182 是无效键码,Tizen Runtime 不会为此值派发 keydown 事件;使用它将导致监听完全失效。
✅ 推荐实现代码(兼容性与健壮性兼顾)
// 必须确保已在 config.xml 中声明输入设备权限
// <privilege name="http://tizen.org/privilege/inputdevice"></privilege>
document.addEventListener('keydown', function(event) {
switch (event.keyCode) {
case 10009: // Back key (short press on Smart Remote)
console.log('Back pressed — navigate to previous view');
// 通常用于页面后退或关闭弹窗
break;
case 10010: // Exit key (long press on Smart Remote)
console.log('Exit long-pressed — exit application');
// 建议调用 tizen.application.getCurrentApplication().exit();
tizen.application.getCurrentApplication().exit();
break;
default:
// 可选:记录未知键码用于调试
console.log('Unknown key code:', event.keyCode);
}
});
✅ 关键前提检查清单
- ✅ 在 config.xml 中添加必要权限:
<privilege name="http://tizen.org/privilege/inputdevice"></privilege>
- ✅ 确保应用运行在真实 Samsung TV 设备或 Tizen TV Emulator(启用遥控器模拟) 上测试——Web Browser 或普通 Chrome 不支持这些 TV 专属键码;
- ✅ 避免依赖 event.key 或 event.code,因 Tizen TV 运行时对它们的支持有限且不一致,始终优先使用 event.keyCode;
- ✅ 长按 Exit 行为需用户主动长按约 1.5 秒,不可通过脚本模拟,因此 UI 应提供明确视觉反馈(如按键高亮动画)。
✅ 总结
不要使用 keyCode 10182——它不存在于 Tizen 键码体系中。正确做法是:
? 短按 Back/Exit 键 → 监听 keyCode 10009,执行导航回退;
? 长按 Back/Exit 键 → 监听 keyCode 10010,调用 tizen.application.exit() 安全退出;
? 始终验证权限、设备类型与运行环境,确保交互逻辑符合 Samsung UX 准则。











