Input Method Engine

icon-note.gif NOTE
The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import inputMethodEngine from '@ohos.inputMethodEngine';

inputMethodEngine

Defines constant values.

System capability: SystemCapability.Miscservices.InputMethodFramework

Name Type Readable Writable Description
ENTER_KEY_TYPE_UNSPECIFIED number Yes No No function is specified for the Enter key.
ENTER_KEY_TYPE_GO number Yes No The Enter key takes the user to the target.
ENTER_KEY_TYPE_SEARCH number Yes No The Enter key takes the user to the results of their searching.
ENTER_KEY_TYPE_SEND number Yes No The Enter key sends the text to its target.
ENTER_KEY_TYPE_NEXT number Yes No The Enter key takes the user to the next field.
ENTER_KEY_TYPE_DONE number Yes No The Enter key takes the user to the next line.
ENTER_KEY_TYPE_PREVIOUS number Yes No The Enter key takes the user to the previous field.
PATTERN_NULL number Yes No Any type of edit box.
PATTERN_TEXT number Yes No Text edit box.
PATTERN_NUMBER number Yes No Number edit box.
PATTERN_PHONE number Yes No Phone number edit box.
PATTERN_DATETIME number Yes No Date edit box.
PATTERN_EMAIL number Yes No Email edit box.
PATTERN_URI number Yes No URI edit box.
PATTERN_PASSWORD number Yes No Password edit box.
OPTION_ASCII number Yes No ASCII values are allowed.
OPTION_NONE number Yes No No input attribute is specified.
OPTION_AUTO_CAP_CHARACTERS number Yes No Characters are allowed.
OPTION_AUTO_CAP_SENTENCES number Yes No Sentences are allowed.
OPTION_AUTO_WORDS number Yes No Words are allowed.
OPTION_MULTI_LINE number Yes No Multiple lines are allowed.
OPTION_NO_FULLSCREEN number Yes No Half-screen style.
FLAG_SELECTING number Yes No The edit box is being selected.
FLAG_SINGLE_LINE number Yes No The edit box allows only single-line input.
DISPLAY_MODE_PART number Yes No The edit box is displayed in half-screen mode.
DISPLAY_MODE_FULL number Yes No The edit box is displayed in full screen.

inputMethodEngine.getInputMethodEngine

getInputMethodEngine(): InputMethodEngine

Obtains an InputMethodEngine instance.

System capability: SystemCapability.Miscservices.InputMethodFramework

Return value

Type Description
InputMethodEngine InputMethodEngine instance obtained.

Example

var InputMethodEngine = inputMethodEngine.getInputMethodEngine();

inputMethodEngine.createKeyboardDelegate

createKeyboardDelegate(): KeyboardDelegate

Obtains a KeyboardDelegate instance.

System capability: SystemCapability.Miscservices.InputMethodFramework

Return value

Type Description
KeyboardDelegate KeyboardDelegate instance obtained.

Example

var KeyboardDelegate = inputMethodEngine.createKeyboardDelegate();

InputMethodEngine

In the following API examples, you must first use getInputMethodEngine to obtain an InputMethodEngine instance, and then call the APIs using the obtained instance.

on('inputStart')

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

Listens for the input method binding event. This API uses a callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'inputStart', which indicates listening for the input method binding event.
callback KeyboardController, TextInputClient Yes Callback used to return the result.

Example

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

off('inputStart')

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

Cancels listening for the input method binding event.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'inputStart', which indicates listening for the input method binding event.
callback KeyboardController, TextInputClient No Callback used to return the result.

Example

InputMethodEngine.off('inputStart');

on('keyboardShow'|'keyboardHide')

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

Listens for an input method event.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
- The value 'keyboardShow' means to listen for displaying of the input method.
- The value 'keyboardHide' means to listen for hiding of the input method.
callback void No Callback used to return the result.

Example

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

off('keyboardShow'|'keyboardHide')

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

Cancels listening for an input method event.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
- The value 'keyboardShow' means to listen for displaying of the input method.
- The value 'keyboardHide' means to listen for hiding of the input method.
callback void No Callback used to return the result.

Example

InputMethodEngine.off('keyboardShow');

KeyboardDelegate

In the following API examples, you must first use createKeyboardDelegate to obtain a KeyboardDelegate instance, and then call the APIs using the obtained instance.

on('keyDown'|'keyUp')

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

Listens for a hard keyboard even. This API uses a callback to return the key information.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
- The value 'keyDown' means to listen for pressing of a key.
- The value 'keyUp' means to listen for releasing of a key.
callback KeyEvent Yes Callback used to return the key information.

Example

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

off('keyDown'|'keyUp')

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

Cancels listening for a hard keyboard even.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
- The value 'keyDown' means to listen for pressing of a key.
- The value 'keyUp' means to listen for releasing of a key.
callback KeyEvent No Callback used to return the key information.

Example

KeyboardDelegate.off('keyDown');

on('cursorContextChange')

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

Listens for cursor context changes. This API uses a callback to return the cursor information.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'cursorContextChange', which indicates listening for cursor context changes.
callback number Yes Callback used to return the cursor information.

Example

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

off('cursorContextChange')

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

Cancels listening for cursor context changes.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'cursorContextChange', which indicates listening for cursor context changes.
callback number No Callback used to return the cursor information.

Example

KeyboardDelegate.off('cursorContextChange');

on('selectionChange')

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

Listens for text selection changes. This API uses a callback to return the text selection information.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'selectionChange', which indicates listening for text selection changes.
callback number Yes Callback used to return the text selection information.

