輸入法服務
說明: 本模塊首批接口從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_UNSPECIFIED | number | 是 | 否 | 無功能鍵。 |
ENTER_KEY_TYPE_GO | number | 是 | 否 | “前往”功能鍵。 |
ENTER_KEY_TYPE_SEARCH | number | 是 | 否 | “搜索”功能鍵。 |
ENTER_KEY_TYPE_SEND | number | 是 | 否 | “發送”功能鍵。 |
ENTER_KEY_TYPE_NEXT | number | 是 | 否 | “下一個”功能鍵。 |
ENTER_KEY_TYPE_DONE | number | 是 | 否 | “回車”功能鍵。 |
ENTER_KEY_TYPE_PREVIOUS | number | 是 | 否 | “前一個”功能鍵。 |
PATTERN_NULL | number | 是 | 否 | 無特殊性編輯框。 |
PATTERN_TEXT | number | 是 | 否 | 文本編輯框。 |
PATTERN_NUMBER | number | 是 | 否 | 數字編輯框。 |
PATTERN_PHONE | number | 是 | 否 | 電話號碼編輯框。 |
PATTERN_DATETIME | number | 是 | 否 | 日期編輯框。 |
PATTERN_EMAIL | number | 是 | 否 | 郵件編輯框。 |
PATTERN_URI | number | 是 | 否 | 超鏈接編輯框。 |
PATTERN_PASSWORD | number | 是 | 否 | 密碼編輯框。 |
OPTION_ASCII | number | 是 | 否 | 允許輸入ASCII值。 |
OPTION_NONE | number | 是 | 否 | 不指定編輯框輸入屬性。 |
OPTION_AUTO_CAP_CHARACTERS | number | 是 | 否 | 允許輸入字符。 |
OPTION_AUTO_CAP_SENTENCES | number | 是 | 否 | 允許輸入句子。 |
OPTION_AUTO_WORDS | number | 是 | 否 | 允許輸入單詞。 |
OPTION_MULTI_LINE | number | 是 | 否 | 允許輸入多行。 |
OPTION_NO_FULLSCREEN | number | 是 | 否 | 半屏樣式。 |
FLAG_SELECTING | number | 是 | 否 | 編輯框處于選擇狀態。 |
FLAG_SINGLE_LINE | number | 是 | 否 | 編輯框為單行。 |
DISPLAY_MODE_PART | number | 是 | 否 | 編輯框顯示為半屏。 |
DISPLAY_MODE_FULL | number | 是 | 否 | 編輯框顯示為全屏。 |
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
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 -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
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 -type為‘inputStart’時表示訂閱輸入法綁定。 |
callback | [KeyboardController], [TextInputClient] | 否 | 回調返回輸入法操作相關實例。 |
示例:
InputMethodEngine.off('inputStart');
on('keyboardShow'|'keyboardHide')
on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
訂閱輸入法事件。
系統能力 : SystemCapability.Miscservices.InputMethodFramework
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 - type為'keyboardShow',表示訂閱輸入法顯示。 - type為'keyboardHide',表示訂閱輸入法隱藏。 |
callback | void | 否 | 回調函數。 |
示例:
InputMethodEngine.on('keyboardShow', (err) = > {
console.info('keyboardShow');
});
off('keyboardShow'|'keyboardHide')
off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
取消訂閱輸入法事件。
系統能力 : SystemCapability.Miscservices.InputMethodFramework
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 - type為'keyboardShow',表示訂閱輸入法顯示。 - type為'keyboardHide',表示訂閱輸入法隱藏。 |
callback | void | 否 | 回調函數。 |
示例:
InputMethodEngine.off('keyboardShow');
KeyboardDelegate[]()
下列API示例中都需使用[createKeyboardDelegate]回調獲取到KeyboardDelegate實例,再通過此實例調用對應方法。
on('keyDown'|'keyUp')
on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
訂閱硬鍵盤事件,使用callback回調返回按鍵信息。
系統能力 : SystemCapability.Miscservices.InputMethodFramework
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 - 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
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 設置監聽類型。 - 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
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 光標變化事件。 |
-type為’cursorContextChange‘時,表示光標變化。 | |||
callback | number | 否 | 回調返回光標信息。 |
**示例:**
KeyboardDelegate.off('cursorContextChange');
### on('selectionChange')
on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
訂閱文本選擇變化事件,使用callback回調返回文本選擇信息。
**系統能力** : SystemCapability.Miscservices.InputMethodFramework
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 文本選擇變化事件。 |
-type為’selectionChange‘時,表示選擇文本變化。 | |||
callback | number | 是 | 回調返回文本選擇信息。 |
**示例:**
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
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 文本選擇變化事件。 |
-type為’selectionChange‘時,表示選擇文本變化。 | |||
callback | number | 否 | 回調返回文本選擇信息。 |
**示例:**
KeyboardDelegate.off('selectionChange');
### on('textChange')
on(type: 'textChange', callback: (text: string) => void): void
訂閱文本變化事件,使用callback回調返回當前文本內容。
**系統能力** : SystemCapability.Miscservices.InputMethodFramework
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 文本變化事件。 |
-type為’textChange‘時,表示當前文本變化。 | |||
callback | string | 是 | 回調返回當前文本內容。 |
**示例:**
KeyboardDelegate.on('textChange', (text) = > {
console.info('textChange');
});
### off('textChange')
off(type: 'textChange', callback?: (text: string) => void): void
取消訂閱文本變化事件。
**系統能力** : SystemCapability.Miscservices.InputMethodFramework
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 文本變化事件。 |
-type為’textChange‘時,表示當前文本變化。 | |||
callback | string | 否 | 回調返回當前文本內容。 |
**示例:**
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
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
length | number | 是 | 文本長度。 |
**返回值:**
類型 | 說明 |
---|---|
Promise< boolean > | 操作成功與否。 |
**示例:**
var isSuccess = TextInputClient.deleteForward(5);
console.info("isSuccess = " + isSuccess);
### deleteBackward
deleteBackward(length:number, callback: AsyncCallback): void
刪除光標后固定長度的文本。
**系統能力** : SystemCapability.Miscservices.InputMethodFramework
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
length | number | 是 | 文本長度。 |
callback | AsyncCallback | 是 | 操作成功與否。 |
**示例:**
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
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
action | number | 是 | 編輯框屬性。 |
callback | AsyncCallback< 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
**參數:**
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
text | string | 是 | 文本。 |
callback | AsyncCallback< 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 | 是 | 否 | 按鍵的狀態。 |
審核編輯 黃宇
-
鴻蒙
+關注
關注
57文章
2345瀏覽量
42822
發布評論請先 登錄
相關推薦
評論