js-apis-inputconsumer.md 4.4 KB
Newer Older
1
# @ohos.multimodalInput.inputConsumer (组合按键)
Z
zengyawen 已提交
2

3
组合按键订阅模块,用于处理组合按键的订阅。
Z
zengyawen 已提交
4

5
> **说明:**
Z
zengyawen 已提交
6 7 8
>
> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
H
HelloCrease 已提交
9
> - 本模块接口为系统接口。
Z
zengyawen 已提交
10 11 12 13 14


## 导入模块


H
HelloCrease 已提交
15
```js
Z
zengyawen 已提交
16 17 18 19 20 21
import inputConsumer from '@ohos.multimodalInput.inputConsumer';
```


## inputConsumer.on

H
hungry_feiwei 已提交
22
on(type: "key", keyOptions: KeyOptions, callback: Callback<KeyOptions>): void
Z
zengyawen 已提交
23

M
mayunteng_1 已提交
24
订阅组合按键,当满足条件的组合按键输入事件发生时,使用Callback异步方式上报组合按键数据。
Z
zengyawen 已提交
25

M
mayunteng_1 已提交
26 27
**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer

Z
zengyawen 已提交
28 29
**参数:** 

M
mayunteng_1 已提交
30
| 参数名         | 类型                         | 必填   | 说明                                       |
H
HelloCrease 已提交
31
| ---------- | -------------------------- | ---- | ---------------------------------------- |
32
| type       | string                     | 是    | 事件类型,目前只支持”key“。                       |
M
mayunteng_1 已提交
33
| keyOptions | [KeyOptions](#keyoptions)  | 是    | 组合键选项。                 |
34
| callback   | Callback<KeyOptions> | 是    | 回调函数,当满足条件的组合按键输入事件发生时,异步上报组合按键数据。 |
Z
zengyawen 已提交
35 36 37

**示例:** 

H
HelloCrease 已提交
38
```js
M
mayunteng_1 已提交
39 40
let leftAltKey = 2045;
let tabKey = 2049;
M
mayunteng_1 已提交
41
try {
M
mayunteng_1 已提交
42
  inputConsumer.on("key", {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}, keyOptions => {
43 44
    console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
  });
M
mayunteng_1 已提交
45
} catch (error) {
46
  console.log(`Subscribe failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
Z
zengyawen 已提交
47 48 49 50 51 52
}
```


## inputConsumer.off

H
hungry_feiwei 已提交
53
off(type: "key", keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void
Z
zengyawen 已提交
54

55
取消订阅组合按键。
Z
zengyawen 已提交
56 57 58 59 60

**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer

**参数:** 

M
mayunteng_1 已提交
61
| 参数名         | 类型                         | 必填   | 说明                              |
H
HelloCrease 已提交
62
| ---------- | -------------------------- | ---- | ------------------------------- |
63
| type       | string                     | 是    | 事件类型,当前只支持”key“。              |
M
mayunteng_1 已提交
64
| keyOptions | [KeyOptions](#keyoptions)  | 是    | 组合键选项。             |
65
| callback   | Callback<KeyOptions> | 否    | 需要取消订阅的回调函数,若无此参数,则取消当前应用的组合键选项已订阅的所有回调函数。 |
Z
zengyawen 已提交
66 67 68

**示例:** 

H
HelloCrease 已提交
69
```js
M
mayunteng_1 已提交
70 71
let leftAltKey = 2045;
let tabKey = 2049;
72 73 74 75
// 取消订阅单个回调函数
let callback = function (keyOptions) {
  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
}
M
mayunteng_1 已提交
76
let keyOption = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0};
77 78 79
try {
  inputConsumer.on("key", keyOption, callback);
  inputConsumer.off("key", keyOption, callback);
M
mayunteng_1 已提交
80
  console.log(`Unsubscribe success`);
81 82 83 84 85
} catch (error) {
  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
```js
M
mayunteng_1 已提交
86 87
let leftAltKey = 2045;
let tabKey = 2049;
88
// 取消订阅所有回调函数
89
let callback = function (keyOptions) {
90
  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
M
mayunteng_1 已提交
91
}
M
mayunteng_1 已提交
92
let keyOption = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0};
M
mayunteng_1 已提交
93
try {
94 95
  inputConsumer.on("key", keyOption, callback);
  inputConsumer.off("key", keyOption);
M
mayunteng_1 已提交
96
  console.log(`Unsubscribe success`);
M
mayunteng_1 已提交
97
} catch (error) {
98
  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
Z
zengyawen 已提交
99 100 101 102
}
```


103
## KeyOptions
Z
zengyawen 已提交
104

105
组合键选项。
Z
zengyawen 已提交
106

107
**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer
Z
zengyawen 已提交
108

M
mayunteng_1 已提交
109 110
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
Z
zengyawen 已提交
111
| preKeys              | Array\<number>   | 是    | 否 | 前置按键集合,数量范围[0, 4],前置按键无顺序要求。 |
M
mayunteng_1 已提交
112
| finalKey             | number  | 是    |  否 | 最终按键,此项必填,最终按键触发上报回调函数。 |
M
mayunteng_1 已提交
113
| isFinalKeyDown       | boolean | 是    |  否 | 最终按键状态。 |
M
mayunteng_1 已提交
114
| finalKeyDownDuration | number  | 是    |  否 | 最终按键保持按下持续时间,为0时立即触发回调函数,大于0时,当isFinalKeyDown为true,则最终按键按下超过此时长后触发回调函数,当isFinalKeyDown为false,则最终按键按下到抬起时间小于此时长时触发回调函数。   |