js-apis-inputmethodengine.md 115.9 KB
Newer Older
1
# @ohos.inputMethodEngine (输入法服务)
Z
zhouyongfei 已提交
2

N
update  
ningning 已提交
3
本模块面向输入法应用(包括系统输入法应用、三方输入法应用),为输入法应用提供能力,包括:创建软键盘窗口、插入/删除字符、选中文本、监听物理键盘按键事件等。
4

H
update  
Hollokin 已提交
5 6
> **说明:**
>
7
>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zhouyongfei 已提交
8 9 10

## 导入模块

11
```ts
12
import inputMethodEngine from '@ohos.inputMethodEngine';
Z
zhouyongfei 已提交
13 14
```

H
Hollokin 已提交
15 16 17 18
## 常量

功能键常量值、编辑框常量值及光标常量值。

H
update  
Hollokin 已提交
19
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| 名称 | 类型 | 值 | 说明 |
| -------- | -------- | -------- | -------- |
| ENTER_KEY_TYPE_UNSPECIFIED | number | 0 | 无功能键。 |
| ENTER_KEY_TYPE_GO | number | 2 | “前往”功能键。 |
| ENTER_KEY_TYPE_SEARCH | number | 3 | “搜索”功能键。 |
| ENTER_KEY_TYPE_SEND | number | 4 | “发送”功能键。 |
| ENTER_KEY_TYPE_NEXT | number | 5 | “下一个”功能键。 |
| ENTER_KEY_TYPE_DONE | number | 6 | “回车”功能键。 |
| ENTER_KEY_TYPE_PREVIOUS | number | 7 | “前一个”功能键。 |
| PATTERN_NULL | number | -1 | 无特殊性编辑框。 |
| PATTERN_TEXT | number | 0 | 文本编辑框。 |
| PATTERN_NUMBER | number | 2 | 数字编辑框。 |
| PATTERN_PHONE | number | 3 | 电话号码编辑框。 |
| PATTERN_DATETIME | number | 4 | 日期编辑框。 |
| PATTERN_EMAIL | number | 5 | 邮件编辑框。 |
| PATTERN_URI | number | 6 | 超链接编辑框。 |
| PATTERN_PASSWORD | number | 7 | 密码编辑框。 |
| OPTION_ASCII | number | 20 | 允许输入ASCII值。 |
| OPTION_NONE | number | 0 | 不指定编辑框输入属性。 |
| OPTION_AUTO_CAP_CHARACTERS | number | 2 | 允许输入字符。 |
| OPTION_AUTO_CAP_SENTENCES | number | 8 | 允许输入句子。 |
| OPTION_AUTO_WORDS | number | 4 | 允许输入单词。 |
| OPTION_MULTI_LINE | number | 1 | 允许输入多行。 |
| OPTION_NO_FULLSCREEN | number | 10 | 半屏样式。 |
| FLAG_SELECTING | number | 2 | 编辑框处于选择状态。 |
| FLAG_SINGLE_LINE | number | 1 | 编辑框为单行。 |
| DISPLAY_MODE_PART | number | 0 | 编辑框显示为半屏。 |
| DISPLAY_MODE_FULL | number | 1 | 编辑框显示为全屏。 |
| CURSOR_UP<sup>9+</sup> | number | 1 | 光标上移。 |
| CURSOR_DOWN<sup>9+</sup> | number | 2 | 光标下移。 |
| CURSOR_LEFT<sup>9+</sup> | number | 3 | 光标左移。 |
| CURSOR_RIGHT<sup>9+</sup> | number | 4 | 光标右移。 |
H
Hollokin 已提交
53 54 55
| WINDOW_TYPE_INPUT_METHOD_FLOAT<sup>9+</sup> | number | 2105 | 输入法应用窗口风格标识。 |

## inputMethodEngine.getInputMethodAbility<sup>9+</sup>
Z
zhouyongfei 已提交
56

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

