0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发系统基础能力:ohos.inputMethodEngine 输入法服务

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-26 09:42 次阅读

输入法服务

icon-note.gif说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

导入模块

import inputMethodEngine from '@ohos.inputMethodEngine';

inputMethodEngine

常量值。

系统能力 :以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

名称参数类型可读可写说明
ENTER_KEY_TYPE_UNSPECIFIEDnumber无功能键。
ENTER_KEY_TYPE_GOnumber“前往”功能键。
ENTER_KEY_TYPE_SEARCHnumber“搜索”功能键。
ENTER_KEY_TYPE_SENDnumber“发送”功能键。
ENTER_KEY_TYPE_NEXTnumber“下一个”功能键。
ENTER_KEY_TYPE_DONEnumber“回车”功能键。
ENTER_KEY_TYPE_PREVIOUSnumber“前一个”功能键。
PATTERN_NULLnumber无特殊性编辑框。
PATTERN_TEXTnumber文本编辑框。
PATTERN_NUMBERnumber数字编辑框。
PATTERN_PHONEnumber电话号码编辑框。
PATTERN_DATETIMEnumber日期编辑框。
PATTERN_EMAILnumber邮件编辑框。
PATTERN_URInumber超链接编辑框。
PATTERN_PASSWORDnumber密码编辑框。
OPTION_ASCIInumber允许输入ASCII值。
OPTION_NONEnumber不指定编辑框输入属性。
OPTION_AUTO_CAP_CHARACTERSnumber允许输入字符。
OPTION_AUTO_CAP_SENTENCESnumber允许输入句子。
OPTION_AUTO_WORDSnumber允许输入单词。
OPTION_MULTI_LINEnumber允许输入多行。
OPTION_NO_FULLSCREENnumber半屏样式。
FLAG_SELECTINGnumber编辑框处于选择状态。
FLAG_SINGLE_LINEnumber编辑框为单行。
DISPLAY_MODE_PARTnumber编辑框显示为半屏。
DISPLAY_MODE_FULLnumber编辑框显示为全屏。

inputMethodEngine.getInputMethodEngine[]()

getInputMethodEngine(): InputMethodEngine

获取服务端实例。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
[InputMethodEngine]服务端实例。

示例:

var InputMethodEngine = inputMethodEngine.getInputMethodEngine();

inputMethodEngine.createKeyboardDelegate[]()

createKeyboardDelegate(): KeyboardDelegate

获取客户端监听实例。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
[KeyboardDelegate]客户端监听实例。

示例:

var KeyboardDelegate = inputMethodEngine.createKeyboardDelegate();

InputMethodEngine[]()

下列API示例中都需使用[getInputMethodEngine]回调获取到InputMethodEngine实例,再通过此实例调用对应方法。

on('inputStart')[]()

on(type: 'inputStart', callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void

订阅输入法绑定成功事件,使用callback回调返回输入法操作相关实例。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 -type为‘inputStart’时表示订阅输入法绑定。
callback[KeyboardController], [TextInputClient]回调返回输入法操作相关实例。

示例:

InputMethodEngine.on('inputStart', (kbController, textInputClient) = > {
    KeyboardController = kbController;
    TextInputClient = textInputClient;
});

off('inputStart')

off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void

取消订阅输入法绑定成功事件。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 -type为‘inputStart’时表示订阅输入法绑定。
callback[KeyboardController], [TextInputClient]回调返回输入法操作相关实例。

示例:

InputMethodEngine.off('inputStart');

on('keyboardShow'|'keyboardHide')

on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void

订阅输入法事件。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为'keyboardShow',表示订阅输入法显示。 - type为'keyboardHide',表示订阅输入法隐藏。
callbackvoid回调函数。

示例:

InputMethodEngine.on('keyboardShow', (err) = > {
    console.info('keyboardShow');
});

off('keyboardShow'|'keyboardHide')

off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void

取消订阅输入法事件。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为'keyboardShow',表示订阅输入法显示。 - type为'keyboardHide',表示订阅输入法隐藏。
callbackvoid回调函数。

示例:

InputMethodEngine.off('keyboardShow');

KeyboardDelegate[]()

下列API示例中都需使用[createKeyboardDelegate]回调获取到KeyboardDelegate实例,再通过此实例调用对应方法。

on('keyDown'|'keyUp')

on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void

订阅硬键盘事件,使用callback回调返回按键信息

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为'keyDown',表示订阅硬键盘按下。 - type为'keyUp',表示订阅硬键盘抬起。
callback[KeyEvent]回调返回按键信息。

示例:

KeyboardDelegate.on('keyDown', (event) = > {
    console.info('keyDown');
});

off('keyDown'|'keyUp')

off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void

取消订阅硬键盘事件。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为'keyDown',表示订阅硬键盘按下。 - type为'keyUp',表示订阅硬键盘抬起。
callback[KeyEvent]回调返回按键信息。

示例:

KeyboardDelegate.off('keyDown');

on('cursorContextChange')

on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) => void): void

