• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 组合按键开发指导
2
3## 场景介绍
4
5组合按键提供订阅组合按键、设置屏蔽按键拦截状态等能力。使用场景例如:当用户需要组合按键实现快捷功能时,开发者可以通过订阅组合按键,通过组合按键启用快捷功能。
6
7## 导入模块
8
9```js
10import { inputConsumer } from '@kit.InputKit';
11```
12
13## 接口说明
14
15组合按键管理常用接口如下表所示,接口详细介绍请参考[ohos.multimodalInput.inputConsumer文档](../../reference/apis-input-kit/js-apis-inputconsumer-sys.md)。
16
17| 接口名称  | 描述 |
18| ------------------------------------------------------------ | -------------------------- |
19| on(type: 'key', keyOptions: KeyOptions, callback: Callback<KeyOptions>): void | 订阅组合按键。 |
20| off(type: 'key', keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void | 取消订阅组合按键。 |
21| setShieldStatus(shieldMode: ShieldMode, isShield: boolean): void | 设置屏蔽按键拦截状态。 |
22| getShieldStatus(shieldMode: ShieldMode): boolean | 获取屏蔽按键拦截是否生效。 |
23
24## 开发步骤
25
26使用特定组合按键的应用开启时调用[on](../../reference/apis-input-kit/js-apis-inputconsumer-sys.md#inputconsumeron)方法订阅组合键,当应用
27应用关闭时再用[off](../../reference/apis-input-kit/js-apis-inputconsumer-sys.md#inputconsumeroff)方法取消组合键订阅。
28
29```js
30let leftAltKey = 2045;
31let tabKey = 2049;
32let callback = (keyOptions: inputConsumer.KeyOptions) => {
33  console.log(`keyOptions: ${JSON.stringify(keyOptions)}`);
34}
35//应用开启
36let keyOption: inputConsumer.KeyOptions = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0};
37try {
38  inputConsumer.on("key", keyOption, callback);//订阅组合键
39} catch (error) {
40  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
41}
42//应用关闭
43try {
44  inputConsumer.off("key", keyOption, callback);//取消订阅组合键
45  console.log(`Unsubscribe success`);
46} catch (error) {
47  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
48}
49```