js-apis-inputmethodengine.md 65.7 KB
Newer Older
Z
zhouyongfei 已提交
1 2
# 输入法服务

3 4
  本模块的作用是拉通应用和输入法,保证应用可以通过输入法进行文本输入,以及应用与输入法服务的绑定、应用对输入法的显示和隐藏请求、监听输入法当前的状态等等。

Z
zhouyongfei 已提交
5 6 7 8 9 10
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

```
11
import inputMethodEngine from '@ohos.inputmethodengine';
Z
zhouyongfei 已提交
12 13 14 15 16 17
```

## inputMethodEngine

常量值。

18
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
19

Z
zhouyongfei 已提交
20 21
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
刷新  
zhouyongfei 已提交
22 23 24 25 26 27 28 29 30 31
| 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 | 是 | 否 | 数字编辑框。 |
32
| PATTERN_PHONE | number | 是 | 否 | 电话号码编辑框。 |
Z
刷新  
zhouyongfei 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 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 | 是 | 否 | 编辑框显示为全屏。 |
Z
zhaolinglan 已提交
48 49 50 51 52
| CURSOR_UP<sup>9+</sup> | number | 是 | 否 | 光标上移。 |
| CURSOR_DOWN<sup>9+</sup> | number | 是 | 否 | 光标下移。 |
| CURSOR_LEFT<sup>9+</sup> | number | 是 | 否 | 光标左移。 |
| CURSOR_RIGHT<sup>9+</sup> | number | 是 | 否 | 光标右移。 |
| WINDOW_TYPE_INPUT_METHOD_FLOAT<sup>9+</sup> | number | 是 | 否 | 输入法应用窗口风格标识。 |
Z
zhouyongfei 已提交
53

H
Hollokin 已提交
54
## inputMethodEngine.getInputMethodAbility<a name="getInputMethodAbility"></a><sup>9+</sup>
Z
zhouyongfei 已提交
55

H
Hollokin 已提交
56
getInputMethodAbility(): InputMethodAbility
Z
zhouyongfei 已提交
57

Z
refresh  
zhouyongfei 已提交
58
获取服务端实例。
Z
zhouyongfei 已提交
59

60
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
61

62
**返回值:**
Z
zhouyongfei 已提交
63

