【HarmonyOS Next】鸿蒙监听手机按键
2025-06-30 22:52:24
104次阅读
0个评论
【HarmonyOS Next】鸿蒙监听手机按键
一、前言
应用开发中我们会遇到监听用户实体按键,或者扩展按键的需求。亦或者是在某些场景下,禁止用户按下某些按键的业务需求。
这两种需求,鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的按钮监听事件
onKeyPreIme 这是优先级最高的监听回调,别上面多了一个return开关,用于告诉系统监听事件是否再向下传递。 窗口是第一级接收按钮事件的实体。后续会传递给后三级。
二、解决方案参考
我们以音量实体按键举例, 通过绑定onKeyEvent按键监听来获取按键事件的回调。需要注意的是,绑定了按键事件需要控件获得焦点时,用户去操作按键才会有监听回调。
// 给控件添加默认聚焦
.defaultFocus(true)
// 给Button设置onKeyEvent事件
.onKeyEvent((event?: KeyEvent) => {
})
使用onKeyPreIme屏蔽音量使用下键。
import { KeyCode } from '@kit.InputKit';
@Entry
@Component
struct PreImeEventExample {
build() {
Column() {
Search({
placeholder: "Search..."
})
.width("80%")
.height("40vp")
.border({ radius:"20vp" })
.onKeyPreIme((event:KeyEvent) => {
// 屏蔽音量使用下键
if (event.keyCode == KeyCode.KEYCODE_VOLUME_DOWN) {
return true;
}
return false;
})
}
}
}
三、DEMO源码示例:
import { KeyCode } from '@kit.InputKit'
@Entry
@Component
struct KeyClickTestPage {
@State text: string = ''
@State eventType: string = ''
build() {
Column() {
Button('KeyEvent')
.defaultFocus(true)
// 给Button设置onKeyEvent事件
.onKeyEvent((event?: KeyEvent) => {
if(event){
if (event.type === KeyType.Down) {
this.eventType = 'Down' // 按钮 按下
}
if (event.type === KeyType.Up) {
this.eventType = 'Up'// 按钮 抬起
}
// KEYCODE_VOLUME_UP 16 音量增加键
// KEYCODE_VOLUME_DOWN 17 音量减小键
// KEYCODE_POWER 18 电源键
this.text = 'onKeyEvent KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText + '\nintentionCode:' + event.intentionCode
}
})
.onKeyPreIme((event:KeyEvent) => {
// 屏蔽音量使用下键
if (event.keyCode == KeyCode.KEYCODE_VOLUME_DOWN) {
return true;
}
this.text = 'onKeyPreIme KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText + '\nintentionCode:' + event.intentionCode
return false;
})
Text(this.text).padding(15)
}.height(300).width('100%').padding(35)
}
}
扩展资料
点击跳转参考按键Code列表:
00
- 1回答
- 0粉丝
- 0关注
相关话题
- HarmonyOS NEXT 实战之元服务:静态案例效果--- 手机一键加速、手机垃圾清理
- 【HarmonyOS NEXT】鸿蒙应用实现手机摇一摇功能
- HarmonyOS NEXT 实战之元服务:静态案例效果---手机查看电量
- 如何添加联系人到手机通讯录
- HarmonyOS NEXT 实战之元服务:静态案例效果---查看手机历史记录
- Harmonyos next 鸿蒙原生 证书 & 打包到真机
- HarmonyOS Next云真机来啦
- 鸿蒙HarmonyOS ArkTS监听器详解
- 鸿蒙开发:实现AI打字机效果
- 鸿蒙next手游sdk 重磅来袭
- 鸿蒙next团结引擎适配轻松上手
- Harmony 状态监听 @Monitor和@Computed
- HarmonyOS运动开发:如何监听用户运动步数数据
- 如何监听组件再次显示的事件?
- 【HarmonyOS NEXT】鸿蒙获取手势触摸点的屏幕全局坐标