订阅光标变化事件,使用callback回调返回光标信息。

系统能力 : SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 光标变化事件。
-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 是   | 回调返回光标信息。                                           |

示例:

```js
KeyboardDelegate.on('cursorContextChange', (x, y, height) = > {
    console.info('cursorContextChange');
});
### off('cursorContextChange')

off(type: 'cursorContextChange', callback?: (x: number, y:number, height:number) => void): void

取消订阅光标变化事件。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
typestring光标变化事件。
-type为’cursorContextChange‘时,表示光标变化。
callbacknumber回调返回光标信息。
**示例:**
KeyboardDelegate.off('cursorContextChange');
### on('selectionChange')

on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void

订阅文本选择变化事件,使用callback回调返回文本选择信息。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
typestring文本选择变化事件。
-type为’selectionChange‘时,表示选择文本变化。
callbacknumber回调返回文本选择信息。
**示例:**
KeyboardDelegate.on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) = > {
    console.info('selectionChange');
});
### off('selectionChange')

off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void

取消订阅文本选择变化事件。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
typestring文本选择变化事件。
-type为’selectionChange‘时,表示选择文本变化。
callbacknumber回调返回文本选择信息。
**示例:**
KeyboardDelegate.off('selectionChange');
### on('textChange')

on(type: 'textChange', callback: (text: string) => void): void

订阅文本变化事件,使用callback回调返回当前文本内容。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
typestring文本变化事件。
-type为’textChange‘时,表示当前文本变化。
callbackstring回调返回当前文本内容。
**示例:**
KeyboardDelegate.on('textChange', (text) = > {
    console.info('textChange');
});
### off('textChange')

off(type: 'textChange', callback?: (text: string) => void): void

取消订阅文本变化事件。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
typestring文本变化事件。
-type为’textChange‘时,表示当前文本变化。
callbackstring回调返回当前文本内容。
**示例:**
KeyboardDelegate.off('textChange');
## KeyboardController[]()

下列API示例中都需使用[inputStart]回调获取到KeyboardController实例,再通过此实例调用对应方法。

### hideKeyboard

hideKeyboard(callback: AsyncCallback): void

隐藏输入法。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名   | 类型          | 必填 | 说明     |
| ---------- | --------------- | ------ | ---------- |
| callback | AsyncCallback | 否   | 回调函数 |

**示例:**

KeyboardController.hideKeyboard(()= >{
});

### hideKeyboard

hideKeyboard(): Promise

隐藏输入法。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**返回值:**

| 类型    | 说明     |
| --------- | ---------- |
| Promise | 回调函数 |

**示例:**

KeyboardController.hideKeyboard();

## TextInputClient[]()

下列API示例中都需使用[inputStart]回调获取到TextInputClient实例,再通过此实例调用对应方法。

### getForward

getForward(length:number, callback: AsyncCallback): void

获取光标前固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名   | 类型          | 必填 | 说明       |
| ---------- | --------------- | ------ | ------------ |
| length   | number        | 是   | 文本长度。 |
| callback | AsyncCallback | 是   | 返回文本。 |

**示例:**

TextInputClient.getForward(5,(text) = >{
console.info("text = " + text);
});

### getForward

getForward(length:number): Promise

获取光标前固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名 | 类型   | 必填 | 说明       |
| -------- | -------- | ------ | ------------ |
| length | number | 是   | 文本长度。 |

**返回值:**

| 类型    | 说明       |
| --------- | ------------ |
| Promise | 返回文本。 |

**示例:**

var text = TextInputClient.getForward(5);
console.info("text = " + text);

### getBackward

getBackward(length:number, callback: AsyncCallback): void

获取光标后固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名   | 类型          | 必填 | 说明       |
| ---------- | --------------- | ------ | ------------ |
| length   | number        | 是   | 文本长度。 |
| callback | AsyncCallback | 是   | 返回文本。 |

**示例:**

TextInputClient.getBackward(5,(text)= >{
console.info("text = " + text);
});

### getBackward

getBackward(length:number): Promise

获取光标后固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名 | 类型   | 必填 | 说明       |
| -------- | -------- | ------ | ------------ |
| length | number | 是   | 文本长度。 |

**返回值:**

| 类型    | 说明       |
| --------- | ------------ |
| Promise | 返回文本。 |

**示例:**

var text = TextInputClient.getBackward(5);
console.info("text = " + text);

### deleteForward

deleteForward(length:number, callback: AsyncCallback): void

删除光标前固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名   | 类型          | 必填 | 说明           |
| ---------- | --------------- | ------ | ---------------- |
| length   | number        | 是   | 文本长度。     |
| callback | AsyncCallback | 是   | 操作成功与否。 |

**示例:**

TextInputClient.deleteForward(5,(isSuccess)= >{
console.info("isSuccess = " + isSuccess);
});

### deleteForward

deleteForward(length:number): Promise

删除光标前固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
lengthnumber文本长度。
**返回值:**
类型说明
Promise< boolean >操作成功与否。
**示例:**
var isSuccess = TextInputClient.deleteForward(5);
 console.info("isSuccess = " + isSuccess);
### deleteBackward

deleteBackward(length:number, callback: AsyncCallback): void

删除光标后固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
lengthnumber文本长度。
callbackAsyncCallback操作成功与否。
**示例:**
TextInputClient.deleteBackward(5, (isSuccess)= >{
 console.info("isSuccess = " + isSuccess);
});
### deleteBackward

deleteBackward(length:number): Promise

删除光标后固定长度的文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名 | 类型   | 必填 | 说明       |
| -------- | -------- | ------ | ------------ |
| length | number | 是   | 文本长度。 |

**返回值:**

| 类型    | 说明           |
| --------- | ---------------- |
| Promise | 操作成功与否。 |

**示例:**
var isSuccess = TextInputClient.deleteBackward(5);
 console.info("isSuccess = " + isSuccess);
### sendKeyFunction

sendKeyFunction(action:number, callback: AsyncCallback): void

发送功能键。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
actionnumber编辑框属性。
callbackAsyncCallback< boolean >操作成功与否。
**示例:**
TextInputClient.sendKeyFunction(inputMethod.ENTER_KEY_TYPE_NEXT,(isSuccess)= >{
  console.info("isSuccess = " + isSuccess);
});
### sendKeyFunction

sendKeyFunction(action:number): Promise

发送功能键。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名 | 类型   | 必填 | 说明         |
| -------- | -------- | ------ | -------------- |
| action | number | 是   | 编辑框属性。 |

**返回值:**

| 类型    | 说明           |
| --------- | ---------------- |
| Promise | 操作成功与否。 |

**示例:**

var isSuccess = TextInputClient.sendKeyFunction(inputMethod.ENTER_KEY_TYPE_NEXT);
console.info("isSuccess = " + isSuccess);

### insertText

insertText(text:string, callback: AsyncCallback): void

插入文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**
参数名类型必填说明
textstring文本。
callbackAsyncCallback< boolean >操作成功与否。
**示例:**
TextInputClient.insertText("test", (isSuccess)= >{
  console.info("isSuccess = " + isSuccess);
});
### insertText

insertText(text:string): Promise

插入文本。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名 | 类型   | 必填 | 说明   |
| -------- | -------- | ------ | -------- |
| text   | string | 是   | 文本。 |

**返回值:**

| 类型    | 说明           |
| --------- | ---------------- |
| Promise | 操作成功与否。 |

**示例:**

var isSuccess = TextInputClient.insertText("test");
console.info("isSuccess = " + isSuccess);

### getEditorAttribute

getEditorAttribute(callback: AsyncCallback): void

获取编辑框属性值。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**参数:**

| 参数名   | 类型                             | 必填 | 说明           |
| ---------- | ---------------------------------- | ------ | ---------------- |
| callback | AsyncCallback< [EditorAttribute] > | 是   | 编辑框属性值。 |

**示例:**

TextInputClient.getEditorAttribute((EditorAttribute)= >{
});

### getEditorAttribute

getEditorAttribute(): EditorAttribute

获取编辑框属性值。

 **系统能力** : SystemCapability.Miscservices.InputMethodFramework

**返回值:**

| 类型                       | 说明               |
| ---------------------------- | -------------------- |
| Promise< [EditorAttribute] > | 返回编辑框属性值。 |

**示例:**

var EditorAttribute = TextInputClient.getEditorAttribute();

## )EditorAttribute[]()

编辑框属性值。

 **系统能力** :以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

| 名称         | 参数类型 | 可读 | 可写 | 说明                                                                           |
| -------------- | ---------- | ------ | ------ | -------------------------------------------------------------------------------- |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。                                                             |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。`HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿` |

![搜狗高速浏览器截图20240326151547.png](//file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)

## KeyEvent[]()

按键属性值。

 **系统能力** :以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

| 名称      | 参数类型 | 可读 | 可写 | 说明         |
| ----------- | ---------- | ------ | ------ | -------------- |
| keyCode   | number   | 是   | 否   | 按键的键值。 |
| keyAction | number   | 是   | 否   | 按键的状态。 |

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2371

    浏览量

    42910
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS实战开发:【多设备自适应服务卡片】

    服务卡片的布局和使用,其中卡片内容显示使用了一次开发,多端部署的能力实现多设备自适应。 用到了卡片扩展模块接口,[@ohos
    的头像 发表于 04-09 09:20 885次阅读
    <b class='flag-5'>鸿蒙</b>OS实战<b class='flag-5'>开发</b>:【多设备自适应<b class='flag-5'>服务</b>卡片】

    鸿蒙实战项目开发:【短信服务

    数据管理 电话服务 分布式应用开发 通知与窗口管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计 鸿蒙系统
    发表于 03-03 21:29

    如何对android的输入法服务开机进行初始化呢

    android输入法如何启动流程呢?如何对android的输入法服务开机进行初始化呢?
    发表于 03-03 07:56

    【PIMF】OpenHarmony啃论文俱乐部——OpenHarmony标准系统输入法以及中文拼音输入法原理

    打字,并上屏输入字符到应用客户端。相关API接口文档输入法框架模块接口使用说明输入法服务模块接口使用说明输入法框架是什么应用调用输入法实现内
    发表于 05-23 11:02

    鸿蒙原生应用/元服务开发-Stage模型能力接口(一)

    @ohos.app.ability.Ability (Ability基类)一、说明 UIAbility和ExtensionAbility的基类,提供系统配置更新回调和系统内存调整回调。本模块首批接口
    发表于 12-08 16:34

    鸿蒙原生应用/元服务开发-Stage模型能力接口(二)

    系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core2.AbilityConstant.LaunchReas
    发表于 12-11 14:48

    鸿蒙原生应用/元服务开发-Stage模型能力接口(四)

    ‘@ohos.app.ability.AbilityStage’; 1.AbilityStage.onCreate onCreate(): void 当应用创建时调用。 系统能力
    发表于 12-14 15:39

    鸿蒙原生应用/元服务开发-Stage模型能力接口(五)

    在Stage模型下使用 二、 导入模块 import common from \'@ohos.app.ability.common\'; 三、系统能力 :以下各项对应的系统
    发表于 12-15 15:11

    鸿蒙原生应用/元服务开发-Stage模型能力接口(六)

    、 ContextConstant.AreaMode 使用时通过ContextConstant.AreaMode获取。 系统能力 :以下各项对应的系统能力均为
    发表于 12-18 14:40

    鸿蒙原生应用/元服务开发-Stage模型能力接口(七)

    下文ApplicationContext对系统环境变化监听回调的能力,包括onConfigurationUpdated方法。本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记
    发表于 12-19 11:03

    鸿蒙原生应用/元服务开发-Stage模型能力接口(八)

    ‘@ohos.app.ability.ExtensionAbility’; 系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore 示例: class MyExtens
    发表于 12-20 16:12

    嵌入式中文输入法设计

    本文比较了嵌入式系统中拼音输入法和笔画输入法的优缺点,介绍了嵌入式系统中的中文输入法的基本设计思想。本文重点介绍拼音
    发表于 06-19 08:29 41次下载

    鸿蒙开发系统基础能力ohos.hilog 日志打印

    hilog日志系统,使应用/服务可以按照指定级别、标识和格式字符串输出日志内容,帮助开发者了解应用/服务的运行状态,更好地调试程序。
    的头像 发表于 06-25 15:59 484次阅读

    鸿蒙开发系统基础能力ohos.inputMethod 输入法框架

    以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework
    的头像 发表于 06-26 09:49 775次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>系统</b>基础<b class='flag-5'>能力</b>:<b class='flag-5'>ohos</b>.inputMethod <b class='flag-5'>输入法</b>框架

    瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法

    本文适用于触觉智能所有支持Android11系统开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源
    的头像 发表于 09-24 09:43 483次阅读
    瑞芯微RK3566<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>板Android11修改第三方<b class='flag-5'>输入法</b>为默认<b class='flag-5'>输入法</b>