js-apis-inputmonitor.md 5.7 KB
Newer Older
Z
zengyawen 已提交
1 2
# 输入监听

H
hungry_feiwei 已提交
3
InputMonitor模块提供了监听全局触摸事件的功能。
Z
zengyawen 已提交
4

H
HelloCrease 已提交
5
>  **说明:**
Z
zengyawen 已提交
6
> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
H
HelloCrease 已提交
7
>
H
HelloCrease 已提交
8
> - 本模块接口均为系统接口。
Z
zengyawen 已提交
9 10 11 12 13


## 导入模块


M
mayunteng_1 已提交
14
```js
Z
zengyawen 已提交
15 16 17 18 19 20 21 22
import inputMonitor from '@ohos.multimodalInput.inputMonitor';
```


## inputMonitor.on

on(type: "touch", receiver: TouchEventReceiver): void

M
mayunteng_1 已提交
23
开始监听全局触屏事件。
Z
zengyawen 已提交
24

M
mayunteng_1 已提交
25
**需要权限:** ohos.permission.INPUT_MONITORING
Z
zengyawen 已提交
26

M
mayunteng_1 已提交
27
**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
Z
zengyawen 已提交
28 29

  **参数:**
H
HelloCrease 已提交
30 31 32 33
| 参数       | 类型                                       | 必填   | 说明                  |
| -------- | ---------------------------------------- | ---- | ------------------- |
| type     | string                                   | 是    | 监听输入事件类型,取值“touch”。 |
| receiver | [TouchEventReceiver](#toucheventreceiver) | 是    | 触摸输入事件回调函数。         |
Z
zengyawen 已提交
34 35 36

  **示例:**

M
mayunteng_1 已提交
37
```js
M
mayunteng_1 已提交
38 39 40 41 42 43 44 45
try {
    inputMonitor.on("touch", (data)=> {
        console.info(`monitorOnTouchEvent success ${JSON.stringify(data)}`);
        return false;
    });
} catch (error) {
    console.info("onMonitor " + error.code + " " + error.message)
}
Z
zengyawen 已提交
46 47
```

M
mayunteng_1 已提交
48

H
hungry_feiwei 已提交
49 50 51 52 53 54 55 56 57 58
on(type: "mouse", receiver: Callback<MouseEvent>): void

开始监听全局鼠标事件。

**需要权限:** ohos.permission.INPUT_MONITORING

**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor

  **参数:** 

H
HelloCrease 已提交
59 60 61 62
| 参数       | 类型                         | 必填   | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
| type     | string                     | 是    | 监听输入事件类型,取值“mouse”。 |
| receiver | Callback<MouseEvent> | 是    | 鼠标输入事件回调函数。         |
H
hungry_feiwei 已提交
63 64 65 66

  **示例:**

```js
M
mayunteng_1 已提交
67 68 69 70 71 72 73 74
try {
    inputMonitor.on("mouse", (data)=> {
        console.info(`monitorOnMouseEvent success ${JSON.stringify(data)}`);
        return false;
    });
} catch (error) {
    console.info("onMonitor " + error.code + " " + error.message)
}
H
hungry_feiwei 已提交
75 76 77
```


Z
zengyawen 已提交
78 79 80

## inputMonitor.off

H
hungry_feiwei 已提交
81
off(type: "touch", receiver?: TouchEventReceiver): void
Z
zengyawen 已提交
82

83
停止监听全局触屏事件。
Z
zengyawen 已提交
84

M
mayunteng_1 已提交
85
**需要权限:** ohos.permission.INPUT_MONITORING
Z
zengyawen 已提交
86

M
mayunteng_1 已提交
87
**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
Z
zengyawen 已提交
88 89

  **参数:**
H
HelloCrease 已提交
90 91 92 93
| 参数       | 类型                                       | 必填   | 说明                  |
| -------- | ---------------------------------------- | ---- | ------------------- |
| type     | string                                   | 是    | 监听输入事件类型,取值“touch”。 |
| receiver | [TouchEventReceiver](#toucheventreceiver) | 否    | 触摸输入事件回调函数。         |
Z
zengyawen 已提交
94 95 96

  **示例:**

M
mayunteng_1 已提交
97
```js
M
mayunteng_1 已提交
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
// 取消所有监听。
try {
    inputMonitor.off("touch");
} catch (error) {
    console.info("offMonitor " + error.code + " " + error.message)
}
// 单独取消receiver的监听。
callback:function(data) {
    console.info(`call success ${JSON.stringify(data)}`);
},
try {
    inputMonitor.on("touch", this.callback);
} catch (error) {
    console.info("onTouchMonitor " + error.code + " " + error.message)
}
try {
    inputMonitor.off("touch",this.callback);
} catch (error) {
    console.info("offTouchMonitor " + error.code + " " + error.message)
}
Z
zengyawen 已提交
118 119
```

H
hungry_feiwei 已提交
120
off(type: "mouse", receiver?: Callback<MouseEvent>): void
M
mayunteng_1 已提交
121

H
hungry_feiwei 已提交
122
停止监听全局鼠标事件。
Z
zengyawen 已提交
123

M
mayunteng_1 已提交
124
**需要权限:** ohos.permission.INPUT_MONITORING
H
hungry_feiwei 已提交
125

M
mayunteng_1 已提交
126
**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
H
hungry_feiwei 已提交
127 128 129

  **参数:**

H
HelloCrease 已提交
130 131 132 133
| 参数       | 类型                         | 必填   | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
| type     | string                     | 是    | 监听输入事件类型,取值“mouse”。 |
| receiver | Callback<MouseEvent> | 否    | 鼠标输入事件回调函数。         |
H
hungry_feiwei 已提交
134 135 136 137

**示例:**

```js
M
mayunteng_1 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
// 取消所有监听。
try {
    inputMonitor.off("mouse");
} catch (error) {
    console.info("offMonitor " + error.code + " " + error.message)
}
// 单独取消receiver的监听。
callback:function(data) {
    console.info(`call success ${JSON.stringify(data)}`);
},
try {
    inputMonitor.on("mouse", this.callback);
} catch (error) {
    console.info("onMouseMonitor " + error.code + " " + error.message)
}
try {
    inputMonitor.off("mouse", this.callback);
} catch (error) {
    console.info("offMouseMonitor " + error.code + " " + error.message)
}
H
hungry_feiwei 已提交
158 159 160 161 162 163
```



## TouchEventReceiver

H
hungry_feiwei 已提交
164
触摸输入事件的回调函数。如果返回true,则触摸输入被监听器消耗,系统将执行关闭动作。
Z
zengyawen 已提交
165

H
HelloCrease 已提交
166
**需要权限:** ohos.permission.INPUT_MONITORING
H
hungry_feiwei 已提交
167

M
mayunteng_1 已提交
168
**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor
Z
zengyawen 已提交
169 170

  **参数:**
H
HelloCrease 已提交
171 172 173
| 参数         | 类型                                       | 必填   | 说明                                       |
| ---------- | ---------------------------------------- | ---- | ---------------------------------------- |
| touchEvent | [TouchEvent](../arkui-js/js-components-common-events.md) | 是    | 触摸输入事件回调函数,返回true表示输触事件被监听器消费,false表示输触事件未被监听器消费。 |
Z
zengyawen 已提交
174 175

  **返回值:**
H
HelloCrease 已提交
176 177
| 类型      | 说明                                       |
| ------- | ---------------------------------------- |
178
| Boolean | 返回true表示触摸输入事件被监听器消费,false表示触摸输入事件未被监听器消费。 |
Z
zengyawen 已提交
179 180 181

  **示例:**

M
mayunteng_1 已提交
182
```js
M
mayunteng_1 已提交
183 184 185 186 187 188 189 190 191
try {
  inputMonitor.on("touch", (event) => {
    // 消费触摸输入事件
    return false;
  });
  inputMonitor.off("touch");
} catch (error) {
  console.info("offMonitor " + error.code + " " + error.message)
}
Z
zengyawen 已提交
192
```