N
update  
ningning 已提交
59
获取输入法应用客户端实例[InputMethodAbility](#inputmethodability),仅支持输入法应用调用。<br/>输入法应用获取该实例后,可订阅软键盘显示/隐藏请求事件、创建/销毁输入法面板等。
Z
zhouyongfei 已提交
60

H
update  
Hollokin 已提交
61
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
62

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

65 66 67
| 类型                                      | 说明               |
| ----------------------------------------- | ------------------ |
| [InputMethodAbility](#inputmethodability) | 输入法应用客户端。 |
Z
zhouyongfei 已提交
68

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

71
```ts
72
let InputMethodAbility = inputMethodEngine.getInputMethodAbility();
H
Hollokin 已提交
73
```
Z
zhouyongfei 已提交
74

H
Hollokin 已提交
75
## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
76

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

N
update  
ningning 已提交
79
获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)<br/>输入法应用获取该实例后,可订阅物理键盘按键事件、选中文本变化事件等。
80

H
update  
Hollokin 已提交
81
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
82 83 84

**返回值:**

Z
zhaolinglan 已提交
85 86 87
| 类型                                  | 说明                     |
| ------------------------------------- | ------------------------ |
| [KeyboardDelegate](#keyboarddelegate) | 客户端编辑事件监听代理。 |
88 89 90

**示例:**

91
```ts
92
let KeyboardDelegate = inputMethodEngine.getKeyboardDelegate();
H
Hollokin 已提交
93
```
94

H
Hollokin 已提交
95
## inputMethodEngine.getInputMethodEngine<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
96

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

N
update  
ningning 已提交
99
获取输入法应用客户端实例[InputMethodEngine](#inputmethodengine)<br/>输入法应用获取该实例后,可订阅软键盘显示/隐藏请求事件等。
Z
zhouyongfei 已提交
100

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

H
update  
Hollokin 已提交
105
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
106

107
**返回值:**
Z
zhouyongfei 已提交
108

109 110 111
| 类型                                      | 说明               |
| ----------------------------------------- | ------------------ |
| [InputMethodEngine](#inputmethodengine-1) | 输入法应用客户端。 |
Z
zhouyongfei 已提交
112

113
**示例:**
Z
zhouyongfei 已提交
114

115
```ts
H
Hollokin 已提交
116 117
let InputMethodEngine = inputMethodEngine.getInputMethodEngine();
```
Z
zhouyongfei 已提交
118

H
Hollokin 已提交
119
## inputMethodEngine.createKeyboardDelegate<sup>(deprecated)</sup>
120

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

N
update  
ningning 已提交
123
获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。输入法应用获取该实例后,可订阅物理键盘按键事件、选中文本变化事件等。
124

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

H
update  
Hollokin 已提交
129
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
130 131 132

**返回值:**

Z
zhaolinglan 已提交
133 134 135
| 类型                                  | 说明                     |
| ------------------------------------- | ------------------------ |
| [KeyboardDelegate](#keyboarddelegate) | 客户端编辑事件监听代理。 |
136 137 138

**示例:**

139
```ts
H
Hollokin 已提交
140
let keyboardDelegate = inputMethodEngine.createKeyboardDelegate();
H
Hollokin 已提交
141
```
142

H
Hollokin 已提交
143
## InputMethodEngine
Z
zhouyongfei 已提交
144

145
下列API均需使用[getInputMethodEngine](#inputmethodenginegetinputmethodenginedeprecated)获取到InputMethodEngine实例后,通过实例调用。
Z
zhouyongfei 已提交
146

H
Hollokin 已提交
147
### on('inputStart')
Z
zhouyongfei 已提交
148

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

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

H
update  
Hollokin 已提交
153
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
154

155
**参数:**
Z
zhouyongfei 已提交
156

157 158 159 160
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型,固定取值为'inputStart'。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 是 | 回调函数,返回订阅输入法的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
161

162
**示例:**
Z
zhouyongfei 已提交
163

164 165 166 167 168
```ts
inputMethodEngine.getInputMethodEngine()
  .on('inputStart', (kbController: inputMethodEngine.KeyboardController, textClient: inputMethodEngine.TextInputClient) => {
    let keyboardController = kbController;
    let textInputClient = textClient;
169
});
H
Hollokin 已提交
170
```
Z
zhouyongfei 已提交
171 172 173

### off('inputStart')

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

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

H
update  
Hollokin 已提交
178
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
179

180
**参数:**
Z
zhouyongfei 已提交
181

182 183 184 185
| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type | string                                                       | 是   | 设置监听类型,固定取值为'inputStart'。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 否 | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
Z
zhouyongfei 已提交
186

187
**示例:**
Z
zhouyongfei 已提交
188

189 190 191 192
```ts
inputMethodEngine.getInputMethodEngine()
  .off('inputStart', (kbController: inputMethodEngine.KeyboardController, textClient: inputMethodEngine.TextInputClient) => {
    console.log('delete inputStart notification.');
193
});
H
Hollokin 已提交
194
```
Z
zhouyongfei 已提交
195 196 197

### on('keyboardShow'|'keyboardHide')

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

200
订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
Z
zhouyongfei 已提交
201

H
update  
Hollokin 已提交
202
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
203

204
**参数:**
Z
zhouyongfei 已提交
205

206 207 208 209
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-'keyboardShow'表示显示输入法软键盘。<br/>-'keyboardHide'表示隐藏输入法软键盘。 |
| callback | () => void   | 是   | 回调函数。                                                   |
Z
zhouyongfei 已提交
210

211
**示例:**
Z
zhouyongfei 已提交
212

213
```ts
214 215
inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
  console.log('inputMethodEngine keyboardShow.');
H
Hollokin 已提交
216
});
217 218
inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
  console.log('inputMethodEngine keyboardHide.');
H
Hollokin 已提交
219 220
});
```
Z
zhouyongfei 已提交
221 222 223

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

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

226
取消订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
Z
zhouyongfei 已提交
227

H
update  
Hollokin 已提交
228
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
229

230
**参数:**
Z
zhouyongfei 已提交
231

232 233 234 235
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 要取消监听的输入法软键盘类型。<br/>-'keyboardShow'表示显示输入法软键盘。<br/>-'keyboardHide'表示隐藏输入法软键盘。|
| callback | () => void   | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhouyongfei 已提交
236

237
**示例:**
Z
zhouyongfei 已提交
238

239
```ts
240 241
inputMethodEngine.getInputMethodEngine().off('keyboardShow');
inputMethodEngine.getInputMethodEngine().off('keyboardHide');
H
Hollokin 已提交
242
```
W
wz 已提交
243

H
Hollokin 已提交
244
## InputMethodAbility
245

246
下列API均需使用[getInputMethodAbility](#inputmethodenginegetinputmethodability9)获取到InputMethodAbility实例后,通过实例调用。
247

H
Hollokin 已提交
248
### on('inputStart')<sup>9+</sup>
249 250 251

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

252
订阅输入法绑定成功事件。使用callback异步回调。
253

H
update  
Hollokin 已提交
254
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
255 256 257

**参数:**

258 259 260 261
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型,固定取值为'inputStart'。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 是 | 回调函数,返回输入法操作相关实例。 |
262 263 264

**示例:**

265 266 267 268 269
```ts
inputMethodEngine.getInputMethodAbility()
  .on('inputStart', (kbController: inputMethodEngine.KeyboardController, client: inputMethodEngine.InputClient) => {
    let keyboardController = kbController;
    let inputClient = client;
270
});
H
Hollokin 已提交
271
```
272 273 274 275 276

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

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

277
取消订阅输入法绑定成功事件。使用callback异步回调。
278

H
update  
Hollokin 已提交
279
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
280 281 282

**参数:**

283 284 285 286
| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type | string                                                       | 是   | 设置监听类型,固定取值为'inputStart'。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 否 | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
287 288 289

**示例:**

290
```ts
291
inputMethodEngine.getInputMethodAbility().off('inputStart');
H
Hollokin 已提交
292
```
293 294 295 296 297

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

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

298
订阅停止输入法应用事件。使用callback异步回调。
299

H
update  
Hollokin 已提交
300
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
301 302 303

**参数:**

304 305 306 307
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型,固定取值为'inputStop'。 |
| callback | () => void   | 是   | 回调函数。                        |
308 309 310

**示例:**

311
```ts
312 313
inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
  console.log('inputMethodAbility inputStop');
314
});
H
Hollokin 已提交
315
```
316 317 318 319 320

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

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

321
取消订阅停止输入法应用事件。使用callback异步回调。
322

H
update  
Hollokin 已提交
323
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
324 325 326

**参数:**

327 328 329 330
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型,固定取值为'inputStop'。 |
| callback | () => void   | 是   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。        |
331 332 333

**示例:**

334
```ts
335 336
inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
  console.log('inputMethodAbility delete inputStop notification.');
337
});
H
Hollokin 已提交
338
```
339 340 341

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

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

344
订阅设置调用窗口事件。使用callback异步回调。
345

H
update  
Hollokin 已提交
346
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
347 348 349

**参数:**

350 351 352 353
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型,固定取值为'setCallingWindow'。 |
| callback | (wid: number) => void | 是   | 回调函数,返回调用方窗口的Id。                     |
354 355 356

**示例:**

357 358
```ts
inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid: number) => {
359
  console.log('inputMethodAbility setCallingWindow');
360
});
H
Hollokin 已提交
361
```
362 363 364 365 366

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

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

367
取消订阅设置调用窗口事件。使用callback异步回调。
368

H
update  
Hollokin 已提交
369
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
370 371 372

**参数:**

373 374 375 376
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型,固定取值为'setCallingWindow'。|
| callback | (wid:number) => void | 是   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
377 378 379

**示例:**

380 381
```ts
inputMethodEngine.getInputMethodAbility().off('setCallingWindow', (wid: number) => {
382
  console.log('inputMethodAbility delete setCallingWindow notification.');
383
});
H
Hollokin 已提交
384
```
385 386 387 388 389

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

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

390
订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
391

H
update  
Hollokin 已提交
392
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
393 394 395

**参数:**

396 397 398 399
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>- 'keyboardShow'表示显示输入法软键盘。<br/>- 'keyboardHide'表示隐藏输入法软键盘。 |
| callback | () => void   | 是   | 回调函数。                                                   |
400 401 402

**示例:**

403
```ts
404 405
inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
  console.log('InputMethodAbility keyboardShow.');
H
Hollokin 已提交
406
});
407 408
inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
  console.log('InputMethodAbility keyboardHide.');
H
Hollokin 已提交
409 410
});
```
411 412 413 414 415

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

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

416
取消订阅输入法事件。使用callback异步回调。
417

H
update  
Hollokin 已提交
418
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
419 420 421

**参数:**

422 423 424 425
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>- 'keyboardShow'表示显示键盘。<br/>- 'keyboardHide'表示隐藏键盘。 |
| callback | () => void   | 否   | 回调函数。 |
426 427 428

**示例:**

429
```ts
430 431
inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
  console.log('InputMethodAbility delete keyboardShow notification.');
H
Hollokin 已提交
432
});
433 434
inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
  console.log('InputMethodAbility delete keyboardHide notification.');
H
Hollokin 已提交
435 436
});
```
437 438 439 440 441

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

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

442
订阅设置输入法子类型事件。使用callback异步回调。
443

H
update  
Hollokin 已提交
444
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
445 446 447

**参数:**

448 449 450 451
| 参数名    | 类型 | 必填  | 说明 |
| -------- | --- | ---- | --- |
| type     | string | 是   | 设置监听类型,固定取值为'setSubtype'。 |
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 是   | 回调函数,返回设置的输入法子类型。                         |
452 453 454

**示例:**

455 456
```ts
inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype: InputMethodSubtype) => {
457 458
  console.log('InputMethodAbility setSubtype.');
});
H
Hollokin 已提交
459
```
460 461 462

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

463
off(type: 'setSubtype', callback?: (inputMethodSubtype: InputMethodSubtype) => void): void
464

465
取消订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
466

H
update  
Hollokin 已提交
467
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
468 469 470

**参数:**

471 472 473 474
| 参数名   | 类型  | 必填 | 说明   |
| ------- | ----- | ---- | ---- |
| type     | string | 是   | 设置监听类型,固定取值为'setSubtype'。 |
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。  |
475 476 477

**示例:**

478
```ts
479 480
inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
  console.log('InputMethodAbility delete setSubtype notification.');
H
Hollokin 已提交
481 482
});
```
Z
zhouyongfei 已提交
483

484 485
### createPanel<sup>10+</sup>

H
update  
Hollokin 已提交
486
createPanel(ctx: BaseContext, info: PanelInfo, callback: AsyncCallback\<Panel>): void
487

488
创建输入法面板,仅支持输入法应用调用。使用callback异步回调。<br>单个输入法应用仅允许创建一个[软键盘类型](#paneltype10)[状态栏类型](#paneltype10)的面板。
489 490 491 492 493

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

**参数:**

494 495 496 497 498
| 参数名   | 类型        | 必填 | 说明                     |
| ------- | ----------- | ---- | ------------------------ |
| ctx     | [BaseContext](js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法应用信息。 |
| callback | AsyncCallback\<[Panel](#panel10)> | 是   | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
499 500 501

**错误码:**

502 503 504
| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
| 12800004   | not an input method extension. |
505 506 507

**示例:**

508
```ts
509
let panelInfo: inputMethodEngine.PanelInfo = {
510
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
511 512
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
513
try {
514
  inputMethodEngine.getInputMethodAbility()
515
    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
516 517 518 519 520 521 522
      if (err) {
        console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
        return;
      }
      console.log('Succeed in creating panel.');
    })
} catch (err) {
523
  console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
524 525 526 527 528
}
```

### createPanel<sup>10+</sup>

H
update  
Hollokin 已提交
529
createPanel(ctx: BaseContext, info: PanelInfo): Promise\<Panel>
530

531
创建输入法面板,仅支持输入法应用调用。使用promise异步回调。<br>单个输入法应用仅允许创建一个[软键盘类型](#paneltype10)[状态栏类型](#paneltype10)的面板。
532 533 534 535 536

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

**参数:**

537 538 539 540
| 参数名   | 类型        | 必填 | 说明                     |
| ------- | ----------- | ---- | ------------------------ |
| ctx     | [BaseContext](js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法面板信息。 |
541 542

**返回值:**
543
| 类型   | 说明                                                                 |
544
| ------- | ------------------------------------------------------------------ |
545
| Promise\<[Panel](#panel10)> | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
546 547 548

**错误码:**

549 550 551
| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
| 12800004   | not an input method extension. |
552 553 554

**示例:**

555
```ts
556
let panelInfo: inputMethodEngine.PanelInfo = {
557
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
558 559
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
560 561 562
inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo)
  .then((panel: inputMethodEngine.Panel) => {
    console.log('Succeed in creating panel.');
563
  }).catch((err: BusinessError) => {
564 565
    console.error(`Failed to create panel: ${JSON.stringify(err)}`);
  })
566 567 568 569
```

### destroyPanel<sup>10+</sup>

H
update  
Hollokin 已提交
570
destroyPanel(panel: Panel, callback: AsyncCallback\<void>): void;
571

572
销毁输入法面板。使用callback异步回调。
573 574 575 576 577

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

**参数:**

578 579 580 581
| 参数名   | 类型        | 必填 | 说明                     |
| ------- | ----------- | ---- | ------------------------ |
| panel     | [Panel](#panel10) | 是   | 要销毁的面板对象。 |
| callback | AsyncCallback\<void> | 是   | 回调函数。当输入法面板销毁成功,err为undefined,否则为错误对象。  |
582 583 584

**示例:**

585
```ts
586
let panelInfo: inputMethodEngine.PanelInfo = {
587
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
588 589
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
590
let inputPanel: inputMethodEngine.Panel | undefined = undefined;
591
try {
592
  inputMethodEngine.getInputMethodAbility()
593
    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
594 595 596 597 598 599 600 601
      if (err) {
        console.error(`Failed to create panel: ${JSON.stringify(err)}`);
        return;
      }
      inputPanel = panel;
      console.log('Succeed in creating panel.');
    })
} catch (err) {
602
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
603 604
}
try {
605
  if (inputPanel) {
606
    inputMethodEngine.getInputMethodAbility().destroyPanel(inputPanel, (err: BusinessError) => {
607 608 609 610 611 612 613 614
      if (err !== undefined) {
        console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
        return;
      }
      console.log('Succeed in destroying panel.');
    })
  }
} catch (err) {
615
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
616 617 618 619 620
}
```

### destroyPanel<sup>10+</sup>

H
update  
Hollokin 已提交
621
destroyPanel(panel: Panel): Promise\<void>;
622

623
销毁输入法面板。使用promise异步回调。
624 625 626 627 628

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

**参数:**

629 630 631
| 参数名   | 类型        | 必填 | 说明                     |
| ---------| ----------- | ---- | ------------------------ |
| panel    | [Panel](#panel10)       | 是   | 要销毁的面板对象。      |
632 633

**返回值:**
634
| 类型    | 说明                                                                 |
635
| ------- | -------------------------------------------------------------------- |
636
| Promise\<void> | 无返回结果的Promise对象。|
637 638 639

**示例:**

640
```ts
641
let panelInfo: inputMethodEngine.PanelInfo = {
642
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
643 644
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
645
let inputPanel: inputMethodEngine.Panel | undefined = undefined;
646
try {
647
  inputMethodEngine.getInputMethodAbility()
648
    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
649 650 651 652 653 654 655 656
      if (err) {
        console.error(`Failed to create panel: ${JSON.stringify(err)}`);
        return;
      }
      inputPanel = panel;
      console.log('Succeed in creating panel.');
    })
} catch (err) {
657
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
658 659 660
}

try {
661 662 663
  if (inputPanel) {
    inputMethodEngine.getInputMethodAbility().destroyPanel(inputPanel).then(() => {
      console.log('Succeed in destroying panel.');
664
    }).catch((err: BusinessError) => {
665 666 667
      console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
    });
  }
668
} catch (err) {
669
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
670 671 672
}
```

H
Hollokin 已提交
673
## KeyboardDelegate
Z
zhouyongfei 已提交
674

675
下列API均需使用[getKeyboardDelegate](#inputmethodenginegetkeyboarddelegate9)获取到KeyboardDelegate实例后,通过实例调用。
Z
zhouyongfei 已提交
676 677 678

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

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

681
订阅硬键盘(即物理键盘)上物理按键的按下或抬起事件。使用callback异步回调。
Z
zhouyongfei 已提交
682

H
update  
Hollokin 已提交
683
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
684

685
**参数:**
Z
zhouyongfei 已提交
686

687 688 689 690
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type   | string         | 是   | 设置监听类型。<br/>- 'keyDown'表示键盘按下。<br/>- 'keyUp'表示键盘抬起。 |
| callback | (event: [KeyEvent](#keyevent)) => boolean | 是 | 回调函数,返回按键信息。 |
Z
zhouyongfei 已提交
691

692
**示例:**
Z
zhouyongfei 已提交
693

694 695
```ts
inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent: inputMethodEngine.KeyEvent) => {
696 697
  console.log('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
  console.log('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
698
  return true;
H
Hollokin 已提交
699
});
700
inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent: inputMethodEngine.KeyEvent) => {
701 702
  console.log('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
  console.log('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
703
  return true;
H
Hollokin 已提交
704 705
});
```
Z
zhouyongfei 已提交
706 707 708

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

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

711
取消订阅硬键盘(即物理键盘)上物理按键的按下或抬起事件。使用callback异步回调。
Z
zhouyongfei 已提交
712

H
update  
Hollokin 已提交
713
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
714

715
**参数:**
Z
zhouyongfei 已提交
716

717 718 719 720
| 参数名    | 类型     | 必填  | 说明  |
| -------- | ------- | ---- | ----- |
| type     | string  | 是   | 设置监听类型。<br/>- 'keyDown'表示键盘按下。<br/>- 'keyUp'表示键盘抬起。 |
| callback | (event: [KeyEvent](#keyevent)) => boolean | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。   |
Z
zhouyongfei 已提交
721

722
**示例:**
Z
zhouyongfei 已提交
723

724 725
```ts
inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent: inputMethodEngine.KeyEvent) => {
726
  console.log('delete keyUp notification.');
727
  return true;
H
Hollokin 已提交
728
});
729
inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent: inputMethodEngine.KeyEvent) => {
730
  console.log('delete keyDown notification.');
731
  return true;
H
Hollokin 已提交
732 733
});
```
Z
zhouyongfei 已提交
734

Z
zhaolinglan 已提交
735
### on('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
736 737 738

on(type: 'keyEvent', callback: (event: InputKeyEvent) => boolean): void

739
订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhaolinglan 已提交
740 741 742 743 744

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

**参数:**

745 746 747 748
| 参数名   | 类型     | 必填 | 说明                                                         |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| type     | string   | 是   | 设置监听类型,固定取值为'keyEvent'。 |
| callback | function | 是   | 回调函数,入参为按键事件信息,返回值类型为布尔类型。<br/>-&nbsp;入参按键事件信息的数据类型为[InputKeyEvent](js-apis-keyevent.md#KeyEvent)。<br/>-&nbsp;若按键事件被事件订阅者消费,则callback应返回true,否则返回false。|
Z
zhaolinglan 已提交
749 750 751

**示例:**

752 753
```ts
inputMethodEngine.getKeyboardDelegate().on('keyEvent', (keyEvent: InputKeyEvent) => {
754 755 756
  console.log('inputMethodEngine keyEvent.action:' + JSON.stringify(keyEvent.action));
  console.log('inputMethodEngine keyEvent.key.code:' + JSON.stringify(keyEvent.key.code));
  console.log('inputMethodEngine keyEvent.ctrlKey:' + JSON.stringify(keyEvent.ctrlKey));
Z
zhaolinglan 已提交
757 758 759 760
  return true;
});
```

Z
zhaolinglan 已提交
761
### off('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
762 763 764

off(type: 'keyEvent', callback?: (event: InputKeyEvent) => boolean): void

765
取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhaolinglan 已提交
766 767 768 769 770

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

**参数:**

771 772 773 774
| 参数名   | 类型     | 必填 | 说明                                                         |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| type     | string   | 是   | 设置监听类型,固定取值为'keyEvent'。 |
| callback | function | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
Z
zhaolinglan 已提交
775 776 777

**示例:**

778 779
```ts
inputMethodEngine.getKeyboardDelegate().off('keyEvent', (keyEvent: InputKeyEvent) => {
780
  console.log('This is a callback function which will be deregistered.');
Z
zhaolinglan 已提交
781 782
  return true;
});
783
inputMethodEngine.getKeyboardDelegate().off('keyEvent');
Z
zhaolinglan 已提交
784 785
```

Z
zhouyongfei 已提交
786 787
### on('cursorContextChange')

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

790
订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
791

792
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
793

794
**参数:**
Z
zhouyongfei 已提交
795

796 797 798 799
| 参数名    | 类型  | 必填  | 说明  |
| -------- | ---- | ---- | ----- |
| type     | string | 是   | 光标变化事件,固定取值为'cursorContextChange'。 |
| callback | (x: number, y: number, height: number) => void | 是   | 回调函数,返回光标信息。<br/>-x为光标上端的的x坐标值,y为光标上端的y坐标值,height为光标的高度值。 |
Z
zhouyongfei 已提交
800

801
**示例:**
W
wz 已提交
802

803 804
```ts
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x: number, y: number, height: number) => {
805 806 807 808
  console.log('inputMethodEngine cursorContextChange x:' + x);
  console.log('inputMethodEngine cursorContextChange y:' + y);
  console.log('inputMethodEngine cursorContextChange height:' + height);
});
W
wz 已提交
809
```
Z
zhouyongfei 已提交
810 811 812

### off('cursorContextChange')

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

815
取消订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
816

H
update  
Hollokin 已提交
817
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
818

819
  **参数:**
Z
zhouyongfei 已提交
820

821 822 823 824
| 参数名    | 类型  | 必填  | 说明   |
| -------- | ---- | ---- | ------ |
| type     | string  | 是   | 光标变化事件,固定取值为'cursorContextChange' |
| callback | (x: number, y:number, height:number) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhouyongfei 已提交
825

826 827

  **示例:**
Z
zhouyongfei 已提交
828

829 830
```ts
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x: number, y: number, height: number) => {
831 832
  console.log('delete cursorContextChange notification.');
});
W
wz 已提交
833
```
Z
zhouyongfei 已提交
834 835
### on('selectionChange')

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

838
订阅文本选择范围变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
839

H
update  
Hollokin 已提交
840
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
841

H
Hollokin 已提交
842
**参数:**
Z
zhouyongfei 已提交
843

844 845 846 847
| 参数名    | 类型   | 必填 | 说明   |
| -------- | ----- | ---- | ---- |
| type     | string  | 是   | 文本选择变化事件,固定取值为'selectionChange'。 |
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 是   | 回调函数,返回文本选择信息。<br/>- oldBegin为变化前被选中文本的起始下标,oldEnd为变化前被选中文本的终止下标。<br/>- newBegin为变化后被选中文本的起始下标,newEnd为变化后被选中文本的终止下标。|
Z
zhouyongfei 已提交
848

H
Hollokin 已提交
849
**示例:**
W
wz 已提交
850

851 852 853 854 855 856 857 858
```ts
inputMethodEngine.getKeyboardDelegate()
  .on('selectionChange', (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => {
    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 已提交
859
```
Z
zhouyongfei 已提交
860 861 862

### off('selectionChange')

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

865
取消订阅文本选择范围变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
866

H
update  
Hollokin 已提交
867
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
868

869
**参数:**
Z
zhouyongfei 已提交
870

871 872 873 874
| 参数名   | 类型  | 必填 | 说明     |
| -------- | ------- | ---- | ------- |
| type     | string  | 是   | 文本选择变化事件,固定取值为'selectionChange'。 |
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
Z
zhouyongfei 已提交
875

876
**示例:**
Z
zhouyongfei 已提交
877

878 879 880 881 882
```ts
inputMethodEngine.getKeyboardDelegate()
  .off('selectionChange', (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number)  => {
    console.log('delete selectionChange notification.');
  });
W
wz 已提交
883
```
Z
zhouyongfei 已提交
884

885

Z
zhouyongfei 已提交
886 887
### on('textChange')

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

890
订阅文本内容变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
891

H
update  
Hollokin 已提交
892
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
893

H
Hollokin 已提交
894
**参数:**
Z
zhouyongfei 已提交
895

896 897 898 899
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'textChange'。 |
| callback | (text: string) => void | 是   | 回调函数,返回订阅的文本内容。|
Z
zhouyongfei 已提交
900

H
Hollokin 已提交
901
**示例:**
Z
zhouyongfei 已提交
902

903 904
```ts
inputMethodEngine.getKeyboardDelegate().on('textChange', (text: string) => {
905
  console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
906 907
});
```
Z
zhouyongfei 已提交
908 909 910

### off('textChange')

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

913
取消订阅文本内容变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
914

H
update  
Hollokin 已提交
915
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
916

917
**参数:**
Z
zhouyongfei 已提交
918

919 920 921 922
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'textChange'。 |
| callback | (text: string) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
Z
zhouyongfei 已提交
923

924
**示例:**
Z
zhouyongfei 已提交
925

926 927
```ts
inputMethodEngine.getKeyboardDelegate().off('textChange', (text: string) => {
928
  console.log('delete textChange notification. text:' + text);
929
});
W
wz 已提交
930
```
Z
zhouyongfei 已提交
931

932 933 934 935
### on('editorAttributeChanged')<sup>10+</sup>

on(type: 'editorAttributeChanged', callback: (attr: EditorAttribute) => void): void

936
订阅编辑框属性变化事件。使用callback异步回调。
937 938 939 940 941

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

**参数:**

942 943 944 945
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
| callback | (attr: EditorAttribute) => void | 是   | 回调函数,返回变化的编辑框属性。|
946 947 948

**示例:**

949 950
```ts
inputMethodEngine.getKeyboardDelegate().on('editorAttributeChanged', (attr: inputMethodEngine.EditorAttribute) => {
951
  console.log(`Succeeded in receiving attribute of editor, inputPattern = ${attr.inputPattern}, enterKeyType = ${attr.enterKeyType}`);
952 953 954 955 956 957 958
});
```

### off('editorAttributeChanged')<sup>10+</sup>

off(type: 'editorAttributeChanged', callback?: (attr: EditorAttribute) => void): void

959
取消订阅编辑框属性变化事件。使用callback异步回调。
960 961 962 963 964

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

**参数:**

965 966 967 968
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
| callback | (attr: EditorAttribute) => void | 否   | 所要取消订阅的回调处理函数。参数不填写时,取消订阅type对应的所有回调事件。 |
969 970 971

**示例:**

972
```ts
973
inputMethodEngine.getKeyboardDelegate().off('editorAttributeChanged');
974 975
```

H
update  
Hollokin 已提交
976
## Panel<sup>10+</sup>
977

978
下列API均需使用[createPanel](#createpanel10)获取到Panel实例后,通过实例调用。
979 980 981

### setUiContent<sup>10+</sup>

H
update  
Hollokin 已提交
982
setUiContent(path: string, callback: AsyncCallback\<void>): void
983

984
为当前的输入法面板加载具体页面内容,使用callback异步回调。
985 986 987 988 989

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

**参数:**

990 991 992 993
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 具体页面的路径。 |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
994 995 996

**示例:**

997
```ts
998
try {
999
  panel.setUiContent('pages/page2/page2', (err: BusinessError) => {
H
update  
Hollokin 已提交
1000
    if (err) {
H
Hollokin 已提交
1001
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1002 1003
      return;
    }
1004
    console.log('Succeeded in setting the content.');
1005
  });
H
Hollokin 已提交
1006 1007
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1008 1009 1010 1011 1012
}
```

### setUiContent<sup>10+</sup>

H
update  
Hollokin 已提交
1013
setUiContent(path: string): Promise\<void>
1014

1015
为当前的输入法面板加载具体页面内容,使用Promise异步回调。
1016 1017 1018 1019 1020

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

**参数:**

1021 1022 1023
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   |  具体页面的路径。 |
1024 1025 1026

**返回值:**

1027 1028 1029
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1030 1031 1032

**示例:**

1033
```ts
1034
try {
1035
  panel.setUiContent('pages/page2/page2').then(() => {
1036
    console.log('Succeeded in setting the content.');
1037
  }).catch((err: BusinessError) => {
1038 1039
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1040 1041
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1042 1043 1044 1045 1046
}
```

### setUiContent<sup>10+</sup>

H
update  
Hollokin 已提交
1047
setUiContent(path: string, storage: LocalStorage, callback: AsyncCallback\<void>): void
1048

1049
为当前的输入法面板加载与LocalStorage相关联的具体页面内容,使用callback异步回调。
1050 1051 1052 1053 1054

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

**参数:**

1055 1056 1057 1058 1059
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | LocalStorage相关联的具体页面的路径。 |
| storage | [LocalStorage](../arkui-ts/ts-state-management.md#localstorage9) | 是   | 存储单元,为应用程序范围内的可变和不可变状态属性提供存储。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
1060 1061 1062

**示例:**

1063
```ts
1064
let storage = new LocalStorage();
1065
storage.setOrCreate('storageSimpleProp',121);
1066
try {
1067
  panel.setUiContent('pages/page2/page2', storage, (err: BusinessError) => {
H
update  
Hollokin 已提交
1068
    if (err) {
H
Hollokin 已提交
1069
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1070 1071
      return;
    }
1072
    console.log('Succeeded in setting the content.');
1073
  });
H
Hollokin 已提交
1074 1075
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1076 1077 1078 1079 1080
}
```

### setUiContent<sup>10+</sup>

H
update  
Hollokin 已提交
1081
setUiContent(path: string, storage: LocalStorage): Promise\<void>
1082

1083
为当前面板加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。
1084 1085 1086 1087 1088

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

**参数:**

1089 1090 1091 1092
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
| storage | [LocalStorage](../arkui-ts/ts-state-management.md#localstorage9) | 是   | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。|
1093 1094 1095

**返回值:**

1096 1097 1098
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1099 1100 1101

**示例:**

1102
```ts
1103
let storage = new LocalStorage();
1104
storage.setOrCreate('storageSimpleProp',121);
1105
try {
1106
  panel.setUiContent('pages/page2/page2')then(() => {
1107
    console.log('Succeeded in setting the content.');
1108
  }).catch((err: BusinessError) => {
1109 1110
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1111 1112
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1113 1114 1115 1116 1117
}
```

### resize<sup>10+</sup>

H
update  
Hollokin 已提交
1118
resize(width: number, height: number, callback: AsyncCallback\<void>): void
1119

1120
改变当前输入法面板的大小,使用callback异步回调。
1121

N
update  
ningning 已提交
1122 1123
> **说明**
>
1124
> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1125 1126 1127 1128 1129

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

**参数:**

1130 1131 1132 1133 1134
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板大小改变成功,err为undefined,否则err为错误对象。 |
1135 1136 1137

**示例:**

1138
```ts
1139
try {
1140
  panel.resize(500, 1000, (err: BusinessError) => {
H
update  
Hollokin 已提交
1141
    if (err) {
H
Hollokin 已提交
1142
      console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1143 1144
      return;
    }
1145
    console.log('Succeeded in changing the panel size.');
1146
  });
H
Hollokin 已提交
1147 1148
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1149 1150 1151 1152 1153
}
```

### resize<sup>10+</sup>

H
update  
Hollokin 已提交
1154
resize(width: number, height: number): Promise\<void>;
1155

1156
改变当前输入法面板的大小,使用Promise异步回调。
H
换行  
Hollokin 已提交
1157

N
update  
ningning 已提交
1158 1159
> **说明**
>
1160
> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1161 1162 1163 1164 1165

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

**参数:**

1166 1167 1168 1169
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
1170 1171 1172

**返回值:**

1173 1174 1175
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1176 1177 1178

**示例:**

1179
```ts
1180
try {
1181
  panel.resize(500, 1000).then(() => {
1182
    console.log('Succeeded in changing the panel size.');
1183
  }).catch((err: BusinessError) => {
1184 1185
    console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1186 1187
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1188 1189 1190 1191 1192
}
```

### moveTo<sup>10+</sup>

H
update  
Hollokin 已提交
1193
moveTo(x: number, y: number, callback: AsyncCallback\<void>): void
1194

1195
移动面板位置,使用callback异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1196 1197 1198 1199 1200

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

**参数:**

1201 1202 1203 1204 1205
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| x | number | 是   | x轴方向移动的值,值大于0表示右移,单位为px。|
| y | number | 是   | y轴方向移动的值,值大于0表示下移,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板位置移动成功,err为undefined,否则err为错误对象。 |
1206 1207 1208

**示例:**

1209
```ts
1210
try {
1211
  panel.moveTo(300, 300, (err: BusinessError) =>{
H
update  
Hollokin 已提交
1212
    if (err) {
H
Hollokin 已提交
1213
      console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1214 1215
      return;
    }
1216
    console.log('Succeeded in moving the panel.');
1217
  });
H
Hollokin 已提交
1218
} catch (err) {
1219
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1220 1221 1222 1223 1224
}
```

### moveTo<sup>10+</sup>

H
update  
Hollokin 已提交
1225
moveTo(x: number, y: number): Promise\<void>
1226

1227
移动面板位置,使用promise异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1228 1229 1230 1231 1232

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

**参数:**

1233 1234 1235 1236
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| x | number | 是   |x轴方向移动的值,值大于0表示右移,单位为px。|
| y | number | 是   |y轴方向移动的值,值大于0表示下移,单位为px。|
1237 1238 1239

**返回值:**

1240 1241 1242
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1243 1244 1245

**示例:**

1246
```ts
1247
try {
1248
  panel.moveTo(300, 300).then(() => {
1249
    console.log('Succeeded in moving the panel.');
1250
  }).catch((err: BusinessError) => {
1251 1252
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1253 1254
} catch (err) {
  console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1255 1256 1257 1258 1259
}
```

### show<sup>10+</sup>

H
update  
Hollokin 已提交
1260
show(callback: AsyncCallback\<void>): void
1261

1262
显示当前输入法面板,使用callback异步回调。
1263 1264 1265 1266 1267

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

**参数:**

1268 1269 1270
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板显示成功,err为undefined,否则err为错误对象。 |
1271 1272 1273

**示例:**

1274
```ts
1275
panel.show((err: BusinessError) => {
H
update  
Hollokin 已提交
1276
  if (err) {
H
Hollokin 已提交
1277
    console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1278 1279
    return;
  }
1280
  console.log('Succeeded in showing the panel.');
1281 1282 1283 1284 1285
});
```

### show<sup>10+</sup>

H
update  
Hollokin 已提交
1286
show(): Promise\<void>
1287

1288
显示当前输入法面板,使用promise异步回调。
1289 1290 1291 1292 1293

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

**返回值:**

1294 1295 1296
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1297 1298 1299

**示例:**

1300 1301
```ts
panel.show().then(() => {
1302
  console.log('Succeeded in showing the panel.');
1303
}).catch((err: BusinessError) => {
1304 1305
  console.error(`Failed to show panel: ${JSON.stringify(err)}`);
});
1306 1307 1308 1309
```

### hide<sup>10+</sup>

H
update  
Hollokin 已提交
1310
hide(callback: AsyncCallback\<void>): void
1311

1312
隐藏当前输入法面板,使用callback异步回调。
1313 1314 1315 1316 1317

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

**参数:**

1318 1319 1320
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1321 1322 1323

**示例:**

1324
```ts
1325
panel.hide((err: BusinessError) => {
H
update  
Hollokin 已提交
1326
  if (err) {
H
Hollokin 已提交
1327
    console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1328 1329
    return;
  }
1330
  console.log('Succeeded in hiding the panel.');
1331 1332 1333 1334 1335
});
```

### hide<sup>10+</sup>

H
update  
Hollokin 已提交
1336
hide(): Promise\<void>
1337

1338
隐藏当前输入法面板,使用promise异步回调。
1339 1340 1341 1342 1343

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

**返回值:**

1344 1345 1346
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1347 1348 1349

**示例:**

1350 1351
```ts
panel.hide().then(() => {
1352
  console.log('Succeeded in hiding the panel.');
1353
}).catch((err: BusinessError) => {
1354 1355
  console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
});
1356 1357
```

1358
### on('show')<sup>10+</sup>
1359

1360
on(type: 'show', callback: () => void): void
1361

1362
监听当前面板显示状态,使用callback异步回调。
1363 1364 1365 1366 1367

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

**参数:**

1368 1369 1370 1371
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 监听当前面板的状态类型,固定取值为'show'。 |
| callback | () => void | 是   | 回调函数。 |
1372 1373 1374

**示例:**

1375
```ts
1376 1377
panel.on('show', () => {
  console.log('Panel is showing.');
1378 1379 1380
});
```

1381
### on('hide')<sup>10+</sup>
1382

1383
on(type: 'hide', callback: () => void): void
1384

1385
监听当前面板隐藏状态,使用callback异步回调。
1386 1387 1388 1389 1390

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

**参数:**

1391 1392 1393 1394
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 监听当前面板的状态类型,固定取值为'hide'。 |
| callback | () => void | 是   | 回调函数。 |
1395 1396 1397

**示例:**

1398
```ts
1399 1400
panel.on('hide', () => {
  console.log('Panel is hiding.');
1401 1402 1403 1404 1405 1406 1407
});
```

### off('show')<sup>10+</sup>

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

1408
取消监听当前输入法面板的隐藏状态,使用callback异步回调。
1409 1410 1411 1412 1413

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

**参数:**

1414 1415 1416 1417
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 取消监听当前面板的状态类型,固定取值为'show'。 |
| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1418 1419 1420

**示例:**

1421
```ts
1422
panel.off('show');
1423 1424
```

1425 1426 1427 1428
### off('hide')<sup>10+</sup>

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

1429
取消监听当前面板隐藏状态,使用callback异步回调。
1430 1431 1432 1433 1434

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

**参数:**

1435 1436 1437 1438
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 要取消监听的当前面板状态类型,固定取值为'hide'。 |
| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1439 1440 1441

**示例:**

1442
```ts
1443
panel.off('hide');
1444 1445
```

1446 1447 1448 1449
### changeFlag<sup>10+</sup>

changeFlag(flag: PanelFlag): void

N
update  
ningning 已提交
1450
将输入法应用的面板状态改变为固定态或者悬浮态,仅对[SOFT_KEYBOARD](#paneltype10)生效。
1451 1452 1453 1454 1455

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

**参数:**

1456 1457 1458
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| flag | [PanelFlag](#panelflag10) | 是 | 目标面板状态类型。 |
1459 1460 1461

**示例:**

1462
```ts
H
Hollokin 已提交
1463
let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1464 1465 1466
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1467
## KeyboardController
Z
zhouyongfei 已提交
1468

1469
下列API均需使用[on('inputStart')](#oninputstart9)获取到KeyboardController实例后,通过实例调用。
Z
zhouyongfei 已提交
1470

H
Hollokin 已提交
1471
### hide<sup>9+</sup>
H
Hollokin 已提交
1472

H
Hollokin 已提交
1473
hide(callback: AsyncCallback&lt;void&gt;): void
H
Hollokin 已提交
1474

1475
隐藏输入法。使用callback异步回调。
H
Hollokin 已提交
1476

H
update  
Hollokin 已提交
1477
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1478 1479 1480

**参数:**

1481 1482 1483
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
H
Hollokin 已提交
1484

H
Hollokin 已提交
1485 1486
**错误码:**

1487
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1488

1489 1490 1491
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1492

H
Hollokin 已提交
1493 1494
**示例:**

1495
```ts
1496
keyboardController.hide((err: BusinessError) => {
1497
  if (err) {
H
Hollokin 已提交
1498
    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1499 1500
    return;
  }
1501
  console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
1502 1503 1504 1505 1506 1507 1508
});
```

### hide<sup>9+</sup>

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

1509
隐藏输入法。使用promise异步回调。
H
Hollokin 已提交
1510

H
update  
Hollokin 已提交
1511
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1512 1513 1514

**返回值:**

1515 1516 1517
| 类型             | 说明                      |
| ---------------- | ------------------------- |
| Promise&lt;void> | 无返回结果的Promise对象。 |
H
Hollokin 已提交
1518

H
Hollokin 已提交
1519 1520
**错误码:**

1521
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1522

1523 1524 1525
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1526

H
Hollokin 已提交
1527 1528
**示例:**

1529
```ts
1530 1531
keyboardController.hide().then(() => {
  console.log('Succeeded in hiding keyboard.');
1532
}).catch((err: BusinessError) => {
1533 1534
  console.log(`Failed to hide: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
1535 1536 1537
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1538 1539 1540

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

1541
隐藏输入法。使用callback异步回调。
Z
zhouyongfei 已提交
1542

H
update  
Hollokin 已提交
1543 1544
> **说明:**
>
1545
> 从API version 8开始支持,API version 9开始废弃,建议使用[hide](#hide9)替代。
H
Hollokin 已提交
1546

H
update  
Hollokin 已提交
1547
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1548

1549
**参数:**
Z
refresh  
zhouyongfei 已提交
1550

1551 1552 1553
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
Z
refresh  
zhouyongfei 已提交
1554

1555
**示例:**
Z
zhouyongfei 已提交
1556

1557
```ts
1558
keyboardController.hideKeyboard((err: BusinessError) => {
1559
  if (err) {
H
Hollokin 已提交
1560
    console.error(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1561 1562
    return;
  }
1563
  console.log('Succeeded in hiding keyboard.');
1564
});
Z
zhouyongfei 已提交
1565 1566
```

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

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

1571
隐藏输入法。使用promise异步回调。
Z
zhouyongfei 已提交
1572

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

H
update  
Hollokin 已提交
1577
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1578

1579
**返回值:**
Z
refresh  
zhouyongfei 已提交
1580

1581 1582 1583
| 类型             | 说明                      |
| ---------------- | ------------------------- |
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
1584

1585
**示例:**
Z
zhouyongfei 已提交
1586

1587
```ts
1588 1589
keyboardController.hideKeyboard().then(() => {
  console.log('Succeeded in hiding keyboard.');
1590
}).catch((err: BusinessError) => {
1591 1592
  console.log(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
});
Z
zhouyongfei 已提交
1593 1594
```

1595 1596
## ExtendAction<sup>10+</sup>

N
update  
ningning 已提交
1597
编辑框中文本的扩展编辑操作类型,如剪切、复制等。
1598 1599 1600

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

1601 1602 1603 1604 1605 1606
| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| SELECT_ALL  | 0 |全选。 |
| CUT  | 3 |剪切。 |
| COPY  | 4 |复制。 |
| PASTE  | 5 |粘贴。 |
1607 1608 1609

## Direction<sup>10+</sup>

N
update  
ningning 已提交
1610
光标的移动方向。
1611 1612 1613

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

1614 1615 1616 1617 1618 1619
| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |
1620 1621 1622

## Range<sup>10+</sup>

N
update  
ningning 已提交
1623
选中的文本范围。
1624 1625 1626

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

1627 1628 1629 1630
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| start  | number | 是 | 是 | 选中文本的首字符在编辑框的索引值。|
| end  | number | 是 | 是 | 选中文本的末字符在编辑框的索引值。|
1631 1632 1633

## Movement<sup>10+</sup>

N
update  
ningning 已提交
1634
选中文本时,光标移动的方向
1635 1636 1637

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

1638 1639 1640
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| direction  | [Direction](#direction10) | 是 | 是 | 选中文本时,光标的移动方向。|
1641

H
Hollokin 已提交
1642
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1643

1644
下列API均需使用[on('inputStart')](#oninputstart9)获取到InputClient实例后,通过实例调用。
H
Hollokin 已提交
1645 1646 1647 1648 1649

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

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

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

H
update  
Hollokin 已提交
1652
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1653

1654
  **参数:**
H
Hollokin 已提交
1655

1656 1657 1658 1659
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>- 当值为0时,表示无效按键。<br/>- 当值为1时,表示确认键(即回车键)。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
1660

H
Hollokin 已提交
1661 1662
**错误码:**

1663
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1664

1665 1666 1667
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1668

1669
 **示例:**
H
Hollokin 已提交
1670

1671
```ts
1672
let action = 1;
H
Hollokin 已提交
1673
try {
1674
  inputClient.sendKeyFunction(action, (err: BusinessError, result: boolean) => {
1675
    if (err) {
H
Hollokin 已提交
1676
      console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1677 1678 1679
      return;
    }
    if (result) {
1680
      console.log('Succeeded in sending key function.');
1681
    } else {
1682
      console.error('Failed to sendKeyFunction.');
1683 1684
    }
  });
H
Hollokin 已提交
1685
} catch (err) {
H
Hollokin 已提交
1686
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1687 1688 1689 1690 1691
}
```

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

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

1694
发送功能键。使用promise异步回调。
H
Hollokin 已提交
1695

H
update  
Hollokin 已提交
1696
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1697 1698 1699

**参数:**

1700 1701 1702
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1703 1704 1705

**返回值:**

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

H
Hollokin 已提交
1710 1711
**错误码:**

1712
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1713

1714 1715 1716
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1717

H
Hollokin 已提交
1718 1719
**示例:**

1720
```ts
1721
let action = 1;
H
Hollokin 已提交
1722
try {
1723
  inputClient.sendKeyFunction(action).then((result: boolean) => {
1724 1725 1726 1727 1728
    if (result) {
      console.log('Succeeded in sending key function.');
    } else {
      console.error('Failed to sendKeyFunction.');
    }
1729
  }).catch((err: BusinessError) => {
1730 1731
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1732
} catch (err) {
H
Hollokin 已提交
1733
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1734 1735 1736 1737
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1738 1739 1740

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

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

H
update  
Hollokin 已提交
1743
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1744

1745
**参数:**
Z
zhouyongfei 已提交
1746

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

H
Hollokin 已提交
1752 1753
**错误码:**

1754
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1755

1756 1757 1758 1759
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1760

1761 1762
**示例:**

1763
```ts
H
Hollokin 已提交
1764 1765
let length = 1;
try {
1766
  inputClient.getForward(length, (err: BusinessError, text: string) => {
1767
    if (err) {
H
Hollokin 已提交
1768
      console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1769 1770
      return;
    }
1771
    console.log('Succeeded in getting forward, text: ' + text);
1772
  });
H
Hollokin 已提交
1773
} catch (err) {
H
Hollokin 已提交
1774
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1775 1776
}
```
Z
zhouyongfei 已提交
1777

H
Hollokin 已提交
1778
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1779 1780 1781

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

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

H
update  
Hollokin 已提交
1784
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1785

1786
**参数:**
Z
zhouyongfei 已提交
1787

1788 1789 1790
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1791

1792 1793
**返回值:**

1794 1795 1796
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt;           |  Promise对象,返回光标前固定长度的文本。                     |
Z
refresh  
zhouyongfei 已提交
1797

H
Hollokin 已提交
1798 1799
**错误码:**

1800
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1801

1802 1803 1804 1805
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1806

1807 1808
**示例:**

1809
```ts
1810 1811
let length = 1;
try {
1812
  inputClient.getForward(length).then((text: string) => {
1813
    console.log('Succeeded in getting forward, text: ' + text);
1814
  }).catch((err: BusinessError) => {
1815 1816
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
  });
1817
} catch (err) {
H
Hollokin 已提交
1818
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1819 1820
}
```
Z
zhouyongfei 已提交
1821

1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852
### getForwardSync<sup>10+</sup>

getForwardSync(length:number): string

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                       |
| ------ | -------------------------- |
| string | 返回光标前固定长度的文本。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | input method controller error. |

**示例:**

1853
```ts
1854 1855
let length = 1;
try {
1856
  let text: string = inputClient.getForwardSync(length);
1857 1858 1859 1860 1861 1862
  console.log(`Succeeded in getting forward, text: ${text}`);
} catch (err) {
  console.error(`Failed to getForwardSync: ${JSON.stringify(err)}`);
}
```

H
Hollokin 已提交
1863
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1864 1865 1866

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

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

H
update  
Hollokin 已提交
1869
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1870

1871
**参数:**
Z
zhouyongfei 已提交
1872

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

H
Hollokin 已提交
1878 1879
**错误码:**

1880
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1881

1882 1883 1884 1885
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1886

1887 1888
**示例:**

1889
```ts
H
Hollokin 已提交
1890 1891
let length = 1;
try {
1892
  inputClient.getBackward(length, (err: BusinessError, text: string) => {
1893
    if (err) {
H
Hollokin 已提交
1894
      console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
1895 1896
      return;
    }
1897
    console.log('Succeeded in getting backward, text: ' + text);
1898
  });
H
Hollokin 已提交
1899
} catch (err) {
H
Hollokin 已提交
1900
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1901 1902
}
```
Z
zhouyongfei 已提交
1903

H
Hollokin 已提交
1904
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1905 1906 1907

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

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

H
update  
Hollokin 已提交
1910
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1911

1912
**参数:**
Z
zhouyongfei 已提交
1913

1914 1915 1916
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1917

1918 1919
**返回值:**

1920 1921 1922
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt;           |  Promise对象,返回光标后固定长度的文本。                     |
Z
zhouyongfei 已提交
1923

H
Hollokin 已提交
1924 1925
**错误码:**

1926
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1927

1928 1929 1930 1931
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1932

1933 1934
**示例:**

1935
```ts
1936 1937
let length = 1;
try {
1938
  inputClient.getBackward(length).then((text: string) => {
1939
    console.log('Succeeded in getting backward, text: ' + text);
1940
  }).catch((err: BusinessError) => {
1941 1942
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
  });
1943
} catch (err) {
H
Hollokin 已提交
1944
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1945 1946
}
```
Z
zhouyongfei 已提交
1947

1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978
### getBackwardSync<sup>10+</sup>

getBackwardSync(length:number): string

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                       |
| ------ | -------------------------- |
| string | 返回光标后固定长度的文本。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | input method controller error. |

**示例:**

1979
```ts
1980 1981
let length = 1;
try {
1982
  let text: string = inputClient.getBackwardSync(length);
1983 1984 1985 1986 1987 1988
  console.log(`Succeeded in getting backward, text: ${text}`);
} catch (err) {
  console.error(`Failed to getBackwardSync: ${JSON.stringify(err)}`);
}
```

H
Hollokin 已提交
1989
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1990 1991 1992

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

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

H
update  
Hollokin 已提交
1995
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1996

1997
**参数:**
Z
zhouyongfei 已提交
1998

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

H
Hollokin 已提交
2004 2005
**错误码:**

2006
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2007

2008 2009 2010 2011
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2012

2013 2014
**示例:**

2015
```ts
H
Hollokin 已提交
2016 2017
let length = 1;
try {
2018
  inputClient.deleteForward(length, (err: BusinessError, result: boolean) => {
2019
    if (err) {
H
Hollokin 已提交
2020
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2021 2022 2023
      return;
    }
    if (result) {
2024
      console.log('Succeeded in deleting forward.');
2025
    } else {
H
Hollokin 已提交
2026
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2027 2028
    }
  });
H
Hollokin 已提交
2029
} catch (err) {
H
Hollokin 已提交
2030
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2031 2032 2033 2034
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
2035 2036 2037

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

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

H
update  
Hollokin 已提交
2040
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2041

2042
**参数:**
W
wz 已提交
2043 2044 2045 2046 2047

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

2048
**返回值:**  
2049

2050 2051 2052
| 类型                   | 说明           |
| ---------------------- | -------------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
Z
zhouyongfei 已提交
2053

H
Hollokin 已提交
2054 2055
**错误码:**

2056
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2057

2058 2059 2060 2061
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2062

2063 2064
**示例:**

2065
```ts
2066 2067
let length = 1;
try {
2068
  inputClient.deleteForward(length).then((result: boolean) => {
2069 2070 2071 2072 2073
    if (result) {
      console.log('Succeeded in deleting forward.');
    } else {
      console.error('Failed to delete Forward.');
    }
2074
  }).catch((err: BusinessError) => {
2075 2076
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
  });
2077
} catch (err) {
H
Hollokin 已提交
2078
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2079
}
W
wz 已提交
2080 2081
```

2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106
### deleteForwardSync<sup>10+</sup>

deleteForwardSync(length:number): void

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

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

**参数:**

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

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 12800002 | input method engine error. |
| 12800003 | input method client error. |

**示例:**

2107
```ts
2108 2109 2110 2111 2112 2113 2114 2115 2116
let length = 1;
try {
  inputClient.deleteForwardSync(length);
  console.log('Succeeded in deleting forward.');
} catch (err) {
  console.error('deleteForwardSync err: ' + JSON.stringify(err));
}
```

H
Hollokin 已提交
2117
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
2118 2119 2120

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

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

H
update  
Hollokin 已提交
2123
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2124

H
Hollokin 已提交
2125
**参数:**
Z
zhouyongfei 已提交
2126

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

H
Hollokin 已提交
2132 2133
**错误码:**

2134
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2135

2136 2137 2138 2139
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2140 2141

**示例:**
2142

2143
```ts
H
Hollokin 已提交
2144 2145
let length = 1;
try {
2146
  inputClient.deleteBackward(length, (err: BusinessError, result: boolean) => {
2147
    if (err) {
H
Hollokin 已提交
2148
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2149 2150 2151
      return;
    }
    if (result) {
2152
      console.log('Succeeded in deleting backward.');
2153
    } else {
H
Hollokin 已提交
2154
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2155 2156
    }
  });
H
Hollokin 已提交
2157
} catch (err) {
2158
  console.error('deleteBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
2159
}
W
wz 已提交
2160
```
Z
zhouyongfei 已提交
2161

H
Hollokin 已提交
2162
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
2163 2164

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

2166
删除光标后固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
2167

H
update  
Hollokin 已提交
2168
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2169

2170
**参数:**
B
bmeangel 已提交
2171

2172 2173 2174
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
2175

2176
**返回值:** 
2177

2178 2179 2180
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。 |
Z
zhouyongfei 已提交
2181

H
Hollokin 已提交
2182 2183
**错误码:**

2184
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2185

2186 2187 2188 2189
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2190

2191
**示例:**
Z
zhouyongfei 已提交
2192

2193
```ts
2194
let length = 1;
2195
inputClient.deleteBackward(length).then((result: boolean) => {
2196 2197 2198 2199 2200
  if (result) {
    console.log('Succeeded in deleting backward.');
  } else {
    console.error('Failed to deleteBackward.');
  }
2201
}).catch((err: BusinessError) => {
2202 2203
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
});
W
wz 已提交
2204
```
Z
zhouyongfei 已提交
2205

2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230
### deleteBackwardSync<sup>10+</sup>

deleteBackwardSync(length:number): void

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

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

**参数:**

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

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 12800002 | input method engine error. |
| 12800003 | input method client error. |

**示例:**

2231
```ts
2232 2233 2234 2235 2236 2237 2238 2239 2240
let length = 1;
try {
  inputClient.deleteBackwardSync(length);
  console.log('Succeeded in deleting backward.');
} catch (err) {
  console.error('deleteBackwardSync err: ' + JSON.stringify(err));
}
```

H
Hollokin 已提交
2241
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
2242 2243 2244

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

2245
插入文本。使用callback异步回调。
Z
zhouyongfei 已提交
2246

H
update  
Hollokin 已提交
2247
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2248

2249
**参数:**
Z
zhouyongfei 已提交
2250

2251 2252 2253 2254
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本内容。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
2255

H
Hollokin 已提交
2256 2257
**错误码:**

2258
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2259

2260 2261 2262 2263
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2264

2265 2266
**示例:**

2267
```ts
2268
inputClient.insertText('test', (err: BusinessError, result: boolean) => {
2269
  if (err) {
H
Hollokin 已提交
2270
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2271 2272 2273
    return;
  }
  if (result) {
2274
    console.log('Succeeded in inserting text.');
2275
  } else {
2276
    console.error('Failed to insertText.');
2277
  }
W
wz 已提交
2278 2279
});
```
Z
zhouyongfei 已提交
2280

H
Hollokin 已提交
2281
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
2282 2283

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

2285
插入文本。使用promise异步回调。
Z
zhouyongfei 已提交
2286

H
update  
Hollokin 已提交
2287
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2288

2289 2290
**参数:**

2291 2292 2293
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
2294

2295
**返回值:**  
W
wz 已提交
2296

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

H
Hollokin 已提交
2301 2302
**错误码:**

2303
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2304

2305 2306 2307 2308
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2309

2310
**示例:**
Z
zhouyongfei 已提交
2311

2312
```ts
2313
try {
2314
  inputClient.insertText('test').then((result: boolean) => {
2315 2316 2317 2318 2319
    if (result) {
      console.log('Succeeded in inserting text.');
    } else {
      console.error('Failed to insertText.');
    }
2320
  }).catch((err: BusinessError) => {
2321 2322
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
  });
2323
} catch (err) {
H
Hollokin 已提交
2324
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2325 2326
}
```
W
wz 已提交
2327

2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352
### insertTextSync<sup>10+</sup>

insertTextSync(text: string): void

插入文本。

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

**参数:**

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

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 12800002 | input method engine error. |
| 12800003 | input method client error. |

**示例:**

2353
```ts
2354 2355 2356 2357 2358 2359 2360 2361
try {
  inputClient.insertTextSync('test');
  console.log('Succeeded in inserting text.');
} catch (err) {
  console.error(`Failed to insertTextSync: ${JSON.stringify(err)}`);
}
```

H
Hollokin 已提交
2362
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2363 2364 2365

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

2366
获取编辑框属性值。使用callback异步回调。
Z
zhouyongfei 已提交
2367

H
update  
Hollokin 已提交
2368
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2369

2370 2371
**参数:**

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

H
Hollokin 已提交
2376 2377
**错误码:**

2378
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2379

2380 2381 2382
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2383

2384 2385
**示例:**

2386
```ts
2387
inputClient.getEditorAttribute((err: BusinessError, editorAttribute: inputMethodEngine.EditorAttribute) => {
2388
  if (err) {
H
Hollokin 已提交
2389
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2390 2391
    return;
  }
2392 2393
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2394 2395
});
```
Z
zhouyongfei 已提交
2396

H
Hollokin 已提交
2397
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2398

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

2401
获取编辑框属性值。使用promise异步回调。
Z
zhouyongfei 已提交
2402

H
update  
Hollokin 已提交
2403
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
2404

2405 2406
**返回值:**

2407 2408 2409
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
zhouyongfei 已提交
2410

H
Hollokin 已提交
2411 2412
**错误码:**

2413
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2414

2415 2416 2417
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2418

2419 2420
**示例:**

2421 2422
```ts
inputClient.getEditorAttribute().then((editorAttribute: inputMethodEngine.EditorAttribute) => {
2423 2424
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2425
}).catch((err: BusinessError) => {
2426 2427
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
2428
```
Z
zhaolinglan 已提交
2429

2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453
### getEditorAttributeSync<sup>10+</sup>

getEditorAttributeSync(): EditorAttribute

获取编辑框属性值。

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

**返回值:**

| 类型                                | 说明           |
| ----------------------------------- | -------------- |
| [EditorAttribute](#editorattribute) | 编辑框属性对象 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 12800003 | input method client error. |

**示例:**

2454
```ts
2455
try {
2456
  let editorAttribute: inputMethodEngine.EditorAttribute = inputClient.getEditorAttributeSync();
2457 2458 2459 2460 2461 2462
  console.log(`Succeeded in getEditorAttributeSync, editorAttribute = ${JSON.stringify(editorAttribute)}`);
} catch (err) {
  console.error(`Failed to getEditorAttributeSync: ${JSON.stringify(err)}`);
}
```

H
Hollokin 已提交
2463
### moveCursor<sup>9+</sup>
2464

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

2467
移动光标。使用callback异步回调。
Z
zhaolinglan 已提交
2468

H
update  
Hollokin 已提交
2469
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2470

H
Hollokin 已提交
2471
**参数:**
Z
zhaolinglan 已提交
2472

2473 2474
| 参数名    | 类型                      | 必填 | 说明           |
| --------- | ------------------------- | ---- | -------------- |
2475
| direction | number                    | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |
2476
| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象。    |
2477

H
Hollokin 已提交
2478 2479
**错误码:**

2480
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2481

2482 2483 2484
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2485

H
Hollokin 已提交
2486
**示例:**
2487

2488
```ts
H
Hollokin 已提交
2489
try {
2490
  inputClient.moveCursor(inputMethodEngine.Direction.CURSOR_UP, (err: BusinessError) => {
2491
    if (err) {
H
Hollokin 已提交
2492
      console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2493 2494
      return;
    }
2495
    console.log('Succeeded in moving cursor.');
2496
  });
H
Hollokin 已提交
2497
} catch (err) {
H
Hollokin 已提交
2498
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2499
}
2500 2501
```

H
Hollokin 已提交
2502
### moveCursor<sup>9+</sup>
2503

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

2506
移动光标。使用promise异步回调。
2507

H
update  
Hollokin 已提交
2508
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2509 2510 2511

**参数:**

2512 2513 2514
| 参数名    | 类型   | 必填 | 说明                                                         |
| --------- | ------ | ---- | ------------------------------------------------------------ |
| direction | number | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |
2515

2516
**返回值:**  
2517

2518 2519 2520
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2521

H
Hollokin 已提交
2522 2523
**错误码:**

2524
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
2525

2526 2527 2528
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2529

2530 2531
**示例:**

2532
```ts
2533
try {
2534
  inputClient.moveCursor(inputMethodEngine.Direction.CURSOR_UP).then(() => {
2535
    console.log('Succeeded in moving cursor.');
2536
  }).catch((err: BusinessError) => {
2537 2538
    console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
  });
2539
} catch (err) {
2540
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2541
}
H
Hollokin 已提交
2542
```
2543

2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567
### moveCursorSync<sup>10+</sup>

moveCursorSync(direction: number): void

移动光标。

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

**参数:**

| 参数名    | 类型   | 必填 | 说明                                                         |
| --------- | ------ | ---- | ------------------------------------------------------------ |
| direction | number | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 12800003 | input method client error. |

**示例:**

2568
```ts
2569 2570 2571 2572 2573 2574 2575 2576
try {
  inputClient.moveCursorSync(inputMethodEngine.Direction.CURSOR_UP);
  console.log('Succeeded in moving cursor.');
} catch (err) {
  console.error(`Failed to moveCursorSync: ${JSON.stringify(err)}`);
}
```

Z
add doc  
zhaolinglan 已提交
2577 2578 2579 2580
### selectByRange<sup>10+</sup>

selectByRange(range: Range, callback: AsyncCallback&lt;void&gt;): void

2581
根据索引范围选中文本。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2582 2583 2584 2585 2586

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

**参数:**

2587 2588 2589 2590
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| range    | [Range](#range10) | 是   | 选中文本的范围。                                             |
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2591 2592 2593 2594 2595

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2596 2597 2598 2599
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2600 2601 2602

**示例:**

2603
```ts
Z
add doc  
zhaolinglan 已提交
2604
try {
2605
  let range: inputMethodEngine.Range = { start: 0, end: 1 };
2606
  inputClient.selectByRange(range, (err: BusinessError) => {
2607
    if (err) {
H
Hollokin 已提交
2608
      console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2609 2610
      return;
    }
2611
    console.log('Succeeded in selecting by range.');
2612
  });
Z
add doc  
zhaolinglan 已提交
2613
} catch (err) {
H
Hollokin 已提交
2614
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2615 2616 2617 2618 2619 2620 2621
}
```

### selectByRange<sup>10+</sup>

selectByRange(range: Range): Promise&lt;void&gt;

2622
根据索引范围选中文本。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2623 2624 2625 2626 2627

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

**参数:**

2628 2629
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
2630
| range  | [Range](#range10) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2631 2632 2633

**返回值:**

2634 2635 2636
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
add doc  
zhaolinglan 已提交
2637 2638 2639 2640 2641

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2642 2643 2644 2645
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2646 2647 2648

**示例:**

2649
```ts
Z
add doc  
zhaolinglan 已提交
2650
try {
2651 2652
  let range: inputMethodEngine.Range = { start: 0, end: 1 };
  inputClient.selectByRange(range).then(() => {
2653
    console.log('Succeeded in selecting by range.');
2654
  }).catch((err: BusinessError) => {
2655 2656
    console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
  });
Z
add doc  
zhaolinglan 已提交
2657
} catch (err) {
2658
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2659 2660 2661
}
```

2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686
### selectByRangeSync<sup>10+</sup>

selectByRangeSync(range: Range): void

根据索引范围选中文本。

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

**参数:**

| 参数名 | 类型              | 必填 | 说明             |
| ------ | ----------------- | ---- | ---------------- |
| range  | [Range](#range10) | 是   | 选中文本的范围。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |

**示例:**

2687
```ts
2688
try {
2689 2690
  let range: inputMethodEngine.Range = { start: 0, end: 1 };
  inputClient.selectByRangeSync(range);
2691 2692 2693 2694 2695 2696
  console.log('Succeeded in selecting by range.');
} catch (err) {
  console.error(`Failed to selectByRangeSync: ${JSON.stringify(err)}`);
}
```

Z
add doc  
zhaolinglan 已提交
2697 2698 2699 2700
### selectByMovement<sup>10+</sup>

selectByMovement(movement: Movement, callback: AsyncCallback&lt;void&gt;): void

2701
根据光标移动方向选中文本。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2702 2703 2704 2705 2706

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

**参数:**

2707 2708 2709 2710
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
| movement | [Movement](#movement10)   | 是   | 选中时光标移动的方向。  |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2711 2712 2713 2714 2715

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2716 2717 2718 2719
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2720 2721 2722

**示例:**

2723
```ts
Z
add doc  
zhaolinglan 已提交
2724
try {
2725
  let movement: inputMethodEngine.Movement = { direction: 1 };
2726
  inputClient.selectByMovement(movement, (err: BusinessError) => {
2727
    if (err) {
H
Hollokin 已提交
2728
      console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2729 2730
      return;
    }
2731
    console.log('Succeeded in selecting by movement.');
2732
  });
Z
add doc  
zhaolinglan 已提交
2733
} catch (err) {
H
Hollokin 已提交
2734
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2735 2736 2737 2738 2739
}
```

### selectByMovement<sup>10+</sup>

2740
selectByMovement(movement: Movement): Promise&lt;void&gt;
Z
add doc  
zhaolinglan 已提交
2741

2742
根据索引范围选中文本。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2743 2744 2745 2746 2747

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

**参数:**

2748 2749
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2750
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2751 2752 2753

**返回值:**

2754 2755 2756
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
add doc  
zhaolinglan 已提交
2757 2758 2759 2760 2761

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2762 2763 2764 2765
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2766 2767 2768

**示例:**

2769
```ts
Z
add doc  
zhaolinglan 已提交
2770
try {
2771 2772
  let movement: inputMethodEngine.Movement = { direction: 1 };
  inputClient.selectByMovement(movement).then(() => {
2773
    console.log('Succeeded in selecting by movement.');
2774
  }).catch((err: BusinessError) => {
2775 2776
    console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
  });
Z
add doc  
zhaolinglan 已提交
2777
} catch (err) {
2778
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2779 2780 2781
}
```

2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806
### selectByMovementSync<sup>10+</sup>

selectByMovementSync(movement: Movement): void

根据光标移动方向选中文本。

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

**参数:**

| 参数名   | 类型                    | 必填 | 说明                   |
| -------- | ----------------------- | ---- | ---------------------- |
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |

**示例:**

2807
```ts
2808
try {
2809 2810
  let movement: inputMethodEngine.Movement = { direction: 1 };  
  inputClient.selectByMovementSync(movement);
2811 2812 2813 2814 2815 2816
  console.log('Succeeded in selecting by movement.');
} catch (err) {
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
}
```

Z
add doc  
zhaolinglan 已提交
2817 2818 2819 2820
### getTextIndexAtCursor<sup>10+</sup>

getTextIndexAtCursor(callback: AsyncCallback&lt;number&gt;): void

2821
获取光标所在处的文本索引。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2822 2823 2824 2825 2826

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

**参数:**

2827 2828 2829
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2830 2831 2832 2833 2834

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2835 2836 2837 2838
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
Z
add doc  
zhaolinglan 已提交
2839 2840 2841

**示例:**

2842
```ts
2843
inputClient.getTextIndexAtCursor((err: BusinessError, index: number) => {
2844
  if (err) {
H
Hollokin 已提交
2845
    console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
2846 2847
    return;
  }
2848
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2849 2850 2851 2852 2853 2854 2855
});
```

### getTextIndexAtCursor<sup>10+</sup>

getTextIndexAtCursor(): Promise&lt;number&gt;

2856
获取光标所在处的文本索引。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2857 2858 2859 2860 2861

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

**返回值:**

2862 2863 2864
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2865 2866 2867 2868 2869

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2870 2871 2872 2873
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
Z
add doc  
zhaolinglan 已提交
2874 2875 2876

**示例:**

2877 2878
```ts
inputClient.getTextIndexAtCursor().then((index: number) => {
2879
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
2880
}).catch((err: BusinessError) => {
2881 2882
  console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
});
Z
add doc  
zhaolinglan 已提交
2883 2884
```

2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909
### getTextIndexAtCursorSync<sup>10+</sup>

getTextIndexAtCursorSync(): number

获取光标所在处的文本索引。

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

**返回值:**

| 类型   | 说明                       |
| ------ | -------------------------- |
| number | 返回光标所在处的文本索引。 |

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |

**示例:**

2910
```ts
2911
try{
2912
  let index: number = inputClient.getTextIndexAtCursorSync();
2913 2914 2915 2916 2917 2918
  console.log(`Succeeded in getTextIndexAtCursorSync, index: ${index}`);
} catch (err) {
  console.error(`Failed to getTextIndexAtCursorSync: ${JSON.stringify(err)}`);
}
```

2919 2920 2921 2922
### sendExtendAction<sup>10+</sup>

sendExtendAction(action: ExtendAction, callback: AsyncCallback&lt;void&gt;): void

2923
发送扩展编辑操作。使用callback异步回调。
H
换行  
Hollokin 已提交
2924

N
update  
ningning 已提交
2925 2926 2927
> **说明**
>
> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2928 2929 2930 2931 2932

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

**参数:**

2933 2934 2935 2936
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| action | [ExtendAction](#extendaction10) | 是   | 要发送的扩展操作。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。发送成功,err为undefined,否则为错误对象。 |
2937 2938 2939 2940 2941

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2942 2943 2944 2945
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
2946 2947 2948

**示例:**

2949
```ts
2950
try {
2951
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err: BusinessError) => {
2952 2953 2954 2955
    if (err) {
      console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
      return;
    }
2956
    console.log('Succeeded in sending extend action.');
2957
  });
2958
} catch(err) {
H
Hollokin 已提交
2959
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2960 2961 2962 2963 2964 2965 2966
}
```

### sendExtendAction<sup>10+</sup>

sendExtendAction(action: ExtendAction): Promise&lt;void&gt;

2967
发送扩展编辑操作。使用promise异步回调。
H
换行  
Hollokin 已提交
2968

2969
>**说明**
N
update  
ningning 已提交
2970 2971
>
> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2972 2973 2974 2975 2976

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

**参数:**

2977 2978 2979
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
2980 2981 2982

**返回值:**

2983 2984 2985
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2986 2987 2988 2989 2990

**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)

2991 2992 2993 2994
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
2995 2996 2997

**示例:**

2998
```ts
2999
try {
3000 3001
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
    console.log('Succeeded in sending extend action.');
3002
  }).catch((err: BusinessError) => {
3003 3004 3005
    console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
  });
} catch(err) {
H
Hollokin 已提交
3006
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
3007 3008 3009
}
```

H
Hollokin 已提交
3010
## EditorAttribute
3011

H
Hollokin 已提交
3012
编辑框属性值。
3013

H
update  
Hollokin 已提交
3014
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
3015

3016 3017 3018 3019
| 名称         | 类型 | 可读 | 可写 | 说明               |
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |
H
Hollokin 已提交
3020

H
Hollokin 已提交
3021
## KeyEvent
H
Hollokin 已提交
3022 3023 3024

按键属性值。

H
update  
Hollokin 已提交
3025
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
3026

3027 3028 3029 3030
| 名称      | 类型 | 可读 | 可写 | 说明         |
| --------- | -------- | ---- | ---- | ------------ |
| keyCode   | number   | 是   | 否   | 按键的键值。键码值说明参考[KeyCode](js-apis-keycode.md#keycode)。 |
| keyAction | number   | 是   | 否   | 按键事件类型。<br/>- 当值为2时,表示按下事件;<br/>- 当值为3时,表示抬起事件。 |
H
Hollokin 已提交
3031

H
update  
Hollokin 已提交
3032
## PanelFlag<sup>10+</sup>
3033 3034 3035 3036 3037

输入法面板状态类型枚举。

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

3038 3039 3040 3041
| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| FLG_FIXED  | 0 | 固定态面板类型。 |
| FLG_FLOATING | 1 | 悬浮态面板类型。 |
3042

H
update  
Hollokin 已提交
3043
## PanelType<sup>10+</sup>
3044 3045 3046 3047 3048

输入法面板类型枚举。

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

3049 3050 3051 3052
| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| SOFT_KEYBOARD | 0 | 软键盘类型。 |
| STATUS_BAR   | 1 | 状态栏类型。 |
3053

H
update  
Hollokin 已提交
3054
## PanelInfo<sup>10+</sup>
3055

H
update  
Hollokin 已提交
3056 3057
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

3058 3059
输入法面板属性。

3060 3061 3062 3063
| 名称      | 类型 | 可读 | 可写 | 说明         |
| --------- | -------- | ---- | ---- | ------------ |
| type   	| number   | 是   | 是   | 面板的类型。 |
| flag	    | number   | 是   | 是   | 面板的状态类型。 |
3064

H
Hollokin 已提交
3065 3066
## TextInputClient<sup>(deprecated)</sup>

3067
> **说明:** 
H
update  
Hollokin 已提交
3068
>
3069
> 从API version 8开始支持,API version 9开始废弃,建议使用[InputClient](#inputclient9)替代。
H
Hollokin 已提交
3070

3071
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
3072 3073 3074 3075 3076

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

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

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

H
update  
Hollokin 已提交
3079 3080
> **说明:**
>
3081
> 从API version 8开始支持,API version 9开始废弃,建议使用[getForward](#getforward9)替代。
3082

H
update  
Hollokin 已提交
3083
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3084 3085 3086

**参数:**

3087 3088 3089 3090
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
3091 3092 3093

**示例:**

3094
```ts
H
Hollokin 已提交
3095
let length = 1;
3096
textInputClient.getForward(length, (err: BusinessError, text: string) => {
3097
  if (err) {
H
Hollokin 已提交
3098
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
3099 3100
    return;
  }
3101
  console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
3102 3103
});
```
3104

H
Hollokin 已提交
3105
### getForward<sup>(deprecated)</sup>
3106 3107 3108

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

3109
获取光标前固定长度的文本。使用promise异步回调。
3110

H
update  
Hollokin 已提交
3111 3112
> **说明:**
>
3113
> 从API version 8开始支持,API version 9开始废弃,建议使用[getForward](#getforward9)替代。
H
Hollokin 已提交
3114

H
update  
Hollokin 已提交
3115
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3116 3117 3118

**参数:**

3119 3120 3121
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
3122 3123 3124

**返回值:**

3125 3126 3127
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
3128 3129 3130

**示例:**

3131
```ts
3132
let length = 1;
3133
textInputClient.getForward(length).then((text: string) => {
3134
  console.log('Succeeded in getting forward, text: ' + text);
3135
}).catch((err: BusinessError) => {
3136 3137
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
3138
```
3139

H
Hollokin 已提交
3140
### getBackward<sup>(deprecated)</sup>
3141 3142 3143

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

3144
获取光标后固定长度的文本。使用callback异步回调。
3145

H
update  
Hollokin 已提交
3146 3147
> **说明:**
>
3148
> 从API version 8开始支持,API version 9开始废弃,建议使用[getBackward](#getbackward9)替代。
H
Hollokin 已提交
3149

H
update  
Hollokin 已提交
3150
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3151 3152 3153

**参数:**

3154 3155 3156 3157
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
3158 3159 3160

**示例:**

3161
```ts
H
Hollokin 已提交
3162
let length = 1;
3163
textInputClient.getBackward(length, (err: BusinessError, text: string) => {
3164
  if (err) {
H
Hollokin 已提交
3165
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
3166 3167
    return;
  }
3168
  console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
3169 3170
});
```
3171

H
Hollokin 已提交
3172
### getBackward<sup>(deprecated)</sup>
3173 3174 3175

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

3176
获取光标后固定长度的文本。使用promise异步回调。
3177

H
update  
Hollokin 已提交
3178 3179
> **说明:**
>
3180
> 从API version 8开始支持,API version 9开始废弃,建议使用[getBackward](#getbackward9)替代。
H
Hollokin 已提交
3181

H
update  
Hollokin 已提交
3182
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3183 3184 3185

**参数:**

3186 3187 3188
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
3189 3190 3191

**返回值:**

3192 3193 3194
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
3195 3196 3197

**示例:**

3198
```ts
3199
let length = 1;
3200
textInputClient.getBackward(length).then((text: string) => {
3201
  console.log('Succeeded in getting backward: ' + JSON.stringify(text));
3202
}).catch((err: BusinessError) => {
3203 3204
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
3205
```
3206

H
Hollokin 已提交
3207
### deleteForward<sup>(deprecated)</sup>
3208 3209 3210

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

3211
删除光标前固定长度的文本。使用callback异步回调。
3212

H
update  
Hollokin 已提交
3213 3214
> **说明:**
>
3215
> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteForward](#deleteforward9)替代。
H
Hollokin 已提交
3216

H
update  
Hollokin 已提交
3217
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3218 3219 3220

**参数:**

3221 3222 3223 3224
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
3225 3226 3227

**示例:**

3228
```ts
H
Hollokin 已提交
3229
let length = 1;
3230
textInputClient.deleteForward(length, (err: BusinessError, result: boolean) => {
3231
  if (err) {
H
Hollokin 已提交
3232
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
3233 3234 3235
    return;
  }
  if (result) {
3236
    console.log('Succeeded in deleting forward.');
3237
  } else {
3238
    console.error('Failed to deleteForward.');
3239
  }
H
Hollokin 已提交
3240 3241
});
```
H
Hollokin 已提交
3242

H
Hollokin 已提交
3243
### deleteForward<sup>(deprecated)</sup>
3244 3245 3246

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

3247
删除光标前固定长度的文本。使用promise异步回调。
3248

H
update  
Hollokin 已提交
3249 3250
> **说明:**
>
3251
> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteForward](#deleteforward9)替代。
H
Hollokin 已提交
3252

H
update  
Hollokin 已提交
3253
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3254 3255 3256 3257 3258 3259 3260

**参数:**

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

3261
**返回值:**  
3262

3263 3264 3265
| 类型                   | 说明           |
| ---------------------- | -------------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
3266 3267 3268

**示例:**

3269
```ts
3270
let length = 1;
3271
textInputClient.deleteForward(length).then((result: boolean) => {
3272 3273 3274 3275 3276
  if (result) {
    console.log('Succeeded in deleting forward.');
  } else {
    console.error('Failed to delete forward.');
  }
3277
}).catch((err: BusinessError) => {
3278 3279
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
});
3280 3281
```

H
Hollokin 已提交
3282
### deleteBackward<sup>(deprecated)</sup>
3283 3284 3285

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

3286
删除光标后固定长度的文本。使用callback异步回调。
3287

H
update  
Hollokin 已提交
3288 3289
> **说明:**
>
3290
> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteBackward](#deletebackward9)替代。
H
Hollokin 已提交
3291

H
update  
Hollokin 已提交
3292
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3293

3294
**参数:**
3295

3296 3297 3298 3299
| 参数名   | 类型                         | 必填 | 说明           |
| -------- | ---------------------------- | ---- | -------------- |
| length   | number                       | 是   | 文本长度。     |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。|
3300

3301
**示例:**
3302

3303
```ts
H
Hollokin 已提交
3304
let length = 1;
3305
textInputClient.deleteBackward(length, (err: BusinessError, result: boolean) => {
3306
  if (err) {
H
Hollokin 已提交
3307
    console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
3308 3309 3310
    return;
  }
  if (result) {
3311
    console.log('Succeeded in deleting backward.');
3312
  } else {
3313
    console.error('Failed to deleteBackward.');
3314
  }
H
Hollokin 已提交
3315
});
3316 3317
```

H
Hollokin 已提交
3318
### deleteBackward<sup>(deprecated)</sup>
3319 3320 3321

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

3322
删除光标后固定长度的文本。使用promise异步回调。
3323

H
update  
Hollokin 已提交
3324 3325
> **说明:**
>
3326
> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteBackward](#deletebackward9)替代。
H
Hollokin 已提交
3327

H
update  
Hollokin 已提交
3328
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3329 3330 3331

**参数:**

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

3336
**返回值:** 
3337

3338 3339 3340
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
3341 3342 3343

**示例:**

3344
```ts
3345
let length = 1;
3346
textInputClient.deleteBackward(length).then((result: boolean) => {
3347 3348 3349 3350 3351
  if (result) {
    console.log('Succeeded in deleting backward.');
  } else {
    console.error('Failed to deleteBackward.');
  }
3352
}).catch((err: BusinessError) => {
3353 3354
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
});
3355
```
H
Hollokin 已提交
3356
### sendKeyFunction<sup>(deprecated)</sup>
3357

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

3360
发送功能键。使用callback异步回调。
3361

H
update  
Hollokin 已提交
3362 3363
> **说明:**
>
3364
> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
3365

H
update  
Hollokin 已提交
3366
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3367

3368
**参数:**
3369

3370 3371 3372 3373
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>- 当值为0时,表示无效按键;<br/>- 当值为1时,表示确认键(即回车键)。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
3374

3375
**示例:**
3376

3377
```ts
3378
let action = 1;
3379
textInputClient.sendKeyFunction(action, (err: BusinessError, result: boolean) => {
3380
  if (err) {
H
Hollokin 已提交
3381
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
3382 3383 3384
    return;
  }
  if (result) {
3385
    console.log('Succeeded in sending key function.');
3386
  } else {
3387
    console.error('Failed to sendKeyFunction.');
3388
  }
3389 3390 3391
});
```

H
Hollokin 已提交
3392
### sendKeyFunction<sup>(deprecated)</sup>
3393

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

3396
发送功能键。使用promise异步回调。
H
Hollokin 已提交
3397

H
update  
Hollokin 已提交
3398 3399
> **说明:**
>
3400
> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
3401

H
update  
Hollokin 已提交
3402
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3403 3404 3405

**参数:**

3406 3407 3408
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
3409

H
Hollokin 已提交
3410
**返回值:**
3411

3412 3413 3414
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
3415 3416 3417

**示例:**

3418
```ts
3419
let action = 1;
3420
textInputClient.sendKeyFunction(action).then((result: boolean) => {
3421 3422 3423 3424 3425
  if (result) {
    console.log('Succeeded in sending key function.');
  } else {
    console.error('Failed to sendKeyFunction.');
  }
3426
}).catch((err: BusinessError) => {
3427 3428
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
3429
```
3430

H
Hollokin 已提交
3431
### insertText<sup>(deprecated)</sup>
3432

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

3435
插入文本。使用callback异步回调。
H
Hollokin 已提交
3436

H
update  
Hollokin 已提交
3437 3438
> **说明:**
>
3439
> 从API version 8开始支持,API version 9开始废弃,建议使用[insertText](#inserttext9)替代。
3440

H
update  
Hollokin 已提交
3441
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3442 3443 3444

**参数:**

3445 3446 3447 3448
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
3449 3450 3451

**示例:**

3452
```ts
3453
textInputClient.insertText('test', (err: BusinessError, result: boolean) => {
3454
  if (err) {
H
Hollokin 已提交
3455
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
3456 3457 3458
    return;
  }
  if (result) {
3459
    console.log('Succeeded in inserting text.');
3460
  } else {
3461
    console.error('Failed to insertText.');
3462
  }
H
Hollokin 已提交
3463 3464
});
```
3465

H
Hollokin 已提交
3466
### insertText<sup>(deprecated)</sup>
3467

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

3470
插入文本。使用promise异步回调。
3471

H
update  
Hollokin 已提交
3472 3473
> **说明:**
>
3474
> 从API version 8开始支持,API version 9开始废弃,建议使用[insertText](#inserttext9)替代。
3475

H
update  
Hollokin 已提交
3476
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3477 3478 3479

**参数:**

3480 3481 3482
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
3483

3484
**返回值:**  
H
Hollokin 已提交
3485

3486 3487 3488
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
3489 3490 3491

**示例:**

3492 3493
```ts
textInputClient.insertText('test').then((result: boolean) => {
3494 3495 3496 3497 3498
  if (result) {
    console.log('Succeeded in inserting text.');
  } else {
    console.error('Failed to insertText.');
  }
3499
}).catch((err: BusinessError) => {
3500 3501
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
});
Z
zhaolinglan 已提交
3502 3503
```

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

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

3508
获取编辑框属性值。使用callback异步回调。
H
Hollokin 已提交
3509

H
update  
Hollokin 已提交
3510 3511
> **说明:**
>
3512
> 从API version 8开始支持,API version 9开始废弃,建议使用[getEditorAttribute](#geteditorattribute9)替代。
Z
zhaolinglan 已提交
3513

H
update  
Hollokin 已提交
3514
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
3515 3516 3517

**参数:**

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

**示例:**

3524
```ts
3525
textInputClient.getEditorAttribute((err: BusinessError, editorAttribute: inputMethodEngine.EditorAttribute) => {
3526
  if (err) {
H
Hollokin 已提交
3527
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3528 3529
    return;
  }
3530 3531
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
3532 3533
});
```
Z
zhaolinglan 已提交
3534

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

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

3539
获取编辑框属性值。使用promise异步回调。
Z
刷新  
zhouyongfei 已提交
3540

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

H
update  
Hollokin 已提交
3545
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
3546

H
Hollokin 已提交
3547
**返回值:**
Z
zhouyongfei 已提交
3548

3549 3550 3551
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
刷新  
zhouyongfei 已提交
3552

H
Hollokin 已提交
3553
**示例:**
Z
zhouyongfei 已提交
3554

3555 3556
```ts
textInputClient.getEditorAttribute().then((editorAttribute: inputMethodEngine.EditorAttribute) => {
3557 3558
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
3559
}).catch((err: BusinessError) => {
3560 3561
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
});
3562
```
3563
<!--no_check-->