• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 事件注入开发指导
2
3## 场景介绍
4
5事件注入提供注入输入事件功能,比如注入鼠标点击事件、键盘组合键等。使用场景例如:当用户需要验证应用的组合键功能时,开发者可以通过注入组合键事件判断功能是否生效。
6
7## 导入模块
8
9```js
10import { inputEventClient } from '@kit.InputKit';
11```
12
13## 接口说明
14
15事件注入常用接口如下表所示,接口详细介绍请参考[ohos.multimodalInput.inputEventClient文档](../../reference/apis-input-kit/js-apis-inputeventclient-sys.md)。
16
17| 接口名称  | 描述 |
18| -------------------------------------------- | -------------------------- |
19| injectEvent({KeyEvent: KeyEvent}): void |按键(包括单个按键和组合键)注入。 |
20| injectMouseEvent(mouseEvent: MouseEventData): void |鼠标/触摸板事件注入。 |
21| injectTouchEvent(touchEvent: TouchEventData): void |触摸屏事件注入。|
22
23## 开发步骤
24
25应用调用Home键返回桌面,调用[injectEvent](../../reference/apis-input-kit/js-apis-inputeventclient-sys.md#inputeventclientinjectevent)注入Home按键,查看应用中Home按键功能是否生效。
26
27```js
28import { inputEventClient } from '@kit.InputKit';
29
30@Entry
31@Component
32struct Index {
33  build() {
34    RelativeContainer() {
35      Text()
36        .onClick(() => {
37          try {
38            let backKeyDown: inputEventClient.KeyEvent = {
39              isPressed: true,
40              keyCode: 2,
41              keyDownDuration: 0,
42              isIntercepted: false
43            }//Home按键按下事件
44
45            class EventDown {
46              KeyEvent: inputEventClient.KeyEvent | null = null
47            }
48
49            let eventDown: EventDown = { KeyEvent: backKeyDown }
50            inputEventClient.injectEvent(eventDown);//注入Home按键按下事件
51
52            let backKeyUp: inputEventClient.KeyEvent = {
53              isPressed: false,
54              keyCode: 2,
55              keyDownDuration: 0,
56              isIntercepted: false
57            };//Home按键抬起事件
58
59            class EventUp {
60              KeyEvent: inputEventClient.KeyEvent | null = null
61            }
62
63            let eventUp: EventUp = { KeyEvent: backKeyUp }
64            inputEventClient.injectEvent(eventUp);//注入Home按键抬起事件,查看Home键功能是否生效,应用是否返回桌面
65          } catch (error) {
66            console.error(`Failed to inject KeyEvent, error: ${JSON.stringify(error, ["code", "message"])}`);
67          }
68        })
69    }
70  }
71}
72```
73
74