1# @ohos.multimodalInput.inputMonitor (输入监听) 2 3输入监听模块,提供了监听输入设备事件(当前支持触摸屏和鼠标)的能力。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> - 本模块接口均为系统接口。 10 11 12## 导入模块 13 14 15```js 16import inputMonitor from '@ohos.multimodalInput.inputMonitor'; 17``` 18 19 20## inputMonitor.on 21 22on(type: "touch", receiver: TouchEventReceiver): void 23 24开始监听全局触屏事件。 25 26**需要权限:** ohos.permission.INPUT_MONITORING 27 28**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor 29 30**参数:** 31 32| 参数名 | 类型 | 必填 | 说明 | 33| -------- | ---------------------------------------- | ---- | ------------------- | 34| type | string | 是 | 输入设备事件类型,取值“touch”。 | 35| receiver | [TouchEventReceiver](#toucheventreceiver) | 是 | 回调函数,异步上报触摸屏输入事件。 | 36 37**示例:** 38 39```js 40try { 41 inputMonitor.on("touch", (touchEvent) => { 42 console.log(`Monitor on success ${JSON.stringify(touchEvent)}`); 43 return false; 44 }); 45} catch (error) { 46 console.log(`Monitor on failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 47} 48``` 49 50## inputMonitor.on<sup>9+</sup> 51 52on(type: "mouse", receiver: Callback<MouseEvent>): void 53 54开始监听全局鼠标事件。 55 56**需要权限:** ohos.permission.INPUT_MONITORING 57 58**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor 59 60**参数:** 61 62| 参数名 | 类型 | 必填 | 说明 | 63| -------- | -------------------------- | ---- | ------------------- | 64| type | string | 是 | 输入设备事件类型,取值“mouse”。 | 65| receiver | Callback<MouseEvent> | 是 | 回调函数,异步上报鼠标输入事件。 | 66 67 **示例:** 68 69```js 70try { 71 inputMonitor.on("mouse", (mouseEvent) => { 72 console.log(`Monitor on success ${JSON.stringify(mouseEvent)}`); 73 return false; 74 }); 75} catch (error) { 76 console.log(`Monitor on failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 77} 78``` 79 80 81 82## inputMonitor.off 83 84off(type: "touch", receiver?: TouchEventReceiver): void 85 86停止监听全局触屏事件。 87 88**需要权限:** ohos.permission.INPUT_MONITORING 89 90**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor 91 92**参数:** 93 94| 参数名 | 类型 | 必填 | 说明 | 95| -------- | ---------------------------------------- | ---- | ------------------- | 96| type | string | 是 | 输入设备事件类型,取值“touch”。 | 97| receiver | [TouchEventReceiver](#toucheventreceiver) | 否 | 需要取消监听的回调函数,若无此参数,则取消当前应用监听的所有回调函数。 | 98 99**示例:** 100 101```js 102// 取消监听单个回调函数 103function callback(touchEvent) { 104 console.log(`Monitor on success ${JSON.stringify(touchEvent)}`); 105 return false; 106}; 107try { 108 inputMonitor.on("touch", callback); 109 inputMonitor.off("touch", callback); 110 console.log(`Monitor off success`); 111} catch (error) { 112 console.log(`Monitor execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 113} 114``` 115 116```js 117// 取消监听所有回调函数 118function callback(touchEvent) { 119 console.log(`Monitor on success ${JSON.stringify(touchEvent)}`); 120 return false; 121}; 122try { 123 inputMonitor.on("touch", callback); 124 inputMonitor.off("touch"); 125 console.log(`Monitor off success`); 126} catch (error) { 127 console.log(`Monitor execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 128} 129``` 130 131## inputMonitor.off<sup>9+</sup> 132 133off(type: "mouse", receiver?: Callback<MouseEvent>): void 134 135停止监听全局鼠标事件。 136 137**需要权限:** ohos.permission.INPUT_MONITORING 138 139**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor 140 141**参数:** 142 143| 参数名 | 类型 | 必填 | 说明 | 144| -------- | -------------------------- | ---- | ------------------- | 145| type | string | 是 | 输入设备事件类型,取值“mouse”。 | 146| receiver | Callback<MouseEvent> | 否 | 需要取消监听的回调函数,若无此参数,则取消当前应用监听的所有回调函数。 | 147 148**示例:** 149 150```js 151// 取消监听单个回调函数 152function callback(mouseEvent) { 153 console.log(`Monitor on success ${JSON.stringify(mouseEvent)}`); 154 return false; 155}; 156try { 157 inputMonitor.on("mouse", callback); 158 inputMonitor.off("mouse", callback); 159 console.log(`Monitor off success`); 160} catch (error) { 161 console.log(`Monitor execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 162} 163``` 164 165```js 166// 取消监听所有回调函数 167function callback(mouseEvent) { 168 console.log(`Monitor on success ${JSON.stringify(mouseEvent)}`); 169 return false; 170}; 171try { 172 inputMonitor.on("mouse", callback); 173 inputMonitor.off("mouse"); 174 console.log(`Monitor off success`); 175} catch (error) { 176 console.log(`Monitor execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 177} 178``` 179 180## TouchEventReceiver 181 182触摸输入事件的回调函数。 183 184**需要权限:** ohos.permission.INPUT_MONITORING 185 186**系统能力:** SystemCapability.MultimodalInput.Input.InputMonitor 187 188**参数:** 189 190| 参数 | 类型 | 必填 | 说明 | 191| ---------- | ---------------------------------------- | ---- | ---------------------------------------- | 192| touchEvent | [TouchEvent](../arkui-js/js-components-common-events.md) | 是 | 触摸输入事件。 | 193 194**返回值:** 195 196| 类型 | 说明 | 197| ------- | ---------------------------------------- | 198| Boolean | 若返回true,本次触摸后续产生的事件不再分发到窗口;若返回false,本次触摸后续产生的事件还会分发到窗口。 | 199 200**示例:** 201 202```js 203try { 204 inputMonitor.on("touch", touchEvent => { 205 if (touchEvent.touches.length == 3) { // 当前有三个手指按下 206 return true; 207 } 208 return false; 209 }); 210} catch (error) { 211 console.log(`Monitor on failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 212} 213``` 214