• 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;
41let keyOptions: inputConsumer.KeyOptions = {
42  preKeys: [ leftAltKey ],
43  finalKey: tabKey,
44  isFinalKeyDown: true,
45  finalKeyDownDuration: 0
46};
47let callback = (keyOptions: inputConsumer.KeyOptions) => {
48  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
49}
50try {
51  inputConsumer.on("key", keyOptions, callback);
52} catch (error) {
53  console.log(`Subscribe failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
54}
55```
56
57
58## inputConsumer.off
59
60off(type: "key", keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void
61
62取消订阅组合按键。
63
64**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
65
66**参数:**
67
68| 参数名         | 类型                         | 必填   | 说明                              |
69| ---------- | -------------------------- | ---- | ------------------------------- |
70| type       | string                     | 是    | 事件类型,当前只支持”key“。              |
71| keyOptions | [KeyOptions](#keyoptions)  | 是    | 组合键选项。             |
72| callback   | Callback<KeyOptions> | 否    | 需要取消订阅的回调函数,若无此参数,则取消当前应用的组合键选项已订阅的所有回调函数。 |
73
74**示例:**
75
76```js
77let leftAltKey = 2045;
78let tabKey = 2049;
79// 取消订阅单个回调函数
80let callback = (keyOptions: inputConsumer.KeyOptions) => {
81  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
82}
83let keyOption: inputConsumer.KeyOptions = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0};
84try {
85  inputConsumer.on("key", keyOption, callback);
86  inputConsumer.off("key", keyOption, callback);
87  console.log(`Unsubscribe success`);
88} catch (error) {
89  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
90}
91```
92```js
93let leftAltKey = 2045;
94let tabKey = 2049;
95// 取消订阅所有回调函数
96let callback = (keyOptions: inputConsumer.KeyOptions) => {
97  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
98}
99let keyOption: inputConsumer.KeyOptions = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0};
100try {
101  inputConsumer.on("key", keyOption, callback);
102  inputConsumer.off("key", keyOption);
103  console.log(`Unsubscribe success`);
104} catch (error) {
105  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
106}
107```
108
109
110## KeyOptions
111
112组合键选项。
113
114**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
115
116| 名称        | 类型   | 可读   | 可写   | 说明      |
117| --------- | ------ | ---- | ---- | ------- |
118| preKeys              | Array\<number>   | 是    | 否 | 前置按键集合,数量范围[0, 4],前置按键无顺序要求。 |
119| finalKey             | number  | 是    |  否 | 最终按键,此项必填,最终按键触发上报回调函数。 |
120| isFinalKeyDown       | boolean | 是    |  否 | 最终按键状态。 |
121| finalKeyDownDuration | number  | 是    |  否 | 最终按键保持按下持续时间,为0时立即触发回调函数,大于0时,当isFinalKeyDown为true,则最终按键按下超过此时长后触发回调函数,当isFinalKeyDown为false,则最终按键按下到抬起时间小于此时长时触发回调函数。   |
122