Example

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

Cancels listening for text selection changes.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'selectionChange', which indicates listening for text selection changes.
callback number No Callback used to return the text selection information.

Example

KeyboardDelegate.off('selectionChange');

on('textChange')

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

Listens for text changes. This API uses a callback to return the current text content.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'textChange', which indicates listening for text changes.
callback string Yes Callback used to return the current text content.

Example

KeyboardDelegate.on('textChange', (text) => {
    console.info('textChange');
});

off('textChange')

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

Cancels listening for text changes.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
type string Yes Listening type.
Set it to 'textChange', which indicates listening for text changes.
callback string No Callback used to return the current text content.

Example

KeyboardDelegate.off('textChange');

KeyboardController

In the following API examples, you must first use inputStart to obtain a KeyboardController instance, and then call the APIs using the obtained instance.

hideKeyboard

hideKeyboard(callback: AsyncCallback<void>): void

Hides the keyboard. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> No Callback used to return the result.

Example

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

hideKeyboard

hideKeyboard(): Promise<void>

Hides the keyboard. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Return value

Type Description:
Promise<void> Promise used to return the result.

Example

 KeyboardController.hideKeyboard();

TextInputClient

In the following API examples, you must first use inputStart to obtain a TextInputClient instance, and then call the APIs using the obtained instance.

getForward

getForward(length:number, callback: AsyncCallback<string>): void

Obtains the specific-length text before the cursor. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.
callback AsyncCallback<string> Yes Text returned.

Example

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

getForward

getForward(length:number): Promise<string>

Obtains the specific-length text before the cursor. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.

Return value

Type Description
Promise<string> Text returned.

Example

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

getBackward

getBackward(length:number, callback: AsyncCallback<string>): void

Obtains the specific-length text after the cursor. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.
callback AsyncCallback<string> Yes Text returned.

Example

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

getBackward

getBackward(length:number): Promise<string>

Obtains the specific-length text after the cursor. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.

Return value

Type Description
Promise<string> Text returned.

Example

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

deleteForward

deleteForward(length:number, callback: AsyncCallback<boolean>): void

Deletes the fixed-length text before the cursor. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.
callback AsyncCallback<boolean> Yes Returns whether the operation is successful.

Example

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

deleteForward

deleteForward(length:number): Promise<boolean>

Deletes the fixed-length text before the cursor. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.

Return value

Type Description
Promise<boolean> Returns whether the operation is successful.

Example

 var isSuccess = TextInputClient.deleteForward(5);
 console.info("isSuccess = " + isSuccess);

deleteBackward

deleteBackward(length:number, callback: AsyncCallback<boolean>): void

Deletes the fixed-length text after the cursor. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.
callback AsyncCallback<boolean> Yes Returns whether the operation is successful.

Example

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

deleteBackward

deleteBackward(length:number): Promise<boolean>

Deletes the fixed-length text after the cursor. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
length number Yes Text length.

Return value

Type Description
Promise<boolean> Returns whether the operation is successful.

Example

var isSuccess = TextInputClient.deleteBackward(5);
console.info("isSuccess = " + isSuccess);

sendKeyFunction

sendKeyFunction(action:number, callback: AsyncCallback<boolean>): void

Sets the Enter key to send the text to its target. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
action number Yes Edit box attribute.
callback AsyncCallback<boolean> Yes Returns whether the operation is successful.

Example

 TextInputClient.sendKeyFunction(inputMethod.ENTER_KEY_TYPE_NEXT,(isSuccess)=>{
  console.info("isSuccess = " + isSuccess);
});

sendKeyFunction

sendKeyFunction(action:number): Promise<boolean>

Sets the Enter key to send the text to its target. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
action number Yes Edit box attribute.

Return value

Type Description
Promise<boolean> Returns whether the operation is successful.

Example

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

insertText

insertText(text:string, callback: AsyncCallback<boolean>): void

Inserts text. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
text string Yes Text to insert.
callback AsyncCallback<boolean> Yes Returns whether the operation is successful.

Example

TextInputClient.insertText("test", (isSuccess)=>{
  console.info("isSuccess = " + isSuccess);
});

insertText

insertText(text:string): Promise<boolean>

Inserts text. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
text string Yes Text to insert.

Return value

Type Description
Promise<boolean> Returns whether the operation is successful.

Example

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

getEditorAttribute

getEditorAttribute(callback: AsyncCallback<EditorAttribute>): void

Obtains the attribute of the edit box. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Parameters

Name Type Mandatory Description
callback AsyncCallback<EditorAttribute> Yes Attribute of the edit box.

Example

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

getEditorAttribute

getEditorAttribute(): Promise<EditorAttribute>

Obtains the attribute of the edit box. This API uses a promise to return the result.

System capability: SystemCapability.Miscservices.InputMethodFramework

Return value

Type Description
Promise<EditorAttribute> Returns the attribute of the edit box.

Example

var EditorAttribute = TextInputClient.getEditorAttribute();

EditorAttribute

Describes the attribute of the edit box.

System capability: SystemCapability.Miscservices.InputMethodFramework

Name Type Readable Writable Description
enterKeyType number Yes No Function attribute of the edit box.
inputPattern number Yes No Text attribute of the edit box.

KeyEvent

Describes the attribute of a key.

System capability: SystemCapability.Miscservices.InputMethodFramework

Name Type Readable Writable Description
keyCode number Yes No Key value.
keyAction number Yes No Key status.