1# @ohos.multimodalInput.inputConsumer (组合按键) 2 3组合按键订阅模块,用于处理组合按键的订阅。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> - 本模块接口为系统接口。 10 11 12## 导入模块 13 14 15```js 16import inputConsumer from '@ohos.multimodalInput.inputConsumer'; 17``` 18 19 20## inputConsumer.on 21 22on(type: "key", keyOptions: KeyOptions, callback: Callback<KeyOptions>): void 23 24订阅组合按键,当满足条件的组合按键输入事件发生时,使用Callback异步方式上报组合按键数据。 25 26**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer 27 28**参数:** 29 30| 参数名 | 类型 | 必填 | 说明 | 31| ---------- | -------------------------- | ---- | ---------------------------------------- | 32| type | string | 是 | 事件类型,目前只支持”key“。 | 33| keyOptions | [KeyOptions](#keyoptions) | 是 | 组合键选项。 | 34| callback | Callback<KeyOptions> | 是 | 回调函数,当满足条件的组合按键输入事件发生时,异步上报组合按键数据。 | 35 36**示例:** 37 38```js 39let leftAltKey = 2045; 40let tabKey = 2049; 41try { 42 inputConsumer.on("key", {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}, keyOptions => { 43 console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); 44 }); 45} catch (error) { 46 console.log(`Subscribe failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 47} 48``` 49 50 51## inputConsumer.off 52 53off(type: "key", keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void 54 55取消订阅组合按键。 56 57**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer 58 59**参数:** 60 61| 参数名 | 类型 | 必填 | 说明 | 62| ---------- | -------------------------- | ---- | ------------------------------- | 63| type | string | 是 | 事件类型,当前只支持”key“。 | 64| keyOptions | [KeyOptions](#keyoptions) | 是 | 组合键选项。 | 65| callback | Callback<KeyOptions> | 否 | 需要取消订阅的回调函数,若无此参数,则取消当前应用的组合键选项已订阅的所有回调函数。 | 66 67**示例:** 68 69```js 70let leftAltKey = 2045; 71let tabKey = 2049; 72// 取消订阅单个回调函数 73let callback = function (keyOptions) { 74 console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); 75} 76let keyOption = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}; 77try { 78 inputConsumer.on("key", keyOption, callback); 79 inputConsumer.off("key", keyOption, callback); 80 console.log(`Unsubscribe success`); 81} catch (error) { 82 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 83} 84``` 85```js 86let leftAltKey = 2045; 87let tabKey = 2049; 88// 取消订阅所有回调函数 89let callback = function (keyOptions) { 90 console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); 91} 92let keyOption = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}; 93try { 94 inputConsumer.on("key", keyOption, callback); 95 inputConsumer.off("key", keyOption); 96 console.log(`Unsubscribe success`); 97} catch (error) { 98 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 99} 100``` 101 102 103## KeyOptions 104 105组合键选项。 106 107**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer 108 109| 名称 | 类型 | 可读 | 可写 | 说明 | 110| --------- | ------ | ---- | ---- | ------- | 111| preKeys | Array\<number> | 是 | 否 | 前置按键集合,数量范围[0, 4],前置按键无顺序要求。 | 112| finalKey | number | 是 | 否 | 最终按键,此项必填,最终按键触发上报回调函数。 | 113| isFinalKeyDown | boolean | 是 | 否 | 最终按键状态。 | 114| finalKeyDownDuration | number | 是 | 否 | 最终按键保持按下持续时间,为0时立即触发回调函数,大于0时,当isFinalKeyDown为true,则最终按键按下超过此时长后触发回调函数,当isFinalKeyDown为false,则最终按键按下到抬起时间小于此时长时触发回调函数。 | 115