鸿蒙写程序打印出onTouch、onKeyEvent、onFocus、onBlur的对应属性
时间: 2025-03-30 11:01:48 浏览: 29
### 鸿蒙开发中打印 `onTouch`、`onKeyEvent`、`onFocus` 和 `onBlur` 事件对应属性的示例
以下是实现上述需求的一个完整代码示例,展示了如何捕获并打印这些事件的相关属性:
```javascript
// 创建一个简单的组件用于演示事件处理
export function EventExample() {
return (
<div>
{/* onTouch 事件 */}
<text style={{ width: '200px', height: '50px', backgroundColor: '#f0f0f0' }}
onTouch={(event) => {
console.info('onTouch event triggered:', JSON.stringify(event));
// 打印 TouchEvent 对象中的属性
if (event.touches && Array.isArray(event.touches)) {
event.touches.forEach((touch, index) => {
console.info(`Touch ${index}:`, touch);
});
}
}}>
Touch Me
</text>
{/* onKeyEvent 事件 */}
<button focusable={true} onClick={() => {}} // 设置按钮可聚焦
onKeyEvent={(event) => {
console.info('onKeyEvent event triggered:', JSON.stringify(event));
// 打印 KeyEvent 对象中的属性
const { type, keyCode, keyText, keySource, deviceId, metaKey, timestamp } = event;
console.info('KeyEvent Details:');
console.info('Type:', type);
console.info('KeyCode:', keyCode);
console.info('KeyText:', keyText);
console.info('KeySource:', keySource);
console.info('DeviceId:', deviceId);
console.info('MetaKey State:', metaKey ? 'Pressed' : 'Not Pressed');
console.info('Timestamp:', timestamp);
}}>
Key Button
</button>
{/* onFocus 和 onBlur 事件 */}
<input style={{ width: '200px', height: '40px', margin: '10px' }}
onFocus={(event) => {
console.info('Input focused:', JSON.stringify(event));
}}
onBlur={(event) => {
console.info('Input blurred:', JSON.stringify(event));
}} />
</div>
);
}
```
#### 解析
- **`onTouch`**: 当手指触碰屏幕时触发此事件。通过遍历 `event.touches` 数组获取每次触摸的具体信息[^1]。
- **`onKeyEvent`**: 绑定到具有焦点能力的组件上,在按键操作时触发。可以通过解构提取 `KeyEvent` 的各个字段来分析具体按键行为[^3]。
- **`onFocus` 和 `onBlur`**: 这两个事件分别在输入框获得和失去焦点时触发。它们通常应用于表单控件或其他需要用户交互的场景。
以上代码片段涵盖了所需事件及其基本调试方式,便于开发者理解各事件的行为特征以及数据结构。
---
阅读全文
相关推荐


















