HarmonyOS 鸿蒙Next inputMethodEngine.getInputMethodEngine api无效

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next inputMethodEngine.getInputMethodEngine api无效

inputMethodEngine.getInputMethodEngine().on(‘keyboardShow’, () => { console.log(‘输入法显示’); }); inputMethodEngine.getInputMethodEngine().on(‘keyboardHide’, () => { console.log(‘输入法隐藏’); });

API 无效果,如何实现监听软键盘打开和关闭?

2 回复

inputMethodEngine.getInputMethodAbility() 方法已废弃,推荐使用 getInputMethodAbility() 替代,

try {
  inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
    console.log('inputMethodEngine keyboardShow.');
  });

  inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
    console.log('inputMethodEngine keyboardHide.');
  });
} catch (err) {
  console.error(`Failed to InputMethodEngine: ${JSON.stringify(err)}`);
}

1、验证了,可以监听到;

该接口属于输入法应用的方法,非输入法应用无法触发监听。

@ohos.inputMethodEngine (输入法服务):本模块面向输入法应用(包括系统输入法应用、三方输入法应用),为输入法应用提供能力,包括:创建软键盘窗口、插入/删除字符、选中文本、监听物理键盘按键事件等。

2、可使用window.on(‘keyboardHeightChange’)监听键盘高度,来判断软键盘的显示与隐藏

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#onkeyboardheightchange7

更多关于HarmonyOS 鸿蒙Next inputMethodEngine.getInputMethodEngine api无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题中提到的“HarmonyOS 鸿蒙Next inputMethodEngine.getInputMethodEngine api无效”的问题,以下是专业且直接的回答:

在HarmonyOS中,如果inputMethodEngine.getInputMethodEngine API无效,可能的原因包括但不限于:

  1. 权限问题:确保你的应用已经声明了使用输入法引擎的必要权限。在config.json中检查并添加相关权限声明。

  2. API调用时机:检查API的调用时机是否正确。在某些情况下,如果系统尚未完全准备好或相关服务未启动,调用该API可能会失败。

  3. 输入法引擎状态:确认输入法引擎是否已经正确注册并处于可用状态。如果引擎未正确注册或已被禁用,调用该API将无效。

  4. 系统版本兼容性:确认你的HarmonyOS系统版本是否支持该API。不同版本的系统可能对API的支持有所不同。

  5. 代码实现问题:检查代码实现是否有误,如参数传递错误、对象初始化不当等。

如果以上检查均无误,但问题依旧存在,可能是由于系统内部的bug或其他未知原因。此时,建议直接联系官网客服以获取更专业的帮助。官网客服地址是:

https://www.itying.com/category-93-b0.html

如果问题依旧没法解决请联系官网客服。

回到顶部