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

电子说

1.4w人已加入

描述

输入法服务

鸿蒙说明: 本模块首批接口从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   | 是   | 否   | 编辑框的文本属性。`HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿` |

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

## KeyEvent[]()

按键属性值。

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

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

审核编辑 黄宇

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分