教程 框架 组件 接口

电视下用遥控器操控,tv标准增加按键事件

通过本节您将学会

按键事件和生命周期

tv标准新增"onKey"生命周期和"onkey"通用事件,由遥控器"上"、"下"、"左"、"右"、"确定"键触发。先触发"onkey"事件,然后触发"onKey"生命周期,如果"onkey"事件返回"true""onKey"生命周期不会触发。
"回退"按键按下触发"onBackPress"生命周期,"菜单"按键按下触发"onMenuPress"生命周期。

"确定"按键弹起触发"onclick"事件,如果节点同时绑定了"onkey"事件并且有"onKey"生命周期,触发顺序如下:

  1. 首先触发节点"onkey"按下事件
  2. 如果"onkey"按下不返回true,触发生命周期"onKey"按下
  3. 触发节点"onkey"弹起事件
  4. 如果节点"onkey"弹起不返回true,触发生命周期"onKey"弹起
  5. 如果节点"onkey"弹起事件和生命周期"onKey"弹起都不返回true,触发节点"onclick"事件,按下事件返回true不影响节点"onclick"事件

注意:onKey生命周期和onkey事件都需要等待回调函数返回值,尽量避免在回调里同步处理复杂逻辑。

参考文档:
通用事件
生命周期

示例如下:

<template>
  <div>
      <text onkey="onkeyhandler" onclick="onclickhandler">节点1</text>
  </div>
</template>
<script>
export default {
  onKey(event) {
    // 焦点在节点1上时,不会被触发弹起,只触发按下
    console.info(`触发:onKey 生命周期, action: ${event.action}`)
  },
  onkeyhandler(event) {
    console.info(`触发 onkey 事件`)
    if(event.action == 1){
      return true
    }
  },
  onclickhandler() {
    // onkey 弹起事件返回了true,所以不会被触发
    console.info(`触发 onclick 事件`)
  }
}
</script>

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容