• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 输入监听开发指导
2
3## 场景介绍
4
5输入监听提供监听按键,触控板特殊手势等能力。使用场景例如:当用户需要应用在触控板三指上划实现特定功能时,开发者可以通过监听三指上划判断特定功能是否启用。
6
7## 导入模块
8
9```js
10import { inputMonitor } from '@kit.InputKit';
11```
12
13## 接口说明
14
15输入监听常用接口如下表所示,接口详细介绍请参考[ohos.multimodalInput.inputMonitor文档](../../reference/apis-input-kit/js-apis-inputmonitor-sys.md)。
16
17| 接口名称  | 描述 |
18| ------------------------------------------------------------ | -------------------------- |
19| on(type: 'mouse', receiver: Callback<MouseEvent>): void |监听鼠标事件。 |
20| on(type: 'touch', receiver: TouchEventReceiver): void | 监听触屏事件。 |
21| on(type: 'pinch', receiver: TouchEventReceiver): void | 监听捏合事件。 |
22| on(type: 'threeFingersSwipe', receiver: Callback<ThreeFingersSwipe>): void | 监听三指上划事件。 |
23| on(type: 'threeFingersTap', receiver: Callback<ThreeFingersSwipe>): void | 监听三指清点事件。 |
24| on(type: 'fourFingersSwipe', receiver: Callback<FourFingersSwipe>): void | 监听四指滑动事件。 |
25| on(type: 'rotate', fingers: number, receiver: Callback<Rotate>): void | 监听旋转事件。 |
26| off(type: 'mouse', receiver: Callback<MouseEvent>): void |取消监听鼠标事件。 |
27| off(type: 'touch', receiver: TouchEventReceiver): void | 取消监听触屏事件。 |
28| off(type: 'pinch', receiver: TouchEventReceiver): void | 取消监听捏合事件。 |
29| off(type: 'threeFingersSwipe', receiver: Callback<ThreeFingersSwipe>): void | 取消监听三指上划事件。 |
30| off(type: 'threeFingersTap', receiver: Callback<ThreeFingersSwipe>): void | 取消监听三指清点事件。 |
31| off(type: 'fourFingersSwipe', receiver: Callback<FourFingersSwipe>): void | 取消监听四指滑动事件。 |
32| off(type: 'rotate', fingers: number, receiver: Callback<Rotate>): void | 取消监听旋转事件。 |
33
34## 开发步骤
35
36当应用需要根据鼠标按键按下状态变化样式时。调用[on](../../reference/apis-input-kit/js-apis-inputmonitor-sys.md#inputmonitoronmouse9)监听鼠标按键事件,调用[off](../../reference/apis-input-kit/js-apis-inputmonitor-sys.md#inputmonitoroffmouse9)取消监听鼠标按键事件。
37
38```js
39import { inputMonitor } from '@kit.InputKit';
40import { MouseEvent } from '@kit.InputKit';
41
42@Entry
43@Component
44struct Index {
45  build() {
46    RelativeContainer() {
47      Text()
48        .onClick(() => {
49          let BUTTON_DOWN = 2;
50          let callback = (mouseEvent: MouseEvent) => {
51            console.info(`Monitor on success ${JSON.stringify(mouseEvent)}`);
52            if(mouseEvent.action = BUTTON_DOWN){
53              return true;//鼠标按下回调
54            }
55            return false;
56          };
57
58          try {
59            inputMonitor.on('mouse', (mouseEvent: MouseEvent) => {//开始监听鼠标事件
60              console.info(`Monitor on success ${JSON.stringify(mouseEvent)}`);
61              return false;
62            });
63          } catch (error) {
64            console.error(`Monitor on failed, error: ${JSON.stringify(error, ["code", "message"])}`);
65          }
66          //监听鼠标按下,按下callbackreturn true
67          try {
68            inputMonitor.off('mouse', callback);//关闭监听鼠标事件
69            console.info(`Monitor off success`);
70          } catch (error) {
71            console.error(`Monitor off failed, error: ${JSON.stringify(error, ["code", "message"])}`);
72          }
73        })
74    }
75  }
76}
77```