@ohos.inputMethodEngine (输入法服务)(系统接口)

本模块为系统输入法应用提供管理能力,包括创建软键盘窗口、插入/删除字符、选中文本、监听物理键盘按键事件等。

说明:

本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import { inputMethodEngine } from '@kit.IMEKit';

SizeUpdateCallback14+

type SizeUpdateCallback = (size: window.Size, keyboardArea: KeyboardArea) => void

当输入法面板大小变化时触发的回调。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
size window.Size 当前面板大小。
keyboardArea KeyboardArea 当前面板中可作为键盘区域的大小。

Panel10+

下列API均需使用createPanel获取到Panel实例后,通过实例调用。

on('sizeUpdate')14+

on(type: 'sizeUpdate', callback: SizeUpdateCallback): void

监听当前面板大小变化。使用callback异步回调。

说明:

仅用于SOFT_KEYBOARD类型,状态为FLG_FIXED或FLG_FLOATING的面板。输入法通过adjustPanelRect等接口对面板大小进行调节时,系统会根据一定规则校验计算出最终的数值(例如:超出屏幕等场景)。输入法应用可通过该回调获取的真实面板大小,完成最终的面板布局刷新。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 监听当前面板的大小是否产生变化,固定值为'sizeUpdate'。
callback SizeUpdateCallback 回调函数。返回当前软键盘面板的大小,包含宽度和高度值。

示例:

import { window } from '@kit.ArkUI';

panel.on('sizeUpdate', (windowSize: window.Size, keyboardArea: inputMethodEngine.KeyboardArea) => {
  console.info(`panel size changed, windowSize: ${windowSize.width}, ${windowSize.height}, ` +
    `keyboardArea: ${keyboardArea.top}, ${keyboardArea.bottom}, ${keyboardArea.left}, ${keyboardArea.right}`);
});

off('sizeUpdate')14+

off(type: 'sizeUpdate', callback?: SizeUpdateCallback): void

取消监听当前面板大小变化。使用callback异步回调。

说明:

仅用于SOFT_KEYBOARD类型,状态为FLG_FIXED或FLG_FLOATING的面板。输入法通过adjustPanelRect等接口对面板大小进行调节时,系统会根据一定规则校验计算出最终的数值(例如:超出屏幕等场景)。输入法应用可通过该回调获取的真实面板大小,完成最终的面板布局刷新。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
type string 监听当前面板的大小是否产生变化,固定取值为'sizeUpdate'。
callback SizeUpdateCallback 回调函数。返回当前软键盘面板的大小,包含宽度和高度值。

示例:

import { window } from '@kit.ArkUI';

panel.off('sizeUpdate', (windowSize: window.Size, keyboardArea: inputMethodEngine.KeyboardArea) => {
  console.info(`panel size changed, width: ${windowSize.width}, height: ${windowSize.height}`);
});

setShadow22+

setShadow(radius: number, color: string, offsetX: number, offsetY: number): void

设置输入法窗口阴影效果。

说明:

不支持PanelType为SOFT_KEYBOARD类型且PanelFlag状态为FLG_FIXED的面板。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

参数:

参数名 类型 必填 说明
radius number 表示窗口边缘阴影的模糊半径。该参数为浮点数,单位为px,取值范围为[0.0, +∞),取值为0.0时表示关闭窗口边缘阴影。
color string 表示窗口边缘阴影的颜色,为十六进制RGB或ARGB颜色,不区分大小写,例如#000000#FF000000
offsetX number 表示窗口边缘阴影的X轴的偏移量。该参数为浮点数,单位为px。
offsetY number 表示窗口边缘阴影的Y轴的偏移量。该参数为浮点数,单位为px。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档输入法框架错误码

错误码ID 错误信息
202 not system application.
12800013 window manager service error.
12800017 invalid panel type or panel flag. Possible causes: Panel's flag is FLG_FIXED.

示例:

panel.setShadow(20, '#000000', 20, 20);

FluidLightMode20+

枚举,输入法流光模式。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

名称 说明
NONE 0 不使用流光模式。
BACKGROUND_FLUID_LIGHT 1 开启背景流光模式。此时系统面板会变为透明,流光效果需要由编辑框宿主应用实现。

EditorAttribute20+

编辑框属性值。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

名称 类型 只读 可选 说明
fluidLightMode FluidLightMode 流光模式。如果没有设置或设置非法值,默认不使用流光模式。
该属性仅系统应用可以使用。

ImmersiveEffect20+

沉浸效果。

系统能力: SystemCapability.MiscServices.InputMethodFramework

系统接口: 此接口为系统接口。

名称 类型 只读 可选 说明
fluidLightMode FluidLightMode 流光模式,如果不填充,则默认为NONE。
该属性仅系统应用可以使用。