• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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