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```