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-->