• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.inputMethodEngine (输入法服务)(系统接口)
2
3本模块为系统输入法应用提供管理能力,包括创建软键盘窗口、插入/删除字符、选中文本、监听物理键盘按键事件等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { inputMethodEngine } from '@kit.IMEKit';
13```
14
15## SizeUpdateCallback<sup>14+</sup>
16
17type SizeUpdateCallback = (size: window.Size, keyboardArea: KeyboardArea) => void
18
19当输入法面板大小变化时触发的回调。
20
21**系统能力:** SystemCapability.MiscServices.InputMethodFramework
22
23**系统接口:** 此接口为系统接口。
24
25| 参数名       | 类型                                                 | 必填 | 说明                             |
26| ------------ | ---------------------------------------------------- | ---- | -------------------------------- |
27| size         | [window.Size](../apis-arkui/js-apis-window.md#size7) | 是   | 当前面板大小。                   |
28| keyboardArea | [KeyboardArea](./js-apis-inputmethodengine.md#keyboardarea15)    | 是   | 当前面板中可作为键盘区域的大小。 |
29
30## Panel<sup>10+</sup>
31
32下列API均需使用[createPanel](./js-apis-inputmethodengine.md#createpanel10)获取到Panel实例后,通过实例调用。
33
34### on('sizeUpdate')<sup>14+</sup>
35
36on(type: 'sizeUpdate', callback: SizeUpdateCallback): void
37
38监听当前面板大小变化。使用callback异步回调。
39
40> **说明:**
41>
42> 仅用于SOFT_KEYBOARD类型,状态为FLG_FIXED或FLG_FLOATING的面板。输入法通过[adjustPanelRect](./js-apis-inputmethodengine.md#adjustpanelrect15)等接口对面板大小进行调节时,系统会根据一定规则校验计算出最终的数值(例如:超出屏幕等场景)。输入法应用可通过该回调获取的真实面板大小,完成最终的面板布局刷新。
43
44**系统能力:** SystemCapability.MiscServices.InputMethodFramework
45
46**系统接口:** 此接口为系统接口。
47
48**参数:**
49
50| 参数名   | 类型                                        | 必填 | 说明                                                   |
51| -------- | ------------------------------------------- | ---- | ------------------------------------------------------ |
52| type     | string                                      | 是   | 监听当前面板的大小是否产生变化,固定值为'sizeUpdate'。 |
53| callback | [SizeUpdateCallback](#sizeupdatecallback14) | 是   | 回调函数。返回当前软键盘面板的大小,包含宽度和高度值。 |
54
55**示例:**
56
57```ts
58import { window } from '@kit.ArkUI';
59
60try {
61  panel.on('sizeUpdate', (windowSize: window.Size, keyboardArea: inputMethodEngine.KeyboardArea) => {
62    console.info(`panel size changed, windowSize: ${JSON.stringify(windowSize)}, keyboardArea: ${JSON.stringify(keyboardArea)}`);
63  });
64} catch(err) {
65  console.error(`Failed to subscribe sizeUpdate: ${JSON.stringify(err)}`);
66}
67```
68
69### off('sizeUpdate')<sup>14+</sup>
70
71off(type: 'sizeUpdate', callback?: SizeUpdateCallback): void
72
73取消监听当前面板大小变化。使用callback异步回调。
74
75> **说明:**
76>
77> 仅用于SOFT_KEYBOARD类型,状态为FLG_FIXED或FLG_FLOATING的面板。输入法通过[adjustPanelRect](./js-apis-inputmethodengine.md#adjustpanelrect15)等接口对面板大小进行调节时,系统会根据一定规则校验计算出最终的数值(例如:超出屏幕等场景)。输入法应用可通过该回调获取的真实面板大小,完成最终的面板布局刷新。
78
79**系统能力:** SystemCapability.MiscServices.InputMethodFramework
80
81**系统接口:** 此接口为系统接口。
82
83**参数:**
84
85| 参数名   | 类型                                        | 必填 | 说明                                                     |
86| -------- | ------------------------------------------- | ---- | -------------------------------------------------------- |
87| type     | string                                      | 是   | 监听当前面板的大小是否产生变化,固定取值为'sizeUpdate'。 |
88| callback | [SizeUpdateCallback](#sizeupdatecallback14) | 否   | 回调函数。返回当前软键盘面板的大小,包含宽度和高度值。   |
89
90**示例:**
91
92```ts
93import { window } from '@kit.ArkUI';
94
95try {
96  panel.off('sizeUpdate', (windowSize: window.Size, keyboardArea: inputMethodEngine.KeyboardArea) => {
97    console.info(`panel size changed, width: ${windowSize.width}, height: ${windowSize.height}`);
98  });
99} catch(err) {
100    console.error(`Failed to subscribe sizeUpdate: ${JSON.stringify(err)}`);
101}
102```
103<!--no_check-->