js-apis-inputconsumer.md 4.6 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

## 导入模块

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

## inputConsumer.on

19
on(type: 'key', keyOptions: KeyOptions, callback: Callback<KeyOptions>): void
Z
zengyawen 已提交
20

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

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

Z
zengyawen 已提交
25 26
**参数:** 

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

**示例:** 

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


## inputConsumer.off

50
off(type: 'key', keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void
Z
zengyawen 已提交
51

52
取消订阅组合按键。
Z
zengyawen 已提交
53 54 55 56 57

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

**参数:** 

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

**示例:** 

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

99
## KeyOptions
Z
zengyawen 已提交
100

101
组合键选项。
Z
zengyawen 已提交
102

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

M
mayunteng_1 已提交
105 106
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
107 108 109 110
| preKeys    | Array\<number>   | 是    | 否 | 前置按键集合,数量范围[0, 4],前置按键无顺序要求。<br>如组合按键Ctrl+Alt+A中,Ctrl+Alt称为前置按键。 |
| finalKey             | number  | 是    |  否 | 最终按键,此项必填,最终按键触发上报回调函数。<br>如组合按键Ctrl+Alt+A中,A称为最终按键按键。 |
| isFinalKeyDown       | boolean | 是    |  否 | 最终按键状态。<br>ture表示按键按下,false表示按键抬起。 |
| finalKeyDownDuration | number  | 是    |  否 | 最终按键保持按下持续时间,单位为微秒(μs)。<br>当finalKeyDownDuration为0时,立即触发回调函数。<br>当finalKeyDownDuration大于0时,isFinalKeyDown为true,则最终按键按下超过设置时长后触发回调函数;isFinalKeyDown为false,则最终按键按下到抬起时间小于设置时长时触发回调函数。   |