W
wz 已提交
64 65
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
H
Hollokin 已提交
66
| [InputMethodAbility](#inputmethodability) | 服务端实例。 |
Z
zhouyongfei 已提交
67

68
**示例:**
Z
zhouyongfei 已提交
69

H
Hollokin 已提交
70 71 72
```js
let InputMethodAbility = inputMethodAbility.getInputMethodAbility();
```
Z
zhouyongfei 已提交
73

H
Hollokin 已提交
74
## inputMethodEngine.getKeyboardDelegate<a name="getKeyboardDelegate"></a><sup>9+</sup>
75

H
Hollokin 已提交
76
getKeyboardDelegate(): KeyboardDelegate
77

H
Hollokin 已提交
78
获取客户端监听实例。
79 80 81 82 83

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

**返回值:**

H
Hollokin 已提交
84 85 86
| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
| [KeyboardDelegate](#KeyboardDelegate) | 客户端监听实例。 |
87 88 89

**示例:**

H
Hollokin 已提交
90 91 92
```js
let KeyboardDelegate = inputMethodAbility.getKeyboardDelegate();
```
93

H
Hollokin 已提交
94
## inputMethodEngine.getInputMethodEngine<a name="getInputMethodEngine"></a><sup>(deprecated)</sup>
Z
zhouyongfei 已提交
95

H
Hollokin 已提交
96
getInputMethodEngine(): InputMethodEngine
Z
zhouyongfei 已提交
97

H
Hollokin 已提交
98
获取服务端实例。
Z
zhouyongfei 已提交
99

H
Hollokin 已提交
100
> **说明:** 
H
Hollokin 已提交
101
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getInputMethodAbility()](#getInputMethodAbility)替代
H
Hollokin 已提交
102

103
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
104

105
**返回值:**
Z
zhouyongfei 已提交
106

H
Hollokin 已提交
107 108 109
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
| [InputMethodEngine](#inputmethodengine-1) | 服务端实例。 |
Z
zhouyongfei 已提交
110

111
**示例:**
Z
zhouyongfei 已提交
112

H
Hollokin 已提交
113 114 115
```js
let InputMethodEngine = inputMethodEngine.getInputMethodEngine();
```
Z
zhouyongfei 已提交
116

H
Hollokin 已提交
117
## inputMethodEngine.createKeyboardDelegate<a name="createKeyboardDelegate"></a><sup>(deprecated)</sup>
118

H
Hollokin 已提交
119
createKeyboardDelegate(): KeyboardDelegate
120 121 122

获取客户端监听实例。

H
Hollokin 已提交
123 124 125
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getKeyboardDelegate()](#getKeyboardDelegate)替代

126 127 128 129 130 131 132 133 134 135
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
| [KeyboardDelegate](#KeyboardDelegate) | 客户端监听实例。 |

**示例:**

H
Hollokin 已提交
136 137 138
```js
let KeyboardDelegate = inputMethodEngine.createKeyboardDelegate();
```
139

Z
zhouyongfei 已提交
140 141
## InputMethodEngine<a name="InputMethodEngine"></a>

H
update  
Hollokin 已提交
142
下列API示例中都需使用[getInputMethodEngine](#getInputMethodEngine)回调获取到InputMethodEngine实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
143 144 145

### on('inputStart')<a name="inputStart"></a>

Z
zhouyongfei 已提交
146
on(type: 'inputStart', callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
Z
zhouyongfei 已提交
147

H
Hollokin 已提交
148
订阅输入法绑定成功事件。使用callback异步回调。
Z
zhouyongfei 已提交
149

150
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
151

152
**参数:**
Z
zhouyongfei 已提交
153 154 155 156

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘inputStart’时表示订阅输入法绑定。 |
H
Hollokin 已提交
157
| callback | [KeyboardController](#keyboardcontroller), [TextInputClient](#textinputclient) | 是 | 回调函数,返回订阅输入法的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
158

159
**示例:**
Z
zhouyongfei 已提交
160

H
Hollokin 已提交
161 162 163 164 165 166
```js
inputMethodEngine.getInputMethodEngine().on('inputStart', (kbController, textInputClient) => {
    KeyboardController = kbController;
    TextInputClient = textInputClient;
});
```
Z
zhouyongfei 已提交
167 168 169

### off('inputStart')

Z
zhouyongfei 已提交
170
off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
Z
zhouyongfei 已提交
171

H
update  
Hollokin 已提交
172
取消订阅输入法绑定成功事件。
Z
zhouyongfei 已提交
173

174
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
175

176
**参数:**
Z
zhouyongfei 已提交
177

W
wz 已提交
178 179 180
| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type | string                                                       | 是   | 设置监听类型。<br/>-type为‘inputStart’时表示订阅输入法绑定。 |
H
Hollokin 已提交
181
| callback | [KeyboardController](#keyboardcontroller), [TextInputClient](#textinputclient) | 否 | 回调函数,返回取消订阅的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
182 183 184



185
**示例:**
Z
zhouyongfei 已提交
186

H
Hollokin 已提交
187 188 189 190 191
```js
inputMethodEngine.getInputMethodEngine().off('inputStart', (kbController, textInputClient) => {
    console.log('delete inputStart notification.');
});
```
Z
zhouyongfei 已提交
192

Z
zhaolinglan 已提交
193 194 195 196
### on('inputStop')<sup>9+</sup>

on(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
197
订阅停止输入法应用事件。使用callback异步回调。
Z
zhaolinglan 已提交
198 199 200 201 202 203 204

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
Z
zhaolinglan 已提交
205
| type     | string | 是   | 设置监听类型。<br/>-type为‘inputStop’时表示订阅停止输入法应用事件。 |
Z
zhaolinglan 已提交
206 207 208 209
| callback | void   | 是   | 回调函数。                                                   |

**示例:**

H
Hollokin 已提交
210
```js
H
Hollokin 已提交
211
inputMethodEngine.getInputMethodEngine().on('inputStop', () => {
Z
zhaolinglan 已提交
212
    console.log('inputMethodEngine inputStop');
Z
zhaolinglan 已提交
213
});
H
Hollokin 已提交
214
```
Z
zhaolinglan 已提交
215 216 217 218 219

### off('inputStop')<sup>9+</sup>

off(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
220
取消订阅停止输入法应用事件。使用callback异步回调。
Z
zhaolinglan 已提交
221 222 223 224 225

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

**参数:**

Z
zhaolinglan 已提交
226 227 228 229
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘inputStop’时表示订阅停止输入法应用事件。 |
| callback | void   | 是   | 回调函数。                                                   |
Z
zhaolinglan 已提交
230 231 232

**示例:**

H
Hollokin 已提交
233
```js
H
Hollokin 已提交
234
inputMethodEngine.getInputMethodEngine().off('inputStop', () => {
Z
zhaolinglan 已提交
235
    console.log('inputMethodEngine delete inputStop notification.');
Z
zhaolinglan 已提交
236
});
H
Hollokin 已提交
237
```
Z
zhaolinglan 已提交
238 239 240 241 242

### on('setCallingWindow')<sup>9+</sup>

on(type: 'setCallingWindow', callback: (wid:number) => void): void

H
Hollokin 已提交
243
订阅设置调用窗口事件。使用callback异步回调。
Z
zhaolinglan 已提交
244 245 246 247 248

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

**参数:**

Z
zhaolinglan 已提交
249 250 251
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
H
Hollokin 已提交
252
| callback | number | 是   | 回调函数,返回调用方window id。                                            |
Z
zhaolinglan 已提交
253 254 255

**示例:**

H
Hollokin 已提交
256
```js
H
Hollokin 已提交
257
inputMethodEngine.getInputMethodEngine().on('setCallingWindow', (wid) => {
Z
zhaolinglan 已提交
258
    console.log('inputMethodEngine setCallingWindow');
Z
zhaolinglan 已提交
259
});
H
Hollokin 已提交
260
```
Z
zhaolinglan 已提交
261 262 263 264 265

### off('setCallingWindow')<sup>9+</sup>

off(type: 'setCallingWindow', callback: (wid:number) => void): void

H
Hollokin 已提交
266
取消订阅设置调用窗口事件。使用callback异步回调。
Z
zhaolinglan 已提交
267 268 269 270 271 272 273 274

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
H
Hollokin 已提交
275
| callback | number | 是   | 回调函数,返回调用方window id。                                 |
Z
zhaolinglan 已提交
276 277 278

**示例:**

H
Hollokin 已提交
279
```js
H
Hollokin 已提交
280
inputMethodEngine.getInputMethodEngine().off('setCallingWindow', () => {
Z
zhaolinglan 已提交
281
    console.log('inputMethodEngine delete setCallingWindow notification.');
Z
zhaolinglan 已提交
282
});
H
Hollokin 已提交
283
```
Z
zhaolinglan 已提交
284

Z
zhouyongfei 已提交
285 286
### on('keyboardShow'|'keyboardHide')

Z
zhouyongfei 已提交
287
on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
Z
zhouyongfei 已提交
288

H
Hollokin 已提交
289
订阅输入法事件。使用callback异步回调。
Z
zhouyongfei 已提交
290

291
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
292

293
**参数:**
Z
zhouyongfei 已提交
294

W
wz 已提交
295 296 297 298
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void   | 否   | 回调函数。                                                   |
Z
zhouyongfei 已提交
299

300
**示例:**
Z
zhouyongfei 已提交
301

H
Hollokin 已提交
302 303 304 305 306 307 308 309
```js
inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
    console.log('inputMethodEngine keyboardShow.');
});
inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
    console.log('inputMethodEngine keyboardHide.');
});
```
Z
zhouyongfei 已提交
310 311 312

### off('keyboardShow'|'keyboardHide')

Z
zhouyongfei 已提交
313
off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
Z
zhouyongfei 已提交
314

H
Hollokin 已提交
315
取消订阅输入法事件。使用callback异步回调。
Z
zhouyongfei 已提交
316

317
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
318

319
**参数:**
Z
zhouyongfei 已提交
320

W
wz 已提交
321 322 323 324
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void   | 否   | 回调函数。                                                   |
Z
zhouyongfei 已提交
325

326
**示例:**
Z
zhouyongfei 已提交
327

H
Hollokin 已提交
328 329 330 331 332 333 334 335
```js
inputMethodEngine.getInputMethodEngine().off('keyboardShow', () => {
    console.log('inputMethodEngine delete keyboardShow notification.');
});
inputMethodEngine.getInputMethodEngine().off('keyboardHide', () => {
    console.log('inputMethodEngine delete keyboardHide notification.');
});
```
W
wz 已提交
336

337 338
## InputMethodAbility<a name="InputMethodAbility"></a>

H
update  
Hollokin 已提交
339
下列API示例中都需使用[getInputMethodAbility](#getInputMethodAbility)回调获取到InputMethodAbility实例,再通过此实例调用对应方法。
340

H
update  
Hollokin 已提交
341
### on('inputStart')<a name="inputStart9"></a><sup>9+</sup>
342 343 344

on(type: 'inputStart', callback: (kbController: KeyboardController, inputClient: InputClient) => void): void

H
Hollokin 已提交
345
订阅输入法绑定成功事件。使用callback异步回调。
346 347 348 349 350 351 352 353

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘inputStart’时表示订阅输入法绑定。 |
H
Hollokin 已提交
354
| callback | [KeyboardController](#keyboardcontroller), [InputClient](#inputclient-9) | 是 | 回调函数,返回输入法操作相关实例。 |
355 356 357

**示例:**

H
Hollokin 已提交
358 359 360 361 362 363
```js
inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, inputClient) => {
    KeyboardController = kbController;
    InputClient = inputClient;
});
```
364 365 366 367 368

### off('inputStart')<sup>9+</sup>

off(type: 'inputStart', callback?: (kbController: KeyboardController, inputClient: InputClient) => void): void

H
Hollokin 已提交
369
取消订阅输入法绑定成功事件。使用callback异步回调。
370 371 372 373 374 375 376 377

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

**参数:**

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type | string                                                       | 是   | 设置监听类型。<br/>-type为‘inputStart’时表示订阅输入法绑定。 |
H
Hollokin 已提交
378
| callback | [KeyboardController](#keyboardcontroller), [InputClient](#inputclient) | 否 | 回调函数,返回输入法操作相关实例。 |
379 380 381

**示例:**

H
Hollokin 已提交
382 383 384 385 386
```js
inputMethodEngine.getInputMethodAbility().off('inputStart', (kbController, inputClient) => {
    console.log('delete inputStart notification.');
});
```
387 388 389 390 391

### on('inputStop')<sup>9+</sup>

on(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
392
订阅停止输入法应用事件。使用callback异步回调。
393 394 395 396 397 398 399 400 401 402 403 404

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘inputStop’时表示订阅停止输入法应用事件。 |
| callback | void   | 是   | 回调函数。                                                   |

**示例:**

H
Hollokin 已提交
405
```js
H
Hollokin 已提交
406
inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
407 408
    console.log('inputMethodAbility inputStop');
});
H
Hollokin 已提交
409
```
410 411 412 413 414

### off('inputStop')<sup>9+</sup>

off(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
415
取消订阅停止输入法应用事件。使用callback异步回调。
416 417 418 419 420 421 422 423 424 425 426 427

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘inputStop’时表示订阅停止输入法应用事件。 |
| callback | void   | 是   | 回调函数。                                                   |

**示例:**

H
Hollokin 已提交
428
```js
H
Hollokin 已提交
429
inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
430 431
    console.log('inputMethodAbility delete inputStop notification.');
});
H
Hollokin 已提交
432
```
433 434 435 436 437

### on('setCallingWindow')<sup>9+</sup>

on(type: 'setCallingWindow', callback: (wid:number) => void): void

H
Hollokin 已提交
438
订阅设置调用窗口事件。使用callback异步回调。
439 440 441 442 443 444 445 446

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
H
Hollokin 已提交
447
| callback | number | 是   | 回调函数,返回调用方window id。                                            |
448 449 450

**示例:**

H
Hollokin 已提交
451
```js
H
Hollokin 已提交
452
inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid) => {
453 454
    console.log('inputMethodAbility setCallingWindow');
});
H
Hollokin 已提交
455
```
456 457 458 459 460

### off('setCallingWindow')<sup>9+</sup>

off(type: 'setCallingWindow', callback: (wid:number) => void): void

H
Hollokin 已提交
461
取消订阅设置调用窗口事件。使用callback异步回调。
462 463 464 465 466 467 468 469

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
H
Hollokin 已提交
470
| callback | number | 是   | 回调函数,返回调用方window id。                                 |
471 472 473

**示例:**

H
Hollokin 已提交
474
```js
H
Hollokin 已提交
475
inputMethodEngine.getInputMethodAbility().off('setCallingWindow', () => {
476 477
    console.log('inputMethodAbility delete setCallingWindow notification.');
});
H
Hollokin 已提交
478
```
479 480 481 482 483

### on('keyboardShow'|'keyboardHide')<sup>9+</sup>

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

H
Hollokin 已提交
484
订阅输入法事件。使用callback异步回调。
485 486 487 488 489 490 491 492 493 494 495 496

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void   | 否   | 回调函数。                                                   |

**示例:**

H
Hollokin 已提交
497 498 499 500 501 502 503 504
```js
inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
    console.log('InputMethodAbility keyboardShow.');
});
inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
    console.log('InputMethodAbility keyboardHide.');
});
```
505 506 507 508 509

### off('keyboardShow'|'keyboardHide')<sup>9+</sup>

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

H
Hollokin 已提交
510
取消订阅输入法事件。使用callback异步回调。
511 512 513 514 515 516 517 518 519 520 521 522

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void   | 否   | 回调函数。                                                   |

**示例:**

H
Hollokin 已提交
523 524 525 526 527 528 529 530
```js
inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
    console.log('InputMethodAbility delete keyboardShow notification.');
});
inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
    console.log('InputMethodAbility delete keyboardHide notification.');
});
```
531 532 533 534 535

### on('setSubtype')<sup>9+</sup>

on(type: 'setSubtype', callback: (inputMethodSubtype: InputMethodSubtype) => void): void

H
Hollokin 已提交
536
订阅设置输入法子类型事件。使用callback异步回调。
537 538 539 540 541 542 543

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
H
Hollokin 已提交
544
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示订阅输入法子类型设置。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
H
Hollokin 已提交
545
| callback | InputMethodSubtype   | 是   | 回调函数,,返回调用方的输入法子类型。                                                   |
546 547 548

**示例:**

H
Hollokin 已提交
549 550 551 552 553
```js
inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype) => {
    console.log('InputMethodAbility setSubtype.');
});
```
554 555 556 557 558

### off('setSubtype')<sup>9+</sup>

off(type: 'setSubtype', callback?: () => void): void

H
Hollokin 已提交
559
取消订阅输入法子类型事件。使用callback异步回调。
560 561 562 563 564 565 566

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
H
Hollokin 已提交
567
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示取消订阅输入法子类型设置。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
H
Hollokin 已提交
568
| callback | InputMethodSubtype   | 是   | 回调函数,,返回调用方的输入法子类型。                                                   |
569 570 571

**示例:**

H
Hollokin 已提交
572 573 574 575 576
```js
inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
    console.log('InputMethodAbility delete setSubtype notification.');
});
```
Z
zhouyongfei 已提交
577 578 579

## KeyboardDelegate<a name="KeyboardDelegate"></a>

H
Hollokin 已提交
580
下列API示例中都需使用[getKeyboardDelegate](#getKeyboardDelegate)回调获取到KeyboardDelegate实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
581 582 583

### on('keyDown'|'keyUp')

Z
zhouyongfei 已提交
584
on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
Z
zhouyongfei 已提交
585

H
Hollokin 已提交
586
订阅硬键盘事件。使用callback异步回调。
Z
zhouyongfei 已提交
587

588
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
589

590
**参数:**
Z
zhouyongfei 已提交
591

W
wz 已提交
592 593 594
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type   | string         | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示订阅硬键盘按下。<br/>-&nbsp;type为'keyUp',表示订阅硬键盘抬起。 |
H
Hollokin 已提交
595
| callback | [KeyEvent](#keyevent) | 是 | 回调函数,返回按键信息。 |
Z
zhouyongfei 已提交
596

597
**示例:**
Z
zhouyongfei 已提交
598

H
Hollokin 已提交
599 600 601 602 603 604 605 606 607 608 609 610
```js
inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent) => {
    console.info('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
    console.info('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
    return true;
});
inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent) => {
    console.info('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
    console.info('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
    return true;
});
```
Z
zhouyongfei 已提交
611 612 613

### off('keyDown'|'keyUp')

Z
zhouyongfei 已提交
614
off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void
Z
zhouyongfei 已提交
615

H
Hollokin 已提交
616
取消订阅硬键盘事件。使用callback异步回调。
Z
zhouyongfei 已提交
617

618
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
619

620
**参数:**
Z
zhouyongfei 已提交
621

W
wz 已提交
622 623 624
| 参数名   | 类型                  | 必填 | 说明                                                         |
| -------- | --------------------- | ---- | ------------------------------------------------------------ |
| type     | string                | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示订阅硬键盘按下。<br/>-&nbsp;type为'keyUp',表示订阅硬键盘抬起。 |
H
Hollokin 已提交
625
| callback | [KeyEvent](#keyevent) | 否   | 回调函数,返回按键信息。                                           |
Z
zhouyongfei 已提交
626

627
**示例:**
Z
zhouyongfei 已提交
628

H
Hollokin 已提交
629 630 631 632 633 634 635 636 637 638
```js
inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent) => {
    console.log('delete keyUp notification.');
    return true;
});
inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent) => {
    console.log('delete keyDown notification.');
    return true;
});
```
Z
zhouyongfei 已提交
639 640 641

### on('cursorContextChange')

Z
zhouyongfei 已提交
642
on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) => void): void
Z
zhouyongfei 已提交
643

H
Hollokin 已提交
644
订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
645

646
  **系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
647

648
  **参数:**
Z
zhouyongfei 已提交
649

W
wz 已提交
650 651 652
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
H
Hollokin 已提交
653
| callback | number | 是   | 回调函数,返回光标信息。                                           |
Z
zhouyongfei 已提交
654 655 656



657
  **示例:**
W
wz 已提交
658 659

```js
H
Hollokin 已提交
660
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
Z
zhaolinglan 已提交
661 662 663
    console.log('inputMethodEngine cursorContextChange x:' + x);
    console.log('inputMethodEngine cursorContextChange y:' + y);
    console.log('inputMethodEngine cursorContextChange height:' + height);
W
wz 已提交
664 665
});
```
Z
zhouyongfei 已提交
666 667 668

### off('cursorContextChange')

Z
zhouyongfei 已提交
669
off(type: 'cursorContextChange', callback?: (x: number, y:number, height:number) => void): void
Z
zhouyongfei 已提交
670

H
Hollokin 已提交
671
取消订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
672

673
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
674

675
  **参数:**
Z
zhouyongfei 已提交
676

W
wz 已提交
677 678 679
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
H
Hollokin 已提交
680
| callback | number | 否   | 回调函数,返回光标信息。                                           |
Z
zhouyongfei 已提交
681 682


683
  **示例:**
Z
zhouyongfei 已提交
684

W
wz 已提交
685
```js
H
Hollokin 已提交
686
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
Z
zhaolinglan 已提交
687
    console.log('delete cursorContextChange notification.');
688
});
W
wz 已提交
689
```
Z
zhouyongfei 已提交
690 691
### on('selectionChange')

Z
zhouyongfei 已提交
692
on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
Z
zhouyongfei 已提交
693

H
Hollokin 已提交
694
订阅文本选择变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
695

696
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
697

698
  **参数:**
Z
zhouyongfei 已提交
699

W
wz 已提交
700 701 702
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
H
Hollokin 已提交
703
| callback | number | 是   | 回调函数,返回文本选择信息。                                       |
Z
zhouyongfei 已提交
704

705
  **示例:**
W
wz 已提交
706 707

```js
H
Hollokin 已提交
708
inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
709 710 711 712
    console.log('inputMethodEngine beforeEach selectionChange oldBegin:' + oldBegin);
    console.log('inputMethodEngine beforeEach selectionChange oldEnd:' + oldEnd);
    console.log('inputMethodEngine beforeEach selectionChange newBegin:' + newBegin);
    console.log('inputMethodEngine beforeEach selectionChange newEnd:' + newEnd);
W
wz 已提交
713 714
});
```
Z
zhouyongfei 已提交
715 716 717

### off('selectionChange')

Z
zhouyongfei 已提交
718
off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
Z
zhouyongfei 已提交
719

H
Hollokin 已提交
720
取消订阅文本选择变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
721

722
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
723

724
  **参数:**
Z
zhouyongfei 已提交
725

W
wz 已提交
726 727 728
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
H
Hollokin 已提交
729
| callback | number | 否   | 回调函数,返回文本选择信息。                                       |
Z
zhouyongfei 已提交
730

731
  **示例:**
Z
zhouyongfei 已提交
732

W
wz 已提交
733
```js
H
Hollokin 已提交
734
inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
735
  console.log('delete selectionChange notification.');
736
});
W
wz 已提交
737
```
Z
zhouyongfei 已提交
738 739 740 741


### on('textChange')

Z
zhouyongfei 已提交
742
on(type: 'textChange', callback: (text: string) => void): void
Z
zhouyongfei 已提交
743

H
Hollokin 已提交
744
订阅文本变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
745

746
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
747

748
  **参数:**
Z
zhouyongfei 已提交
749

W
wz 已提交
750 751 752
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
H
Hollokin 已提交
753
| callback | string | 是   | 回调函数,返回当前文本内容。                                       |
Z
zhouyongfei 已提交
754

755
  **示例:**
Z
zhouyongfei 已提交
756

W
wz 已提交
757
```js
H
Hollokin 已提交
758
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
Z
zhaolinglan 已提交
759
    console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
760 761
});
```
Z
zhouyongfei 已提交
762 763 764

### off('textChange')

Z
zhouyongfei 已提交
765
off(type: 'textChange', callback?: (text: string) => void): void
Z
zhouyongfei 已提交
766

H
Hollokin 已提交
767
取消订阅文本变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
768

769
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
770

771
  **参数:**
Z
zhouyongfei 已提交
772

W
wz 已提交
773 774 775
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
H
Hollokin 已提交
776
| callback | string | 否   | 回调函数,返回当前文本内容。                                       |
Z
zhouyongfei 已提交
777

778
  **示例:**
Z
zhouyongfei 已提交
779

W
wz 已提交
780
```js
H
Hollokin 已提交
781
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
Z
zhaolinglan 已提交
782
    console.log('delete textChange notification. text:' + text);
783
});
W
wz 已提交
784
```
Z
zhouyongfei 已提交
785 786 787

## KeyboardController<a name="KeyboardController"></a>

H
update  
Hollokin 已提交
788
下列API示例中都需使用[inputStart](#inputStart9)回调获取到KeyboardController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
789 790 791 792 793

### hideKeyboard

hideKeyboard(callback: AsyncCallback&lt;void&gt;): void

H
Hollokin 已提交
794
隐藏输入法。使用callback异步回调。
Z
zhouyongfei 已提交
795

796
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
797

798
**参数:**
Z
refresh  
zhouyongfei 已提交
799

W
wz 已提交
800 801
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
Hollokin 已提交
802
| callback | AsyncCallback&lt;void> | 否   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象 |
Z
refresh  
zhouyongfei 已提交
803

804
**示例:**
Z
zhouyongfei 已提交
805

806
```js
807
KeyboardController.hideKeyboard((err) => {
Z
zhaolinglan 已提交
808
    if (err === undefined) {
H
Hollokin 已提交
809
        console.error('hideKeyboard err: ' + JSON.stringify(err));
810 811
        return;
    }
H
Hollokin 已提交
812
    console.log('hideKeyboard success.');
813
});
Z
zhouyongfei 已提交
814 815 816 817 818 819
```

### hideKeyboard

hideKeyboard(): Promise&lt;void&gt;

H
Hollokin 已提交
820
隐藏输入法。使用promise异步回调。
Z
zhouyongfei 已提交
821

822
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
823

824
**返回值:**
Z
refresh  
zhouyongfei 已提交
825

826 827
| 类型             | 说明                      |
| ---------------- | ------------------------- |
H
Hollokin 已提交
828
| Promise&lt;void> | Promise对象。无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
829

830
**示例:**
Z
zhouyongfei 已提交
831

832
```js
833 834
async function InputMethodEngine() {
    await KeyboardController.hideKeyboard().then(() => {
H
Hollokin 已提交
835
        console.info('hideKeyboard success.');
836
    }).catch((err) => {
H
Hollokin 已提交
837
        console.info('hideKeyboard err: ' + JSON.stringify(err));
838 839
    });
}
Z
zhouyongfei 已提交
840 841
```

H
Hollokin 已提交
842
## InputClient<a name="InputClient "></a><sup>9+</sup>
Z
zhouyongfei 已提交
843

H
Hollokin 已提交
844 845 846 847 848 849
下列API示例中都需使用[inputStart](#inputStart9)回调获取到InputClient实例,再通过此实例调用对应方法。

### sendKeyFunction<sup>9+</sup>

sendKeyFunction(action:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
850
发送功能键。使用callback异步回调。
H
Hollokin 已提交
851 852 853 854 855 856 857 858

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

  **参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
H
Hollokin 已提交
859
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
860 861 862 863 864 865 866 867 868 869 870

  **示例:**

```js
try {
    InputClient.sendKeyFunction(keyFunction, (err, result) => {
        if (err) {
            console.error('sendKeyFunction err: ' + JSON.stringify(err)JSON.stringify(err));
            return;
        }
        if (result) {
H
Hollokin 已提交
871
            console.info('Success to sendKeyFunction. ');
H
Hollokin 已提交
872
        } else {
H
Hollokin 已提交
873
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
874 875 876 877 878 879 880 881 882 883 884
        }
    });
} catch (err) {
    console.error('sendKeyFunction err: ' + JSON.stringify(err));
}
```

### sendKeyFunction<sup>9+</sup>

sendKeyFunction(action:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
885
发送功能键。使用promise异步回调。
H
Hollokin 已提交
886 887 888 889 890 891 892 893 894 895 896 897 898

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

**参数:**

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

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
899
| Promise&lt;boolean&gt; |  Promise对象。返回true表示功能键发送成功;返回false表示功能键发送失败。|
H
Hollokin 已提交
900 901 902 903 904 905 906

**示例:**

```js
try {
    InputClient.sendKeyFunction(keyFunction).then((result) => {
        if (result) {
H
Hollokin 已提交
907
            console.info('Success to sendKeyFunction. ');
H
Hollokin 已提交
908
        } else {
H
Hollokin 已提交
909
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
910 911
        }
    }).catch((err) => {
H
Hollokin 已提交
912
        console.error('sendKeyFunction err:' + JSON.stringify(err));
H
Hollokin 已提交
913 914 915 916 917 918 919
    });
} catch (err) {
    console.error('sendKeyFunction err: ' + JSON.stringify(err));
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
920 921 922

getForward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
923
获取光标前固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
924

925
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
926

927
**参数:**
Z
zhouyongfei 已提交
928

W
wz 已提交
929 930 931
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
932
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
Z
zhouyongfei 已提交
933

934 935
**示例:**

H
Hollokin 已提交
936 937 938 939 940 941 942 943
```js
let length = 1;
try {
    InputClient.getForward(length, (err, text) => {
        if (err) {
            console.error('getForward err: ' + JSON.stringify(err));
            return;
        }
H
Hollokin 已提交
944
        console.log('getForward result: ' + text);
H
Hollokin 已提交
945 946 947 948 949
    });
} catch (err) {
    console.error('getForward err: ' + JSON.stringify(err));
}
```
Z
zhouyongfei 已提交
950

H
Hollokin 已提交
951
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
952 953 954

getForward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
955
获取光标前固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
956

957
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
958

959
**参数:**
Z
zhouyongfei 已提交
960

W
wz 已提交
961 962 963
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
964

965 966
**返回值:**

W
wz 已提交
967 968
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
969
| Promise&lt;string&gt;           |  Promise对象,返回光标前固定长度的文本。                     |
Z
refresh  
zhouyongfei 已提交
970

971 972
**示例:**

H
Hollokin 已提交
973 974 975 976 977
```js
async function InputMethodAbility() {
    let length = 1;
    try {
        await InputClient.getForward(length).then((text) => {
H
Hollokin 已提交
978
            console.info('getForward resul: ' + text);
H
Hollokin 已提交
979
        }).catch((err) => {
H
Hollokin 已提交
980
            console.error('getForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
981 982
        });
    } catch (err) {
H
Hollokin 已提交
983
        console.error('getForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
984 985 986
    }
}
```
Z
zhouyongfei 已提交
987

H
Hollokin 已提交
988
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
989 990 991

getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
992
获取光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
993

994
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
995

996
**参数:**
Z
zhouyongfei 已提交
997

W
wz 已提交
998 999 1000
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1001
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
Z
zhouyongfei 已提交
1002

1003 1004
**示例:**

H
Hollokin 已提交
1005 1006 1007 1008 1009
```js
let length = 1;
try {
    InputClient.getBackward(length, (err, text) => {
        if (err) {
H
Hollokin 已提交
1010
            console.error('getBackward result: ' + JSON.stringify(err));
H
Hollokin 已提交
1011 1012
            return;
        }
H
Hollokin 已提交
1013
        console.log('getBackward result---text: ' + text);
H
Hollokin 已提交
1014 1015
    });
} catch (err) {
H
Hollokin 已提交
1016
    console.error('getBackward result: ' + JSON.stringify(err));
H
Hollokin 已提交
1017 1018
}
```
Z
zhouyongfei 已提交
1019

H
Hollokin 已提交
1020
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1021 1022 1023

getBackward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1024
获取光标后固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
1025

1026
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1027

1028
**参数:**
Z
zhouyongfei 已提交
1029

W
wz 已提交
1030 1031 1032
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1033

1034 1035
**返回值:**

W
wz 已提交
1036 1037
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1038
| Promise&lt;string&gt;           |  Promise对象,返回光标后固定长度的文本。                     |
Z
zhouyongfei 已提交
1039

1040 1041
**示例:**

H
Hollokin 已提交
1042 1043 1044 1045 1046
```js
async function InputMethodAbility() {
    let length = 1;
    try {
        await InputClient.getBackward(length).then((text) => {
H
Hollokin 已提交
1047
            console.info('getBackward result: ' + text);
H
Hollokin 已提交
1048
        }).catch((err) => {
H
Hollokin 已提交
1049
            console.error('getBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1050 1051
        });
    } catch (err) {
H
Hollokin 已提交
1052
        console.error('getBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1053 1054 1055
    }
}
```
Z
zhouyongfei 已提交
1056

H
Hollokin 已提交
1057
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1058 1059 1060

deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1061
删除光标前固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1062

1063
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1064

1065
**参数:**
Z
zhouyongfei 已提交
1066

W
wz 已提交
1067 1068 1069
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1070
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1071

1072 1073
**示例:**

H
Hollokin 已提交
1074 1075 1076 1077 1078
```js
let length = 1;
try {
    InputClient.deleteForward(length, (err, result) => {
        if (err) {
H
Hollokin 已提交
1079
            console.error('deleteForward result: ' + JSON.stringify(err));
H
Hollokin 已提交
1080 1081 1082
            return;
        }
        if (result) {
H
Hollokin 已提交
1083
            console.info('Success to deleteForward. ');
H
Hollokin 已提交
1084
        } else {
H
Hollokin 已提交
1085
            console.error('Failed to deleteForward. ');
H
Hollokin 已提交
1086 1087 1088
        }
    });
} catch (err) {
H
Hollokin 已提交
1089
    console.error('deleteForward result: ' + JSON.stringify(err));
H
Hollokin 已提交
1090 1091 1092 1093
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1094 1095 1096

deleteForward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
1097
删除光标前固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
1098

1099
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1100

1101
**参数:**
W
wz 已提交
1102 1103 1104 1105 1106

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

1107 1108
**返回值:**  

W
wz 已提交
1109 1110
| 类型                   | 说明           |
| ---------------------- | -------------- |
H
Hollokin 已提交
1111
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
Z
zhouyongfei 已提交
1112

1113 1114
**示例:**

W
wz 已提交
1115
```js
H
Hollokin 已提交
1116 1117 1118 1119 1120
async function InputMethodAbility() {
    let length = 1;
    try {
        await InputClient.deleteForward(length).then((result) => {
            if (result) {
H
Hollokin 已提交
1121
                console.info('Success to deleteForward. ');
H
Hollokin 已提交
1122
            } else {
H
Hollokin 已提交
1123
                console.error('Failed to deleteForward. ');
H
Hollokin 已提交
1124 1125
            }
        }).catch((err) => {
H
Hollokin 已提交
1126
            console.error('deleteForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1127 1128
        });
    } catch (err) {
H
Hollokin 已提交
1129
        console.error('deleteForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1130
    }
1131
}
W
wz 已提交
1132 1133
```

H
Hollokin 已提交
1134
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1135 1136 1137

deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1138
删除光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1139

1140
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1141

1142
  **参数:**
Z
zhouyongfei 已提交
1143

W
wz 已提交
1144 1145 1146
| 参数名   | 类型                         | 必填 | 说明           |
| -------- | ---------------------------- | ---- | -------------- |
| length   | number                       | 是   | 文本长度。     |
H
Hollokin 已提交
1147
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1148

1149 1150
  **示例:**

W
wz 已提交
1151
```js
H
Hollokin 已提交
1152 1153 1154 1155 1156 1157 1158 1159
let length = 1;
try {
    InputClient.deleteBackward(length, (err, result) => {
        if (err) {
            console.error('deleteBackward err: ' + JSON.stringify(err));
            return;
        }
        if (result) {
H
Hollokin 已提交
1160
            console.info('Success to deleteBackward. ');
H
Hollokin 已提交
1161
        } else {
H
Hollokin 已提交
1162
            console.error('Failed to deleteBackward. ');
H
Hollokin 已提交
1163 1164 1165 1166 1167
        }
    });
} catch (err) {
    console.error('deleteBackward err: ' + JSON.stringify(err));
}
W
wz 已提交
1168
```
Z
zhouyongfei 已提交
1169

H
Hollokin 已提交
1170
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1171 1172

deleteBackward(length:number): Promise&lt;boolean&gt;
Z
refresh  
zhouyongfei 已提交
1173

H
Hollokin 已提交
1174
删除光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1175

1176
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1177

1178
**参数:**
B
bmeangel 已提交
1179

W
wz 已提交
1180 1181 1182
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1183

1184 1185
**返回值:** 

W
wz 已提交
1186 1187
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1188
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。 |
Z
zhouyongfei 已提交
1189

1190
**示例:**
Z
zhouyongfei 已提交
1191

W
wz 已提交
1192
```js
H
Hollokin 已提交
1193 1194 1195
async function InputMethodAbility() {
    let length = 1;
    await InputClient.deleteBackward(length).then((result) => {
1196
        if (result) {
H
Hollokin 已提交
1197
            console.info('Success to deleteBackward. ');
1198
        } else {
H
Hollokin 已提交
1199
            console.error('Failed to deleteBackward. ');
1200 1201
        }
    }).catch((err) => {
H
Hollokin 已提交
1202
        console.error('deleteBackward err: ' + JSON.stringify(err));
1203 1204
    });
}
W
wz 已提交
1205
```
Z
zhouyongfei 已提交
1206

H
Hollokin 已提交
1207
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1208 1209 1210

insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1211
插入文本。使用callback异步回调。
Z
zhouyongfei 已提交
1212

1213
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1214

1215
**参数:**
Z
zhouyongfei 已提交
1216

W
wz 已提交
1217 1218 1219
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
1220
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1221

1222 1223
**示例:**

W
wz 已提交
1224
```js
H
Hollokin 已提交
1225 1226 1227
InputClient.insertText('test', (err, result) => {
    if (err) {
        console.error('insertText err: ' + JSON.stringify(err));
1228 1229 1230
        return;
    }
    if (result) {
H
Hollokin 已提交
1231
        console.info('Success to insertText. ');
1232
    } else {
H
Hollokin 已提交
1233
        console.error('Failed to insertText. ');
1234
    }
W
wz 已提交
1235 1236
});
```
Z
zhouyongfei 已提交
1237

H
Hollokin 已提交
1238
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1239 1240

insertText(text:string): Promise&lt;boolean&gt;
Z
refresh  
zhouyongfei 已提交
1241

H
Hollokin 已提交
1242
插入文本。使用promise异步回调。
Z
zhouyongfei 已提交
1243

1244
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1245

1246 1247
**参数:**

W
wz 已提交
1248 1249 1250
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
1251

1252
**返回值:**  
W
wz 已提交
1253 1254 1255

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1256
| Promise&lt;boolean&gt;  |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。  |
Z
zhouyongfei 已提交
1257

1258
**示例:**
Z
zhouyongfei 已提交
1259

H
Hollokin 已提交
1260 1261 1262 1263 1264
```js
async function InputMethodAbility() {
    try {
        await InputClient.insertText('test').then((result) => {
            if (result) {
H
Hollokin 已提交
1265
                console.info('Success to insertText. ');
H
Hollokin 已提交
1266
            } else {
H
Hollokin 已提交
1267
                console.error('Failed to insertText. ');
H
Hollokin 已提交
1268 1269
            }
        }).catch((err) => {
H
Hollokin 已提交
1270
            console.error('insertText err: ' + JSON.stringify(err));
H
Hollokin 已提交
1271 1272
        });
    } catch (e) {
H
Hollokin 已提交
1273
        console.error('insertText err: ' + JSON.stringify(err));
H
Hollokin 已提交
1274 1275 1276
    }
}
```
W
wz 已提交
1277

H
Hollokin 已提交
1278
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
1279 1280 1281

getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void

H
Hollokin 已提交
1282
获取编辑框属性值。使用callback异步回调。
Z
zhouyongfei 已提交
1283

1284
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1285

1286 1287
**参数:**

W
wz 已提交
1288 1289
| 参数名                         | 类型                          | 必填                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
H
Hollokin 已提交
1290
| callback | AsyncCallback&lt;[EditorAttribute](#EditorAttribute)&gt; | 是 |  回调函数。当编辑框属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
Z
zhouyongfei 已提交
1291

1292 1293
**示例:**

H
Hollokin 已提交
1294 1295 1296
```js
InputClient.getEditorAttribute((err, editorAttribute) => {
    if (err) {
H
Hollokin 已提交
1297
        console.error('getEditorAttribute err: ' + JSON.stringify(err));
H
Hollokin 已提交
1298 1299
        return;
    }
H
Hollokin 已提交
1300 1301
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
1302 1303
});
```
Z
zhouyongfei 已提交
1304

H
Hollokin 已提交
1305
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
1306

Z
zhaolinglan 已提交
1307
getEditorAttribute(): Promise&lt;EditorAttribute&gt;
Z
refresh  
zhouyongfei 已提交
1308

H
Hollokin 已提交
1309
获取编辑框属性值。使用promise异步回调。
Z
zhouyongfei 已提交
1310

1311
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1312

1313 1314
**返回值:**

W
wz 已提交
1315 1316
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1317
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
zhouyongfei 已提交
1318

1319 1320
**示例:**

H
Hollokin 已提交
1321 1322 1323
```js
async function InputMethodEngine() {
    await InputClient.getEditorAttribute().then((editorAttribute) => {
H
Hollokin 已提交
1324 1325
        console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
        console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
1326
    }).catch((err) => {
H
Hollokin 已提交
1327
        console.error('getEditorAttribute err: ' + JSON.stringify(err));
H
Hollokin 已提交
1328 1329 1330
    });
}
```
Z
zhaolinglan 已提交
1331

H
Hollokin 已提交
1332
### moveCursor<sup>9+</sup>
1333

H
Hollokin 已提交
1334
moveCursor(direction: number, callback: AsyncCallback&lt;void&gt;): void
1335

H
Hollokin 已提交
1336
移动光标。使用callback异步回调。
Z
zhaolinglan 已提交
1337

H
Hollokin 已提交
1338 1339
**模型约束**: 此接口仅可在Stage模型下使用。

Z
zhaolinglan 已提交
1340 1341
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

H
Hollokin 已提交
1342
**参数:**
Z
zhaolinglan 已提交
1343

H
Hollokin 已提交
1344 1345 1346
| 参数名    | 类型                      | 必填 | 说明           |
| --------- | ------------------------- | ---- | -------------- |
| direction | number                    | 是   | 光标移动方向。 |
H
Hollokin 已提交
1347
| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象    |
1348

H
Hollokin 已提交
1349
**示例:**
1350

H
Hollokin 已提交
1351
```ts
H
Hollokin 已提交
1352
try {
H
Hollokin 已提交
1353
    InputClient.moveCursor(inputMethodAbility.CURSOR_xxx, (err) => {
H
Hollokin 已提交
1354
        if (err) {
H
Hollokin 已提交
1355
            console.error('moveCursor err: ' + JSON.stringify(err));
H
Hollokin 已提交
1356 1357
            return;
        }
H
Hollokin 已提交
1358
        console.info('moveCursor success');
H
Hollokin 已提交
1359 1360
    });
} catch (err) {
H
Hollokin 已提交
1361
    console.error('moveCursor err: ' + JSON.stringify(err));
H
Hollokin 已提交
1362
}
1363 1364
```

H
Hollokin 已提交
1365
### moveCursor<sup>9+</sup>
1366

H
Hollokin 已提交
1367
moveCursor(direction: number): Promise&lt;void&gt;
1368

H
Hollokin 已提交
1369
移动光标。使用promise异步回调。
1370

H
Hollokin 已提交
1371 1372
**模型约束**: 此接口仅可在Stage模型下使用。

1373 1374 1375 1376
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

H
Hollokin 已提交
1377 1378 1379
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
1380

H
Hollokin 已提交
1381
**返回值:**  
1382

H
Hollokin 已提交
1383 1384
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
1385
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1386 1387 1388

**示例:**

H
Hollokin 已提交
1389
```ts
H
Hollokin 已提交
1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
async function InputMethodAbility() {
    try {
        await InputClient.moveCursor(inputMethodEngine.CURSOR_xxx).then((err) => {
            if (err) {
                console.log('moveCursor err: ' + JSON.stringify(err));
                return;
            }
            console.log('moveCursor success');
        }).catch((err) => {
            console.error('moveCursor success err: ' + JSON.stringify(err));
        });
    } catch (err) {
        console.log('moveCursor err: ' + JSON.stringify(err));
    }
H
Hollokin 已提交
1404
}
H
Hollokin 已提交
1405
```
1406

H
Hollokin 已提交
1407
## EditorAttribute<a name="EditorAttribute"></a>
1408

H
Hollokin 已提交
1409
编辑框属性值。
1410

H
Hollokin 已提交
1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework

| 名称         | 参数类型 | 可读 | 可写 | 说明               |
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

## KeyEvent<a name="KeyEvent"></a>

按键属性值。

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

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

## TextInputClient<a name="TextInputClient"></a>

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

### getForward<sup>(deprecated)</sup>

getForward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
1437
获取光标前固定长度的文本。使用callback异步回调。
H
Hollokin 已提交
1438 1439 1440

> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代
1441 1442 1443 1444 1445 1446 1447 1448

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1449
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
1450 1451 1452

**示例:**

H
Hollokin 已提交
1453 1454 1455 1456
```js
let length = 1;
TextInputClient.getForward(length, (err, text) => {
    if (err === undefined) {
H
Hollokin 已提交
1457
        console.error('getForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1458 1459
        return;
    }
H
Hollokin 已提交
1460
    console.log('getForward result---text: ' + text);
H
Hollokin 已提交
1461 1462
});
```
1463

H
Hollokin 已提交
1464
### getForward<sup>(deprecated)</sup>
1465 1466 1467

getForward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1468
获取光标前固定长度的文本。使用promise异步回调。
1469

H
Hollokin 已提交
1470 1471 1472
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代

1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1485
| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
1486 1487 1488

**示例:**

H
Hollokin 已提交
1489 1490 1491 1492
```js
async function InputMethodEngine() {
    let length = 1;
    await TextInputClient.getForward(length).then((text) => {
H
Hollokin 已提交
1493
        console.info('getForward result---res: ' + text);
H
Hollokin 已提交
1494
    }).catch((err) => {
H
Hollokin 已提交
1495
        console.error('getForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1496 1497 1498
    });
}
```
1499

H
Hollokin 已提交
1500
### getBackward<sup>(deprecated)</sup>
1501 1502 1503

getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
1504
获取光标后固定长度的文本。使用callback异步回调。
1505

H
Hollokin 已提交
1506 1507 1508
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代

1509 1510 1511 1512 1513 1514 1515
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1516
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
1517 1518 1519

**示例:**

H
Hollokin 已提交
1520 1521 1522 1523
```js
let length = 1;
TextInputClient.getBackward(length, (err, text) => {
    if (err === undefined) {
H
Hollokin 已提交
1524
        console.error('getBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1525 1526
        return;
    }
H
Hollokin 已提交
1527
    console.log('getBackward result---text: ' + text);
H
Hollokin 已提交
1528 1529
});
```
1530

H
Hollokin 已提交
1531
### getBackward<sup>(deprecated)</sup>
1532 1533 1534

getBackward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1535
获取光标后固定长度的文本。使用promise异步回调。
1536

H
Hollokin 已提交
1537 1538 1539
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代

1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1552
| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
1553 1554 1555

**示例:**

H
Hollokin 已提交
1556 1557 1558 1559
```js
async function InputMethodEngine() {
    let length = 1;
    await TextInputClient.getBackward(length).then((text) => {
H
Hollokin 已提交
1560
        console.info('getBackward result---res: ' + text);
H
Hollokin 已提交
1561
    }).catch((err) => {
H
Hollokin 已提交
1562
        console.error('getBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1563 1564 1565
    });
}
```
1566

H
Hollokin 已提交
1567
### deleteForward<sup>(deprecated)</sup>
1568 1569 1570

deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1571
删除光标前固定长度的文本。使用callback异步回调。
1572

H
Hollokin 已提交
1573 1574 1575
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代

1576 1577 1578 1579 1580 1581 1582
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1583
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
1584 1585 1586

**示例:**

H
Hollokin 已提交
1587 1588 1589 1590
```js
let length = 1;
TextInputClient.deleteForward(length, (err, result) => {
    if (err === undefined) {
H
Hollokin 已提交
1591
        console.error('deleteForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1592 1593 1594
        return;
    }
    if (result) {
H
Hollokin 已提交
1595
        console.info('Success to deleteForward. ');
H
Hollokin 已提交
1596
    } else {
H
Hollokin 已提交
1597
        console.error('Failed to deleteForward. ');
H
Hollokin 已提交
1598 1599 1600
    }
});
```
H
Hollokin 已提交
1601

H
Hollokin 已提交
1602
### deleteForward<sup>(deprecated)</sup>
1603 1604 1605

deleteForward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
1606
删除光标前固定长度的文本。使用promise异步回调。
1607

H
Hollokin 已提交
1608 1609 1610
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代

1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**  

| 类型                   | 说明           |
| ---------------------- | -------------- |
H
Hollokin 已提交
1623
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
1624 1625 1626 1627

**示例:**

```js
H
Hollokin 已提交
1628 1629 1630 1631
async function InputMethodEngine() {
    let length = 1;
    await TextInputClient.deleteForward(length).then((result) => {
        if (result) {
H
Hollokin 已提交
1632
            console.info('Success to deleteForward. ');
H
Hollokin 已提交
1633
        } else {
H
Hollokin 已提交
1634
            console.error('Failed to deleteForward. ');
H
Hollokin 已提交
1635 1636
        }
    }).catch((err) => {
H
Hollokin 已提交
1637
        console.error('deleteForward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1638
    });
1639 1640 1641
}
```

H
Hollokin 已提交
1642
### deleteBackward<sup>(deprecated)</sup>
1643 1644 1645

deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1646
删除光标后固定长度的文本。使用callback异步回调。
1647

H
Hollokin 已提交
1648 1649 1650
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代

1651 1652 1653 1654 1655 1656 1657
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

  **参数:**

| 参数名   | 类型                         | 必填 | 说明           |
| -------- | ---------------------------- | ---- | -------------- |
| length   | number                       | 是   | 文本长度。     |
H
Hollokin 已提交
1658
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。|
1659 1660 1661 1662

  **示例:**

```js
H
Hollokin 已提交
1663 1664 1665
let length = 1;
TextInputClient.deleteBackward(length, (err, result) => {
    if (err === undefined) {
H
Hollokin 已提交
1666
        console.error('deleteBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1667 1668 1669
        return;
    }
    if (result) {
H
Hollokin 已提交
1670
        console.info('Success to deleteBackward. ');
H
Hollokin 已提交
1671
    } else {
H
Hollokin 已提交
1672
        console.error('Failed to deleteBackward. ');
H
Hollokin 已提交
1673 1674
    }
});
1675 1676
```

H
Hollokin 已提交
1677
### deleteBackward<sup>(deprecated)</sup>
1678 1679 1680

deleteBackward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
1681
删除光标后固定长度的文本。使用callback异步回调。
1682

H
Hollokin 已提交
1683 1684 1685
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代

1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:** 

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1698
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
1699 1700 1701 1702

**示例:**

```js
H
Hollokin 已提交
1703 1704 1705
async function InputMethodEngine() {
    let length = 1;
    await TextInputClient.deleteBackward(length).then((result) => {
1706
        if (result) {
H
Hollokin 已提交
1707
            console.info('Success to deleteBackward. ');
1708
        } else {
H
Hollokin 已提交
1709
            console.error('Failed to deleteBackward. ');
1710 1711
        }
    }).catch((err) => {
H
Hollokin 已提交
1712
        console.error('deleteBackward err: ' + JSON.stringify(err));
1713 1714 1715
    });
}
```
H
Hollokin 已提交
1716
### sendKeyFunction<sup>(deprecated)</sup>
1717

H
Hollokin 已提交
1718
sendKeyFunction(action:number, callback: AsyncCallback&lt;boolean&gt;): void
1719

H
Hollokin 已提交
1720
发送功能键。使用callback异步回调。
1721

H
Hollokin 已提交
1722 1723
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代
1724 1725 1726

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

H
Hollokin 已提交
1727
  **参数:**
1728 1729 1730

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
1731
| action | number | 是 | 编辑框属性。 |
H
Hollokin 已提交
1732
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
1733

H
Hollokin 已提交
1734
  **示例:**
1735 1736

```js
H
Hollokin 已提交
1737 1738
TextInputClient.sendKeyFunction(keyFunction, (err, result) => {
    if (err === undefined) {
H
Hollokin 已提交
1739
        console.error('sendKeyFunction err: ' + JSON.stringify(err));
1740 1741 1742
        return;
    }
    if (result) {
H
Hollokin 已提交
1743
        console.info('Success to sendKeyFunction. ');
1744
    } else {
H
Hollokin 已提交
1745
        console.error('Failed to sendKeyFunction. ');
1746 1747 1748 1749
    }
});
```

H
Hollokin 已提交
1750
### sendKeyFunction<sup>(deprecated)</sup>
1751

H
Hollokin 已提交
1752
sendKeyFunction(action:number): Promise&lt;boolean&gt;
1753

H
Hollokin 已提交
1754
发送功能键。使用promise异步回调。
H
Hollokin 已提交
1755 1756 1757

> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代
1758 1759 1760 1761 1762 1763 1764

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
1765
| action | number | 是 | 编辑框属性。 |
1766

H
Hollokin 已提交
1767
**返回值:**
1768 1769 1770

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1771
| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
1772 1773 1774

**示例:**

H
Hollokin 已提交
1775 1776 1777 1778
```js
async function InputMethodEngine() {
    await client.sendKeyFunction(keyFunction).then((result) => {
        if (result) {
H
Hollokin 已提交
1779
            console.info('Success to sendKeyFunction. ');
H
Hollokin 已提交
1780
        } else {
H
Hollokin 已提交
1781
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
1782 1783
        }
    }).catch((err) => {
H
Hollokin 已提交
1784
        console.error('sendKeyFunction err:' + JSON.stringify(err));
H
Hollokin 已提交
1785 1786 1787
    });
}
```
1788

H
Hollokin 已提交
1789
### insertText<sup>(deprecated)</sup>
1790

H
Hollokin 已提交
1791
insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
1792

H
Hollokin 已提交
1793
插入文本。使用callback异步回调。
H
Hollokin 已提交
1794 1795 1796

> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代
1797 1798 1799 1800 1801

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

**参数:**

H
Hollokin 已提交
1802 1803 1804
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
1805
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
1806 1807 1808

**示例:**

H
Hollokin 已提交
1809 1810 1811
```js
TextInputClient.insertText('test', (err, result) => {
    if (err === undefined) {
H
Hollokin 已提交
1812
        console.error('insertText err: ' + JSON.stringify(err));
H
Hollokin 已提交
1813 1814 1815
        return;
    }
    if (result) {
H
Hollokin 已提交
1816
        console.info('Success to insertText. ');
H
Hollokin 已提交
1817
    } else {
H
Hollokin 已提交
1818
        console.error('Failed to insertText. ');
H
Hollokin 已提交
1819 1820 1821
    }
});
```
1822

H
Hollokin 已提交
1823
### insertText<sup>(deprecated)</sup>
1824

H
Hollokin 已提交
1825
insertText(text:string): Promise&lt;boolean&gt;
1826

H
Hollokin 已提交
1827
插入文本。使用promise异步回调。
1828

H
Hollokin 已提交
1829 1830
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代
1831 1832 1833 1834 1835

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

**参数:**

H
Hollokin 已提交
1836 1837 1838 1839 1840 1841 1842 1843
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1844
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
1845 1846 1847 1848

**示例:**

```js
H
Hollokin 已提交
1849 1850 1851
async function InputMethodEngine() {
    await TextInputClient.insertText('test').then((result) => {
        if (result) {
H
Hollokin 已提交
1852
            console.info('Success to insertText. ');
H
Hollokin 已提交
1853
        } else {
H
Hollokin 已提交
1854
            console.error('Failed to insertText. ');
H
Hollokin 已提交
1855
        }
H
Hollokin 已提交
1856
    }).catch((err) => {
H
Hollokin 已提交
1857
        console.error('insertText err: ' + JSON.stringify(err));
H
Hollokin 已提交
1858 1859
    });
}
Z
zhaolinglan 已提交
1860 1861
```

H
Hollokin 已提交
1862
### getEditorAttribute<sup>(deprecated)</sup>
Z
zhaolinglan 已提交
1863

H
Hollokin 已提交
1864
getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
Z
zhaolinglan 已提交
1865

H
Hollokin 已提交
1866
获取编辑框属性值。使用callback异步回调。
H
Hollokin 已提交
1867 1868 1869

> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代
Z
zhaolinglan 已提交
1870 1871 1872 1873 1874

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

**参数:**

H
Hollokin 已提交
1875 1876
| 参数名                         | 类型                          | 必填                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
H
Hollokin 已提交
1877
| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框的属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
Z
zhaolinglan 已提交
1878 1879 1880

**示例:**

H
Hollokin 已提交
1881 1882 1883
```js
TextInputClient.getEditorAttribute((err, editorAttribute) => {
    if (err === undefined) {
H
Hollokin 已提交
1884
        console.error('getEditorAttribute err: ' + JSON.stringify(err));
H
Hollokin 已提交
1885
        return;
H
Hollokin 已提交
1886
    }
H
Hollokin 已提交
1887 1888
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
1889 1890
});
```
Z
zhaolinglan 已提交
1891

H
Hollokin 已提交
1892
### getEditorAttribute<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1893

H
Hollokin 已提交
1894
getEditorAttribute(): Promise&lt;EditorAttribute&gt;
Z
zhouyongfei 已提交
1895

H
Hollokin 已提交
1896
获取编辑框属性值。使用promise异步回调。
Z
刷新  
zhouyongfei 已提交
1897

H
Hollokin 已提交
1898 1899
> **说明:** 
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代
Z
zhouyongfei 已提交
1900

H
Hollokin 已提交
1901
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1902

H
Hollokin 已提交
1903
**返回值:**
Z
zhouyongfei 已提交
1904

H
Hollokin 已提交
1905 1906
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1907
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
刷新  
zhouyongfei 已提交
1908

H
Hollokin 已提交
1909
**示例:**
Z
zhouyongfei 已提交
1910

H
Hollokin 已提交
1911 1912 1913
```js
async function InputMethodEngine() {
    await TextInputClient.getEditorAttribute().then((editorAttribute) => {
H
Hollokin 已提交
1914 1915
        console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
        console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
1916
    }).catch((err) => {
H
Hollokin 已提交
1917
        console.error('getEditorAttribute err: ' + JSON.stringify(err));
H
Hollokin 已提交
1918 1919 1920
    });
}
```