js-apis-inputmethodengine.md 103.7 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

## 导入模块

```
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

H
Hollokin 已提交
71
```js
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

**示例:**

H
Hollokin 已提交
91
```js
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

H
Hollokin 已提交
115 116 117
```js
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

**示例:**

H
Hollokin 已提交
139
```js
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

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

### off('inputStart')

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

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

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

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

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

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

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

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

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

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

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

202
**参数:**
Z
zhouyongfei 已提交
203

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

209
**示例:**
Z
zhouyongfei 已提交
210

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

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

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

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

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

228
**参数:**
Z
zhouyongfei 已提交
229

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

235
**示例:**
Z
zhouyongfei 已提交
236

H
Hollokin 已提交
237
```js
238 239
inputMethodEngine.getInputMethodEngine().off('keyboardShow');
inputMethodEngine.getInputMethodEngine().off('keyboardHide');
H
Hollokin 已提交
240
```
W
wz 已提交
241

H
Hollokin 已提交
242
## InputMethodAbility
243

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

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
263
```js
264 265 266 267
inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, client) => {
  let keyboardController = kbController;
  let inputClient = client;
});
H
Hollokin 已提交
268
```
269 270 271 272 273

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

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

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

H
update  
Hollokin 已提交
276
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
277 278 279

**参数:**

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

**示例:**

H
Hollokin 已提交
287
```js
288
inputMethodEngine.getInputMethodAbility().off('inputStart');
H
Hollokin 已提交
289
```
290 291 292 293 294

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

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

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

H
update  
Hollokin 已提交
297
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
298 299 300

**参数:**

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

**示例:**

H
Hollokin 已提交
308
```js
309 310
inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
  console.log('inputMethodAbility inputStop');
311
});
H
Hollokin 已提交
312
```
313 314 315 316 317

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

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

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

H
update  
Hollokin 已提交
320
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
321 322 323

**参数:**

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

**示例:**

H
Hollokin 已提交
331
```js
332 333
inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
  console.log('inputMethodAbility delete inputStop notification.');
334
});
H
Hollokin 已提交
335
```
336 337 338

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

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

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

H
update  
Hollokin 已提交
343
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
344 345 346

**参数:**

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

**示例:**

H
Hollokin 已提交
354
```js
355 356
inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid) => {
  console.log('inputMethodAbility setCallingWindow');
357
});
H
Hollokin 已提交
358
```
359 360 361 362 363

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

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

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

H
update  
Hollokin 已提交
366
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
367 368 369

**参数:**

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

**示例:**

H
Hollokin 已提交
377
```js
378 379
inputMethodEngine.getInputMethodAbility().off('setCallingWindow', (wid) => {
  console.log('inputMethodAbility delete setCallingWindow notification.');
380
});
H
Hollokin 已提交
381
```
382 383 384 385 386

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

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

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

H
update  
Hollokin 已提交
389
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
390 391 392

**参数:**

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

**示例:**

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

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

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

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

H
update  
Hollokin 已提交
415
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
416 417 418

**参数:**

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

**示例:**

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

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

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

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

H
update  
Hollokin 已提交
441
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
442 443 444

**参数:**

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

**示例:**

H
Hollokin 已提交
452
```js
453 454 455
inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype) => {
  console.log('InputMethodAbility setSubtype.');
});
H
Hollokin 已提交
456
```
457 458 459

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

460
off(type: 'setSubtype', callback?: (inputMethodSubtype: InputMethodSubtype) => void): void
461

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

H
update  
Hollokin 已提交
464
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
465 466 467

**参数:**

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

**示例:**

H
Hollokin 已提交
475
```js
476 477
inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
  console.log('InputMethodAbility delete setSubtype notification.');
H
Hollokin 已提交
478 479
});
```
Z
zhouyongfei 已提交
480

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

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

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

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

**参数:**

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

**错误码:**

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

**示例:**

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

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

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

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

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

**参数:**

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

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

**错误码:**

545 546 547
| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
| 12800004   | not an input method extension. |
548 549 550 551 552

**示例:**

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

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

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

567
销毁输入法面板。使用callback异步回调。
568 569 570 571 572

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

**参数:**

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

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
582
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
583 584
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
585
try {
586 587 588 589 590 591 592 593 594
  inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo, (err, panel) => {
    if (err) {
      console.error(`Failed to create panel: ${JSON.stringify(err)}`);
      return;
    }
	globalThis.inputMethodPanel = panel;
    console.log('Succeed in creating panel.');
  })
} catch(err) {
595
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
596 597 598
}

try {
599 600 601 602 603 604 605 606
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel, (err) => {
    if(err !== undefined) {
      console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
      return;
    }
    console.log('Succeed in destroying panel.');
  })
} catch(err) {
607
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
608 609 610 611 612
}
```

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

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

615
销毁输入法面板。使用promise异步回调。
616 617 618 619 620

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

**参数:**

621 622 623
| 参数名   | 类型        | 必填 | 说明                     |
| ---------| ----------- | ---- | ------------------------ |
| panel    | [Panel](#panel10)       | 是   | 要销毁的面板对象。      |
624 625

**返回值:**
626
| 类型    | 说明                                                                 |
627
| ------- | -------------------------------------------------------------------- |
628
| Promise\<void> | 无返回结果的Promise对象。|
629 630 631 632 633

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
634
  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
635 636
  flag: inputMethodEngine.PanelFlag.FLG_FIXED
}
637
try {
638 639 640 641 642 643 644 645 646
  inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo, (err, panel) => {
    if (err) {
      console.error(`Failed to create panel: ${JSON.stringify(err)}`);
      return;
    }
	globalThis.inputMethodPanel = panel;
    console.log('Succeed in creating panel.');
  })
} catch(err) {
647
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
648 649 650
}

try {
651 652 653 654 655
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel).then(() => {
    console.log('Succeed in destroying panel.');
  }).catch((err) => {
    console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
  });
656
} catch (err) {
657
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
658 659 660
}
```

H
Hollokin 已提交
661
## KeyboardDelegate
Z
zhouyongfei 已提交
662

663
下列API均需使用[getKeyboardDelegate](#inputmethodenginegetkeyboarddelegate9)获取到KeyboardDelegate实例后,通过实例调用。
Z
zhouyongfei 已提交
664 665 666

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

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

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

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

673
**参数:**
Z
zhouyongfei 已提交
674

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

680
**示例:**
Z
zhouyongfei 已提交
681

H
Hollokin 已提交
682
```js
683 684 685
inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent) => {
  console.log('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
  console.log('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
686
  return true;
H
Hollokin 已提交
687
});
688 689 690
inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent) => {
  console.log('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
  console.log('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
691
  return true;
H
Hollokin 已提交
692 693
});
```
Z
zhouyongfei 已提交
694 695 696

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

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

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

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

703
**参数:**
Z
zhouyongfei 已提交
704

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

710
**示例:**
Z
zhouyongfei 已提交
711

H
Hollokin 已提交
712
```js
713 714
inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent) => {
  console.log('delete keyUp notification.');
715
  return true;
H
Hollokin 已提交
716
});
717 718
inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent) => {
  console.log('delete keyDown notification.');
719
  return true;
H
Hollokin 已提交
720 721
});
```
Z
zhouyongfei 已提交
722

Z
zhaolinglan 已提交
723
### on('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
724 725 726

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

727
订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhaolinglan 已提交
728 729 730 731 732

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

**参数:**

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

**示例:**

```js
741 742 743 744
inputMethodEngine.getKeyboardDelegate().on('keyEvent', (keyEvent) => {
  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 已提交
745 746 747 748
  return true;
});
```

Z
zhaolinglan 已提交
749
### off('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
750 751 752

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

753
取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhaolinglan 已提交
754 755 756 757 758

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

**参数:**

759 760 761 762
| 参数名   | 类型     | 必填 | 说明                                                         |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| type     | string   | 是   | 设置监听类型,固定取值为'keyEvent'。 |
| callback | function | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
Z
zhaolinglan 已提交
763 764 765 766

**示例:**

```js
767 768
inputMethodEngine.getKeyboardDelegate().off('keyEvent', (keyEvent) => {
  console.log('This is a callback function which will be deregistered.');
Z
zhaolinglan 已提交
769 770
  return true;
});
771
inputMethodEngine.getKeyboardDelegate().off('keyEvent');
Z
zhaolinglan 已提交
772 773
```

Z
zhouyongfei 已提交
774 775
### on('cursorContextChange')

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

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

780
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
781

782
**参数:**
Z
zhouyongfei 已提交
783

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

789
**示例:**
W
wz 已提交
790 791

```js
792 793 794 795 796
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
  console.log('inputMethodEngine cursorContextChange x:' + x);
  console.log('inputMethodEngine cursorContextChange y:' + y);
  console.log('inputMethodEngine cursorContextChange height:' + height);
});
W
wz 已提交
797
```
Z
zhouyongfei 已提交
798 799 800

### off('cursorContextChange')

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

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

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

807
  **参数:**
Z
zhouyongfei 已提交
808

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

814 815

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

W
wz 已提交
817
```js
818 819 820
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
  console.log('delete cursorContextChange notification.');
});
W
wz 已提交
821
```
Z
zhouyongfei 已提交
822 823
### on('selectionChange')

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

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

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

H
Hollokin 已提交
830
**参数:**
Z
zhouyongfei 已提交
831

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

H
Hollokin 已提交
837
**示例:**
W
wz 已提交
838 839

```js
840 841 842 843 844 845
inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
  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 已提交
846
```
Z
zhouyongfei 已提交
847 848 849

### off('selectionChange')

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

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

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

856
**参数:**
Z
zhouyongfei 已提交
857

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

863
**示例:**
Z
zhouyongfei 已提交
864

W
wz 已提交
865
```js
866 867 868
inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
  console.log('delete selectionChange notification.');
});
W
wz 已提交
869
```
Z
zhouyongfei 已提交
870

871

Z
zhouyongfei 已提交
872 873
### on('textChange')

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

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

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

H
Hollokin 已提交
880
**参数:**
Z
zhouyongfei 已提交
881

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

H
Hollokin 已提交
887
**示例:**
Z
zhouyongfei 已提交
888

W
wz 已提交
889
```js
890 891
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
  console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
892 893
});
```
Z
zhouyongfei 已提交
894 895 896

### off('textChange')

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

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

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

903
**参数:**
Z
zhouyongfei 已提交
904

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

910
**示例:**
Z
zhouyongfei 已提交
911

W
wz 已提交
912
```js
913 914
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
  console.log('delete textChange notification. text:' + text);
915
});
W
wz 已提交
916
```
Z
zhouyongfei 已提交
917

918 919 920 921
### on('editorAttributeChanged')<sup>10+</sup>

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

922
订阅编辑框属性变化事件。使用callback异步回调。
923 924 925 926 927

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

**参数:**

928 929 930 931
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
| callback | (attr: EditorAttribute) => void | 是   | 回调函数,返回变化的编辑框属性。|
932 933 934 935

**示例:**

```js
936 937
inputMethodEngine.getKeyboardDelegate().on('editorAttributeChanged', (attr) => {
  console.log(`Succeeded in receiving attribute of editor, inputPattern = ${attr.inputPattern}, enterKeyType = ${attr.enterKeyType}`);
938 939 940 941 942 943 944
});
```

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

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

945
取消订阅编辑框属性变化事件。使用callback异步回调。
946 947 948 949 950

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

**参数:**

951 952 953 954
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
| callback | (attr: EditorAttribute) => void | 否   | 所要取消订阅的回调处理函数。参数不填写时,取消订阅type对应的所有回调事件。 |
955 956 957 958

**示例:**

```js
959
inputMethodEngine.getKeyboardDelegate().off('editorAttributeChanged');
960 961
```

H
update  
Hollokin 已提交
962
## Panel<sup>10+</sup>
963

964
下列API均需使用[createPanel](#createpanel10)获取到Panel实例后,通过实例调用。
965 966 967

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

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

970
为当前的输入法面板加载具体页面内容,使用callback异步回调。
971 972 973 974 975

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

**参数:**

976 977 978 979
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 具体页面的路径。 |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
980 981 982 983 984

**示例:**

```js
try {
985
  panel.setUiContent('pages/page2/page2', (err) => {
H
update  
Hollokin 已提交
986
    if (err) {
H
Hollokin 已提交
987
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
988 989
      return;
    }
990
    console.log('Succeeded in setting the content.');
991
  });
H
Hollokin 已提交
992 993
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
994 995 996 997 998
}
```

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

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

1001
为当前的输入法面板加载具体页面内容,使用Promise异步回调。
1002 1003 1004 1005 1006

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

**参数:**

1007 1008 1009
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   |  具体页面的路径。 |
1010 1011 1012

**返回值:**

1013 1014 1015
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1016 1017 1018 1019 1020

**示例:**

```js
try {
1021 1022 1023 1024 1025 1026
  let promise = panel.setUiContent('pages/page2/page2');
  promise.then(() => {
    console.log('Succeeded in setting the content.');
  }).catch((err) =>{
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1027 1028
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1029 1030 1031 1032 1033
}
```

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

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

1036
为当前的输入法面板加载与LocalStorage相关联的具体页面内容,使用callback异步回调。
1037 1038 1039 1040 1041

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

**参数:**

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

**示例:**

```js
let storage = new LocalStorage();
1052
storage.setOrCreate('storageSimpleProp',121);
1053
try {
1054
  panel.setUiContent('pages/page2/page2', storage, (err) => {
H
update  
Hollokin 已提交
1055
    if (err) {
H
Hollokin 已提交
1056
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1057 1058
      return;
    }
1059
    console.log('Succeeded in setting the content.');
1060
  });
H
Hollokin 已提交
1061 1062
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1063 1064 1065 1066 1067
}
```

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

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

1070
为当前面板加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。
1071 1072 1073 1074 1075

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

**参数:**

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

**返回值:**

1083 1084 1085
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1086 1087 1088 1089 1090

**示例:**

```js
let storage = new LocalStorage();
1091
storage.setOrCreate('storageSimpleProp',121);
1092
try {
1093 1094 1095 1096 1097 1098
  let promise = panel.setUiContent('pages/page2/page2');
  promise.then(() => {
    console.log('Succeeded in setting the content.');
  }).catch((err) =>{
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1099 1100
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1101 1102 1103 1104 1105
}
```

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

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

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

N
update  
ningning 已提交
1110 1111
> **说明**
>
1112
> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1113 1114 1115 1116 1117

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

**参数:**

1118 1119 1120 1121 1122
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板大小改变成功,err为undefined,否则err为错误对象。 |
1123 1124 1125 1126 1127 1128

**示例:**

```js
try {
  panel.resize(500, 1000, (err) => {
H
update  
Hollokin 已提交
1129
    if (err) {
H
Hollokin 已提交
1130
      console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1131 1132
      return;
    }
1133
    console.log('Succeeded in changing the panel size.');
1134
  });
H
Hollokin 已提交
1135 1136
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1137 1138 1139 1140 1141
}
```

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

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

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

N
update  
ningning 已提交
1146 1147
> **说明**
>
1148
> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1149 1150 1151 1152 1153

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

**参数:**

1154 1155 1156 1157
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
1158 1159 1160

**返回值:**

1161 1162 1163
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1164 1165 1166 1167 1168 1169

**示例:**

```js
try {
  let promise = panel.resize(500, 1000);
1170 1171 1172 1173 1174
  promise.then(() => {
    console.log('Succeeded in changing the panel size.');
  }).catch((err) =>{
    console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1175 1176
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1177 1178 1179 1180 1181
}
```

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

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

1184
移动面板位置,使用callback异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1185 1186 1187 1188 1189

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

**参数:**

1190 1191 1192 1193 1194
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| x | number | 是   | x轴方向移动的值,值大于0表示右移,单位为px。|
| y | number | 是   | y轴方向移动的值,值大于0表示下移,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板位置移动成功,err为undefined,否则err为错误对象。 |
1195 1196 1197 1198 1199

**示例:**

```js
try {
1200
  panel.moveTo(300, 300, (err) =>{
H
update  
Hollokin 已提交
1201
    if (err) {
H
Hollokin 已提交
1202
      console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1203 1204
      return;
    }
1205
    console.log('Succeeded in moving the panel.');
1206
  });
H
Hollokin 已提交
1207
} catch (err) {
1208
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1209 1210 1211 1212 1213
}
```

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

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

1216
移动面板位置,使用promise异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1217 1218 1219 1220 1221

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

**参数:**

1222 1223 1224 1225
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| x | number | 是   |x轴方向移动的值,值大于0表示右移,单位为px。|
| y | number | 是   |y轴方向移动的值,值大于0表示下移,单位为px。|
1226 1227 1228

**返回值:**

1229 1230 1231
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1232 1233 1234 1235 1236

**示例:**

```js
try {
1237
  let promise = panel.moveTo(300, 300);
1238 1239 1240 1241 1242
  promise.then(() => {
    console.log('Succeeded in moving the panel.');
  }).catch((err) =>{
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1243 1244
} catch (err) {
  console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1245 1246 1247 1248 1249
}
```

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

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

1252
显示当前输入法面板,使用callback异步回调。
1253 1254 1255 1256 1257

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

**参数:**

1258 1259 1260
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板显示成功,err为undefined,否则err为错误对象。 |
1261 1262 1263 1264 1265

**示例:**

```js
panel.show((err) => {
H
update  
Hollokin 已提交
1266
  if (err) {
H
Hollokin 已提交
1267
    console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1268 1269
    return;
  }
1270
  console.log('Succeeded in showing the panel.');
1271 1272 1273 1274 1275
});
```

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

H
update  
Hollokin 已提交
1276
show(): Promise\<void>
1277

1278
显示当前输入法面板,使用promise异步回调。
1279 1280 1281 1282 1283

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

**返回值:**

1284 1285 1286
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1287 1288 1289 1290 1291

**示例:**

```js
let promise = panel.show();
1292 1293 1294 1295 1296
promise.then(() => {
  console.log('Succeeded in showing the panel.');
}).catch((err) =>{
  console.error(`Failed to show panel: ${JSON.stringify(err)}`);
});
1297 1298 1299 1300
```

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

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

1303
隐藏当前输入法面板,使用callback异步回调。
1304 1305 1306 1307 1308

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

**参数:**

1309 1310 1311
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1312 1313 1314 1315 1316

**示例:**

```js
panel.hide((err) => {
H
update  
Hollokin 已提交
1317
  if (err) {
H
Hollokin 已提交
1318
    console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1319 1320
    return;
  }
1321
  console.log('Succeeded in hiding the panel.');
1322 1323 1324 1325 1326
});
```

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

H
update  
Hollokin 已提交
1327
hide(): Promise\<void>
1328

1329
隐藏当前输入法面板,使用promise异步回调。
1330 1331 1332 1333 1334

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

**返回值:**

1335 1336 1337
| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise\<void> | 无返回结果的Promise对象。  |
1338 1339 1340 1341 1342

**示例:**

```js
let promise = panel.hide();
1343 1344 1345 1346 1347
promise.then(() => {
  console.log('Succeeded in hiding the panel.');
}).catch((err) =>{
  console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
});
1348 1349
```

1350
### on('show')<sup>10+</sup>
1351

1352
on(type: 'show', callback: () => void): void
1353

1354
监听当前面板显示状态,使用callback异步回调。
1355 1356 1357 1358 1359

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

**参数:**

1360 1361 1362 1363
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 监听当前面板的状态类型,固定取值为'show'。 |
| callback | () => void | 是   | 回调函数。 |
1364 1365 1366 1367

**示例:**

```js
1368 1369
panel.on('show', () => {
  console.log('Panel is showing.');
1370 1371 1372
});
```

1373
### on('hide')<sup>10+</sup>
1374

1375
on(type: 'hide', callback: () => void): void
1376

1377
监听当前面板隐藏状态,使用callback异步回调。
1378 1379 1380 1381 1382

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

**参数:**

1383 1384 1385 1386
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 监听当前面板的状态类型,固定取值为'hide'。 |
| callback | () => void | 是   | 回调函数。 |
1387 1388 1389 1390

**示例:**

```js
1391 1392
panel.on('hide', () => {
  console.log('Panel is hiding.');
1393 1394 1395 1396 1397 1398 1399
});
```

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

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

1400
取消监听当前输入法面板的隐藏状态,使用callback异步回调。
1401 1402 1403 1404 1405

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

**参数:**

1406 1407 1408 1409
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 取消监听当前面板的状态类型,固定取值为'show'。 |
| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1410 1411 1412 1413

**示例:**

```js
1414
panel.off('show');
1415 1416
```

1417 1418 1419 1420
### off('hide')<sup>10+</sup>

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

1421
取消监听当前面板隐藏状态,使用callback异步回调。
1422 1423 1424 1425 1426

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

**参数:**

1427 1428 1429 1430
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 要取消监听的当前面板状态类型,固定取值为'hide'。 |
| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1431 1432 1433 1434

**示例:**

```js
1435
panel.off('hide');
1436 1437
```

1438 1439 1440 1441
### changeFlag<sup>10+</sup>

changeFlag(flag: PanelFlag): void

N
update  
ningning 已提交
1442
将输入法应用的面板状态改变为固定态或者悬浮态,仅对[SOFT_KEYBOARD](#paneltype10)生效。
1443 1444 1445 1446 1447

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

**参数:**

1448 1449 1450
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| flag | [PanelFlag](#panelflag10) | 是 | 目标面板状态类型。 |
1451 1452 1453 1454

**示例:**

```js
H
Hollokin 已提交
1455
let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1456 1457 1458
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1459
## KeyboardController
Z
zhouyongfei 已提交
1460

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

H
Hollokin 已提交
1463
### hide<sup>9+</sup>
H
Hollokin 已提交
1464

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

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

H
update  
Hollokin 已提交
1469
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1470 1471 1472

**参数:**

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

H
Hollokin 已提交
1477 1478
**错误码:**

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

1481 1482 1483
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1484

H
Hollokin 已提交
1485 1486 1487
**示例:**

```js
H
Hollokin 已提交
1488
keyboardController.hide((err) => {
1489
  if (err) {
H
Hollokin 已提交
1490
    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1491 1492
    return;
  }
1493
  console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
1494 1495 1496 1497 1498 1499 1500
});
```

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

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

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

H
update  
Hollokin 已提交
1503
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1504 1505 1506

**返回值:**

1507 1508 1509
| 类型             | 说明                      |
| ---------------- | ------------------------- |
| Promise&lt;void> | 无返回结果的Promise对象。 |
H
Hollokin 已提交
1510

H
Hollokin 已提交
1511 1512
**错误码:**

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

1515 1516 1517
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1518

H
Hollokin 已提交
1519 1520 1521
**示例:**

```js
1522 1523 1524 1525 1526
keyboardController.hide().then(() => {
  console.log('Succeeded in hiding keyboard.');
}).catch((err) => {
  console.log(`Failed to hide: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
1527 1528 1529
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1530 1531 1532

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

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

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

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

1541
**参数:**
Z
refresh  
zhouyongfei 已提交
1542

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

1547
**示例:**
Z
zhouyongfei 已提交
1548

1549
```js
H
Hollokin 已提交
1550
keyboardController.hideKeyboard((err) => {
1551
  if (err) {
H
Hollokin 已提交
1552
    console.error(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1553 1554
    return;
  }
1555
  console.log('Succeeded in hiding keyboard.');
1556
});
Z
zhouyongfei 已提交
1557 1558
```

H
Hollokin 已提交
1559
### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1560 1561 1562

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

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

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

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

1571
**返回值:**
Z
refresh  
zhouyongfei 已提交
1572

1573 1574 1575
| 类型             | 说明                      |
| ---------------- | ------------------------- |
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
1576

1577
**示例:**
Z
zhouyongfei 已提交
1578

1579
```js
1580 1581 1582 1583 1584
keyboardController.hideKeyboard().then(() => {
  console.log('Succeeded in hiding keyboard.');
}).catch((err) => {
  console.log(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
});
Z
zhouyongfei 已提交
1585 1586
```

1587 1588
## ExtendAction<sup>10+</sup>

N
update  
ningning 已提交
1589
编辑框中文本的扩展编辑操作类型,如剪切、复制等。
1590 1591 1592

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

1593 1594 1595 1596 1597 1598
| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| SELECT_ALL  | 0 |全选。 |
| CUT  | 3 |剪切。 |
| COPY  | 4 |复制。 |
| PASTE  | 5 |粘贴。 |
1599 1600 1601

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

N
update  
ningning 已提交
1602
光标的移动方向。
1603 1604 1605

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

1606 1607 1608 1609 1610 1611
| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |
1612 1613 1614

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

N
update  
ningning 已提交
1615
选中的文本范围。
1616 1617 1618

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

1619 1620 1621 1622
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| start  | number | 是 | 是 | 选中文本的首字符在编辑框的索引值。|
| end  | number | 是 | 是 | 选中文本的末字符在编辑框的索引值。|
1623 1624 1625

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

N
update  
ningning 已提交
1626
选中文本时,光标移动的方向
1627 1628 1629

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

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

H
Hollokin 已提交
1634
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1635

1636
下列API均需使用[on('inputStart')](#oninputstart9)获取到InputClient实例后,通过实例调用。
H
Hollokin 已提交
1637 1638 1639 1640 1641

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

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

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

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

1646
  **参数:**
H
Hollokin 已提交
1647

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

H
Hollokin 已提交
1653 1654
**错误码:**

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

1657 1658 1659
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1660

1661
 **示例:**
H
Hollokin 已提交
1662 1663

```js
1664
let action = 1;
H
Hollokin 已提交
1665
try {
1666 1667
  inputClient.sendKeyFunction(action, (err, result) => {
    if (err) {
H
Hollokin 已提交
1668
      console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1669 1670 1671
      return;
    }
    if (result) {
1672
      console.log('Succeeded in sending key function.');
1673
    } else {
1674
      console.error('Failed to sendKeyFunction.');
1675 1676
    }
  });
H
Hollokin 已提交
1677
} catch (err) {
H
Hollokin 已提交
1678
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1679 1680 1681 1682 1683
}
```

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

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

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

H
update  
Hollokin 已提交
1688
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1689 1690 1691

**参数:**

1692 1693 1694
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1695 1696 1697

**返回值:**

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

H
Hollokin 已提交
1702 1703
**错误码:**

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

1706 1707 1708
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
1709

H
Hollokin 已提交
1710 1711 1712
**示例:**

```js
1713
let action = 1;
H
Hollokin 已提交
1714
try {
1715 1716 1717 1718 1719 1720 1721 1722 1723
  inputClient.sendKeyFunction(action).then((result) => {
    if (result) {
      console.log('Succeeded in sending key function.');
    } else {
      console.error('Failed to sendKeyFunction.');
    }
  }).catch((err) => {
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
1724
} catch (err) {
H
Hollokin 已提交
1725
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1726 1727 1728 1729
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1730 1731 1732

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

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

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

1737
**参数:**
Z
zhouyongfei 已提交
1738

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

H
Hollokin 已提交
1744 1745
**错误码:**

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

1748 1749 1750 1751
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1752

1753 1754
**示例:**

H
Hollokin 已提交
1755 1756 1757
```js
let length = 1;
try {
1758 1759
  inputClient.getForward(length, (err, text) => {
    if (err) {
H
Hollokin 已提交
1760
      console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1761 1762
      return;
    }
1763
    console.log('Succeeded in getting forward, text: ' + text);
1764
  });
H
Hollokin 已提交
1765
} catch (err) {
H
Hollokin 已提交
1766
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1767 1768
}
```
Z
zhouyongfei 已提交
1769

H
Hollokin 已提交
1770
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1771 1772 1773

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

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

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

1778
**参数:**
Z
zhouyongfei 已提交
1779

1780 1781 1782
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1783

1784 1785
**返回值:**

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

H
Hollokin 已提交
1790 1791
**错误码:**

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

1794 1795 1796 1797
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1798

1799 1800
**示例:**

H
Hollokin 已提交
1801
```js
1802 1803
let length = 1;
try {
1804 1805 1806 1807 1808
  inputClient.getForward(length).then((text) => {
    console.log('Succeeded in getting forward, text: ' + text);
  }).catch((err) => {
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
  });
1809
} catch (err) {
H
Hollokin 已提交
1810
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1811 1812
}
```
Z
zhouyongfei 已提交
1813

H
Hollokin 已提交
1814
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1815 1816 1817

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

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

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

1822
**参数:**
Z
zhouyongfei 已提交
1823

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

H
Hollokin 已提交
1829 1830
**错误码:**

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

1833 1834 1835 1836
| 错误码ID | 错误信息                     |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
H
Hollokin 已提交
1837

1838 1839
**示例:**

H
Hollokin 已提交
1840 1841 1842
```js
let length = 1;
try {
1843 1844
  inputClient.getBackward(length, (err, text) => {
    if (err) {
H
Hollokin 已提交
1845
      console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
1846 1847
      return;
    }
1848
    console.log('Succeeded in getting backward, text: ' + text);
1849
  });
H
Hollokin 已提交
1850
} catch (err) {
H
Hollokin 已提交
1851
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1852 1853
}
```
Z
zhouyongfei 已提交
1854

H
Hollokin 已提交
1855
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1856 1857 1858

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

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

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

1863
**参数:**
Z
zhouyongfei 已提交
1864

1865 1866 1867
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1868

1869 1870
**返回值:**

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

H
Hollokin 已提交
1875 1876
**错误码:**

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

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

1884 1885
**示例:**

H
Hollokin 已提交
1886
```js
1887 1888
let length = 1;
try {
1889 1890 1891 1892 1893
  inputClient.getBackward(length).then((text) => {
    console.log('Succeeded in getting backward, text: ' + text);
  }).catch((err) => {
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
  });
1894
} catch (err) {
H
Hollokin 已提交
1895
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1896 1897
}
```
Z
zhouyongfei 已提交
1898

H
Hollokin 已提交
1899
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1900 1901 1902

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

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

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

1907
**参数:**
Z
zhouyongfei 已提交
1908

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

H
Hollokin 已提交
1914 1915
**错误码:**

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

1918 1919 1920 1921
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
1922

1923 1924
**示例:**

H
Hollokin 已提交
1925 1926 1927
```js
let length = 1;
try {
1928 1929
  inputClient.deleteForward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
1930
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1931 1932 1933
      return;
    }
    if (result) {
1934
      console.log('Succeeded in deleting forward.');
1935
    } else {
H
Hollokin 已提交
1936
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1937 1938
    }
  });
H
Hollokin 已提交
1939
} catch (err) {
H
Hollokin 已提交
1940
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1941 1942 1943 1944
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1945 1946 1947

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

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

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

1952
**参数:**
W
wz 已提交
1953 1954 1955 1956 1957

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

1958
**返回值:**  
1959

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

H
Hollokin 已提交
1964 1965
**错误码:**

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

1968 1969 1970 1971
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
1972

1973 1974
**示例:**

W
wz 已提交
1975
```js
1976 1977
let length = 1;
try {
1978 1979 1980 1981 1982 1983 1984 1985 1986
  inputClient.deleteForward(length).then((result) => {
    if (result) {
      console.log('Succeeded in deleting forward.');
    } else {
      console.error('Failed to delete Forward.');
    }
  }).catch((err) => {
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
  });
1987
} catch (err) {
H
Hollokin 已提交
1988
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1989
}
W
wz 已提交
1990 1991
```

H
Hollokin 已提交
1992
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1993 1994 1995

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

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

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

H
Hollokin 已提交
2000
**参数:**
Z
zhouyongfei 已提交
2001

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

H
Hollokin 已提交
2007 2008
**错误码:**

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

2011 2012 2013 2014
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2015 2016

**示例:**
2017

W
wz 已提交
2018
```js
H
Hollokin 已提交
2019 2020
let length = 1;
try {
2021 2022
  inputClient.deleteBackward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
2023
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2024 2025 2026
      return;
    }
    if (result) {
2027
      console.log('Succeeded in deleting backward.');
2028
    } else {
H
Hollokin 已提交
2029
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2030 2031
    }
  });
H
Hollokin 已提交
2032
} catch (err) {
2033
  console.error('deleteBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
2034
}
W
wz 已提交
2035
```
Z
zhouyongfei 已提交
2036

H
Hollokin 已提交
2037
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
2038 2039

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

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

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

2045
**参数:**
B
bmeangel 已提交
2046

2047 2048 2049
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
2050

2051
**返回值:** 
2052

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

H
Hollokin 已提交
2057 2058
**错误码:**

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

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

2066
**示例:**
Z
zhouyongfei 已提交
2067

W
wz 已提交
2068
```js
2069
let length = 1;
2070 2071 2072 2073 2074 2075 2076 2077 2078
inputClient.deleteBackward(length).then((result) => {
  if (result) {
    console.log('Succeeded in deleting backward.');
  } else {
    console.error('Failed to deleteBackward.');
  }
}).catch((err) => {
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
});
W
wz 已提交
2079
```
Z
zhouyongfei 已提交
2080

H
Hollokin 已提交
2081
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
2082 2083 2084

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

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

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

2089
**参数:**
Z
zhouyongfei 已提交
2090

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

H
Hollokin 已提交
2096 2097
**错误码:**

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

2100 2101 2102 2103
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2104

2105 2106
**示例:**

W
wz 已提交
2107
```js
2108
inputClient.insertText('test', (err, result) => {
2109
  if (err) {
H
Hollokin 已提交
2110
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2111 2112 2113
    return;
  }
  if (result) {
2114
    console.log('Succeeded in inserting text.');
2115
  } else {
2116
    console.error('Failed to insertText.');
2117
  }
W
wz 已提交
2118 2119
});
```
Z
zhouyongfei 已提交
2120

H
Hollokin 已提交
2121
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
2122 2123

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

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

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

2129 2130
**参数:**

2131 2132 2133
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
2134

2135
**返回值:**  
W
wz 已提交
2136

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

H
Hollokin 已提交
2141 2142
**错误码:**

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

2145 2146 2147 2148
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | input method client error. |
H
Hollokin 已提交
2149

2150
**示例:**
Z
zhouyongfei 已提交
2151

H
Hollokin 已提交
2152
```js
2153
try {
2154 2155 2156 2157 2158 2159 2160 2161 2162
  inputClient.insertText('test').then((result) => {
    if (result) {
      console.log('Succeeded in inserting text.');
    } else {
      console.error('Failed to insertText.');
    }
  }).catch((err) => {
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
  });
2163
} catch (err) {
H
Hollokin 已提交
2164
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2165 2166
}
```
W
wz 已提交
2167

H
Hollokin 已提交
2168
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2169 2170 2171

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

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

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

2176 2177
**参数:**

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

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

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

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

2190 2191
**示例:**

H
Hollokin 已提交
2192
```js
H
Hollokin 已提交
2193
inputClient.getEditorAttribute((err, editorAttribute) => {
2194
  if (err) {
H
Hollokin 已提交
2195
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2196 2197
    return;
  }
2198 2199
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2200 2201
});
```
Z
zhouyongfei 已提交
2202

H
Hollokin 已提交
2203
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2204

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

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

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

2211 2212
**返回值:**

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

H
Hollokin 已提交
2217 2218
**错误码:**

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

2221 2222 2223
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2224

2225 2226
**示例:**

H
Hollokin 已提交
2227
```js
2228 2229 2230 2231 2232 2233
inputClient.getEditorAttribute().then((editorAttribute) => {
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
2234
```
Z
zhaolinglan 已提交
2235

H
Hollokin 已提交
2236
### moveCursor<sup>9+</sup>
2237

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

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

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

H
Hollokin 已提交
2244
**参数:**
Z
zhaolinglan 已提交
2245

2246 2247 2248 2249
| 参数名    | 类型                      | 必填 | 说明           |
| --------- | ------------------------- | ---- | -------------- |
| direction | number                    | 是   | 光标移动方向。 |
| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象。    |
2250

H
Hollokin 已提交
2251 2252
**错误码:**

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

2255 2256 2257
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2258

H
Hollokin 已提交
2259
**示例:**
2260

H
Hollokin 已提交
2261
```js
H
Hollokin 已提交
2262
try {
2263 2264
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
    if (err) {
H
Hollokin 已提交
2265
      console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2266 2267
      return;
    }
2268
    console.log('Succeeded in moving cursor.');
2269
  });
H
Hollokin 已提交
2270
} catch (err) {
H
Hollokin 已提交
2271
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2272
}
2273 2274
```

H
Hollokin 已提交
2275
### moveCursor<sup>9+</sup>
2276

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

2279
移动光标。使用promise异步回调。
2280

H
update  
Hollokin 已提交
2281
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2282 2283 2284

**参数:**

H
Hollokin 已提交
2285 2286 2287
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
2288

2289
**返回值:**  
2290

2291 2292 2293
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2294

H
Hollokin 已提交
2295 2296
**错误码:**

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

2299 2300 2301
| 错误码ID | 错误信息                 |
| -------- | -------------------------- |
| 12800003 | input method client error. |
H
Hollokin 已提交
2302

2303 2304
**示例:**

H
Hollokin 已提交
2305
```js
2306
try {
2307 2308 2309 2310 2311
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
    console.log('Succeeded in moving cursor.');
  }).catch((err) => {
    console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
  });
2312
} catch (err) {
2313
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2314
}
H
Hollokin 已提交
2315
```
2316

Z
add doc  
zhaolinglan 已提交
2317 2318 2319 2320
### selectByRange<sup>10+</sup>

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

2321
根据索引范围选中文本。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2322 2323 2324 2325 2326

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

**参数:**

2327 2328 2329 2330
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| range    | [Range](#range10) | 是   | 选中文本的范围。                                             |
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2331 2332 2333 2334 2335

**错误码:**

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

2336 2337 2338 2339
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2340 2341 2342 2343 2344

**示例:**

```js
try {
2345
  inputClient.selectByRange({start: 0, end: 1}, (err) => {
2346
    if (err) {
H
Hollokin 已提交
2347
      console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2348 2349
      return;
    }
2350
    console.log('Succeeded in selecting by range.');
2351
  });
Z
add doc  
zhaolinglan 已提交
2352
} catch (err) {
H
Hollokin 已提交
2353
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2354 2355 2356 2357 2358 2359 2360
}
```

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

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

2361
根据索引范围选中文本。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2362 2363 2364 2365 2366

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

**参数:**

2367 2368
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
2369
| range  | [Range](#range10) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2370 2371 2372

**返回值:**

2373 2374 2375
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
add doc  
zhaolinglan 已提交
2376 2377 2378 2379 2380

**错误码:**

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

2381 2382 2383 2384
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2385 2386 2387 2388 2389

**示例:**

```js
try {
2390 2391 2392 2393 2394
  inputClient.selectByRange({start: 0, end:1}).then(() => {
    console.log('Succeeded in selecting by range.');
  }).catch((err) => {
    console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
  });
Z
add doc  
zhaolinglan 已提交
2395
} catch (err) {
2396
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2397 2398 2399 2400 2401 2402 2403
}
```

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

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

2404
根据光标移动方向选中文本。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2405 2406 2407 2408 2409

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

**参数:**

2410 2411 2412 2413
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
| movement | [Movement](#movement10)   | 是   | 选中时光标移动的方向。  |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2414 2415 2416 2417 2418

**错误码:**

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

2419 2420 2421 2422
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2423 2424 2425 2426 2427

**示例:**

```js
try {
2428
  inputClient.selectByMovement({direction: 1}, (err) => {
2429
    if (err) {
H
Hollokin 已提交
2430
      console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2431 2432
      return;
    }
2433
    console.log('Succeeded in selecting by movement.');
2434
  });
Z
add doc  
zhaolinglan 已提交
2435
} catch (err) {
H
Hollokin 已提交
2436
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2437 2438 2439 2440 2441
}
```

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

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

2444
根据索引范围选中文本。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2445 2446 2447 2448 2449

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

**参数:**

2450 2451
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2452
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2453 2454 2455

**返回值:**

2456 2457 2458
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
add doc  
zhaolinglan 已提交
2459 2460 2461 2462 2463

**错误码:**

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

2464 2465 2466 2467
| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2468 2469 2470 2471 2472

**示例:**

```js
try {
2473 2474 2475 2476 2477
  inputClient.selectByMovement({direction: 1}).then(() => {
    console.log('Succeeded in selecting by movement.');
  }).catch((err) => {
    console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
  });
Z
add doc  
zhaolinglan 已提交
2478
} catch (err) {
2479
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2480 2481 2482
}
```

Z
add doc  
zhaolinglan 已提交
2483 2484 2485 2486
### getTextIndexAtCursor<sup>10+</sup>

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

2487
获取光标所在处的文本索引。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2488 2489 2490 2491 2492

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

**参数:**

2493 2494 2495
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2496 2497 2498 2499 2500

**错误码:**

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

2501 2502 2503 2504
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
Z
add doc  
zhaolinglan 已提交
2505 2506 2507 2508 2509

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
2510
  if (err) {
H
Hollokin 已提交
2511
    console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
2512 2513
    return;
  }
2514
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2515 2516 2517 2518 2519 2520 2521
});
```

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

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

2522
获取光标所在处的文本索引。使用promise异步回调。
Z
add doc  
zhaolinglan 已提交
2523 2524 2525 2526 2527

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

**返回值:**

2528 2529 2530
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2531 2532 2533 2534 2535

**错误码:**

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

2536 2537 2538 2539
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
Z
add doc  
zhaolinglan 已提交
2540 2541 2542 2543

**示例:**

```js
2544 2545 2546 2547 2548
inputClient.getTextIndexAtCursor().then((index) => {
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
}).catch((err) => {
  console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
});
Z
add doc  
zhaolinglan 已提交
2549 2550
```

2551 2552 2553 2554
### sendExtendAction<sup>10+</sup>

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

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

N
update  
ningning 已提交
2557 2558 2559
> **说明**
>
> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2560 2561 2562 2563 2564

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

**参数:**

2565 2566 2567 2568
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| action | [ExtendAction](#extendaction10) | 是   | 要发送的扩展操作。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。发送成功,err为undefined,否则为错误对象。 |
2569 2570 2571 2572 2573

**错误码:**

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

2574 2575 2576 2577
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
2578 2579 2580 2581 2582

**示例:**

```js
try {
2583 2584 2585 2586 2587
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err) => {
    if (err) {
      console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
      return;
    }
2588
    console.log('Succeeded in sending extend action.');
2589
  });
2590
} catch(err) {
H
Hollokin 已提交
2591
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2592 2593 2594 2595 2596 2597 2598
}
```

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

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

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

2601
>**说明**
N
update  
ningning 已提交
2602 2603
>
> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2604 2605 2606 2607 2608

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

**参数:**

2609 2610 2611
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
2612 2613 2614

**返回值:**

2615 2616 2617
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2618 2619 2620 2621 2622

**错误码:**

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

2623 2624 2625 2626
| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 12800003 | input method client error.     |
| 12800006 | Input method controller error. |
2627 2628 2629 2630 2631

**示例:**

```js
try {
2632 2633 2634 2635 2636 2637
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
    console.log('Succeeded in sending extend action.');
  }).catch((err) => {
    console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
  });
} catch(err) {
H
Hollokin 已提交
2638
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2639 2640 2641
}
```

H
Hollokin 已提交
2642
## EditorAttribute
2643

H
Hollokin 已提交
2644
编辑框属性值。
2645

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

2648 2649 2650 2651
| 名称         | 类型 | 可读 | 可写 | 说明               |
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |
H
Hollokin 已提交
2652

H
Hollokin 已提交
2653
## KeyEvent
H
Hollokin 已提交
2654 2655 2656

按键属性值。

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

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

H
update  
Hollokin 已提交
2664
## PanelFlag<sup>10+</sup>
2665 2666 2667 2668 2669

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

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

2670 2671 2672 2673
| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| FLG_FIXED  | 0 | 固定态面板类型。 |
| FLG_FLOATING | 1 | 悬浮态面板类型。 |
2674

H
update  
Hollokin 已提交
2675
## PanelType<sup>10+</sup>
2676 2677 2678 2679 2680

输入法面板类型枚举。

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

2681 2682 2683 2684
| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| SOFT_KEYBOARD | 0 | 软键盘类型。 |
| STATUS_BAR   | 1 | 状态栏类型。 |
2685

H
update  
Hollokin 已提交
2686
## PanelInfo<sup>10+</sup>
2687

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

2690 2691
输入法面板属性。

2692 2693 2694 2695
| 名称      | 类型 | 可读 | 可写 | 说明         |
| --------- | -------- | ---- | ---- | ------------ |
| type   	| number   | 是   | 是   | 面板的类型。 |
| flag	    | number   | 是   | 是   | 面板的状态类型。 |
2696

H
Hollokin 已提交
2697 2698
## TextInputClient<sup>(deprecated)</sup>

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

2703
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
2704 2705 2706 2707 2708

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

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

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

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

H
update  
Hollokin 已提交
2715
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2716 2717 2718

**参数:**

2719 2720 2721 2722
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
2723 2724 2725

**示例:**

H
Hollokin 已提交
2726 2727
```js
let length = 1;
H
Hollokin 已提交
2728
textInputClient.getForward(length, (err, text) => {
2729
  if (err) {
H
Hollokin 已提交
2730
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
2731 2732
    return;
  }
2733
  console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
2734 2735
});
```
2736

H
Hollokin 已提交
2737
### getForward<sup>(deprecated)</sup>
2738 2739 2740

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

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

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

H
update  
Hollokin 已提交
2747
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2748 2749 2750

**参数:**

2751 2752 2753
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
2754 2755 2756

**返回值:**

2757 2758 2759
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
2760 2761 2762

**示例:**

H
Hollokin 已提交
2763
```js
2764
let length = 1;
2765 2766 2767 2768 2769
textInputClient.getForward(length).then((text) => {
  console.log('Succeeded in getting forward, text: ' + text);
}).catch((err) => {
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
2770
```
2771

H
Hollokin 已提交
2772
### getBackward<sup>(deprecated)</sup>
2773 2774 2775

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

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

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

H
update  
Hollokin 已提交
2782
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2783 2784 2785

**参数:**

2786 2787 2788 2789
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
2790 2791 2792

**示例:**

H
Hollokin 已提交
2793 2794
```js
let length = 1;
H
Hollokin 已提交
2795
textInputClient.getBackward(length, (err, text) => {
2796
  if (err) {
H
Hollokin 已提交
2797
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2798 2799
    return;
  }
2800
  console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
2801 2802
});
```
2803

H
Hollokin 已提交
2804
### getBackward<sup>(deprecated)</sup>
2805 2806 2807

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

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

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

H
update  
Hollokin 已提交
2814
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2815 2816 2817

**参数:**

2818 2819 2820
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
2821 2822 2823

**返回值:**

2824 2825 2826
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
2827 2828 2829

**示例:**

H
Hollokin 已提交
2830
```js
2831
let length = 1;
2832 2833 2834 2835 2836
textInputClient.getBackward(length).then((text) => {
  console.log('Succeeded in getting backward: ' + JSON.stringify(text));
}).catch((err) => {
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
2837
```
2838

H
Hollokin 已提交
2839
### deleteForward<sup>(deprecated)</sup>
2840 2841 2842

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

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

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

H
update  
Hollokin 已提交
2849
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2850 2851 2852

**参数:**

2853 2854 2855 2856
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
2857 2858 2859

**示例:**

H
Hollokin 已提交
2860 2861
```js
let length = 1;
H
Hollokin 已提交
2862
textInputClient.deleteForward(length, (err, result) => {
2863
  if (err) {
H
Hollokin 已提交
2864
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2865 2866 2867
    return;
  }
  if (result) {
2868
    console.log('Succeeded in deleting forward.');
2869
  } else {
2870
    console.error('Failed to deleteForward.');
2871
  }
H
Hollokin 已提交
2872 2873
});
```
H
Hollokin 已提交
2874

H
Hollokin 已提交
2875
### deleteForward<sup>(deprecated)</sup>
2876 2877 2878

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

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

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

H
update  
Hollokin 已提交
2885
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2886 2887 2888 2889 2890 2891 2892

**参数:**

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

2893
**返回值:**  
2894

2895 2896 2897
| 类型                   | 说明           |
| ---------------------- | -------------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
2898 2899 2900 2901

**示例:**

```js
2902
let length = 1;
2903 2904 2905 2906 2907 2908 2909 2910 2911
textInputClient.deleteForward(length).then((result) => {
  if (result) {
    console.log('Succeeded in deleting forward.');
  } else {
    console.error('Failed to delete forward.');
  }
}).catch((err) => {
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
});
2912 2913
```

H
Hollokin 已提交
2914
### deleteBackward<sup>(deprecated)</sup>
2915 2916 2917

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

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

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

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

2926
**参数:**
2927

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

2933
**示例:**
2934 2935

```js
H
Hollokin 已提交
2936
let length = 1;
H
Hollokin 已提交
2937
textInputClient.deleteBackward(length, (err, result) => {
2938
  if (err) {
H
Hollokin 已提交
2939
    console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2940 2941 2942
    return;
  }
  if (result) {
2943
    console.log('Succeeded in deleting backward.');
2944
  } else {
2945
    console.error('Failed to deleteBackward.');
2946
  }
H
Hollokin 已提交
2947
});
2948 2949
```

H
Hollokin 已提交
2950
### deleteBackward<sup>(deprecated)</sup>
2951 2952 2953

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

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

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

H
update  
Hollokin 已提交
2960
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2961 2962 2963

**参数:**

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

2968
**返回值:** 
2969

2970 2971 2972
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
2973 2974 2975 2976

**示例:**

```js
2977
let length = 1;
2978 2979 2980 2981 2982 2983 2984 2985 2986
textInputClient.deleteBackward(length).then((result) => {
  if (result) {
    console.log('Succeeded in deleting backward.');
  } else {
    console.error('Failed to deleteBackward.');
  }
}).catch((err) => {
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
});
2987
```
H
Hollokin 已提交
2988
### sendKeyFunction<sup>(deprecated)</sup>
2989

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

2992
发送功能键。使用callback异步回调。
2993

H
update  
Hollokin 已提交
2994 2995
> **说明:**
>
2996
> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
2997

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

3000
**参数:**
3001

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

3007
**示例:**
3008 3009

```js
3010
let action = 1;
H
Hollokin 已提交
3011
textInputClient.sendKeyFunction(action, (err, result) => {
3012
  if (err) {
H
Hollokin 已提交
3013
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
3014 3015 3016
    return;
  }
  if (result) {
3017
    console.log('Succeeded in sending key function.');
3018
  } else {
3019
    console.error('Failed to sendKeyFunction.');
3020
  }
3021 3022 3023
});
```

H
Hollokin 已提交
3024
### sendKeyFunction<sup>(deprecated)</sup>
3025

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

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

H
update  
Hollokin 已提交
3030 3031
> **说明:**
>
3032
> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
3033

H
update  
Hollokin 已提交
3034
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3035 3036 3037

**参数:**

3038 3039 3040
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
3041

H
Hollokin 已提交
3042
**返回值:**
3043

3044 3045 3046
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
3047 3048 3049

**示例:**

H
Hollokin 已提交
3050
```js
3051
let action = 1;
3052 3053 3054 3055 3056 3057 3058 3059 3060
textInputClient.sendKeyFunction(action).then((result) => {
  if (result) {
    console.log('Succeeded in sending key function.');
  } else {
    console.error('Failed to sendKeyFunction.');
  }
}).catch((err) => {
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
});
H
Hollokin 已提交
3061
```
3062

H
Hollokin 已提交
3063
### insertText<sup>(deprecated)</sup>
3064

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

3067
插入文本。使用callback异步回调。
H
Hollokin 已提交
3068

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

H
update  
Hollokin 已提交
3073
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3074 3075 3076

**参数:**

3077 3078 3079 3080
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
3081 3082 3083

**示例:**

H
Hollokin 已提交
3084
```js
3085
textInputClient.insertText('test', (err, result) => {
3086
  if (err) {
H
Hollokin 已提交
3087
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
3088 3089 3090
    return;
  }
  if (result) {
3091
    console.log('Succeeded in inserting text.');
3092
  } else {
3093
    console.error('Failed to insertText.');
3094
  }
H
Hollokin 已提交
3095 3096
});
```
3097

H
Hollokin 已提交
3098
### insertText<sup>(deprecated)</sup>
3099

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

3102
插入文本。使用promise异步回调。
3103

H
update  
Hollokin 已提交
3104 3105
> **说明:**
>
3106
> 从API version 8开始支持,API version 9开始废弃,建议使用[insertText](#inserttext9)替代。
3107

H
update  
Hollokin 已提交
3108
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3109 3110 3111

**参数:**

3112 3113 3114
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
3115

3116
**返回值:**  
H
Hollokin 已提交
3117

3118 3119 3120
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
3121 3122 3123 3124

**示例:**

```js
3125 3126 3127 3128 3129 3130 3131 3132 3133
textInputClient.insertText('test').then((result) => {
  if (result) {
    console.log('Succeeded in inserting text.');
  } else {
    console.error('Failed to insertText.');
  }
}).catch((err) => {
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
});
Z
zhaolinglan 已提交
3134 3135
```

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

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

3140
获取编辑框属性值。使用callback异步回调。
H
Hollokin 已提交
3141

H
update  
Hollokin 已提交
3142 3143
> **说明:**
>
3144
> 从API version 8开始支持,API version 9开始废弃,建议使用[getEditorAttribute](#geteditorattribute9)替代。
Z
zhaolinglan 已提交
3145

H
update  
Hollokin 已提交
3146
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
3147 3148 3149

**参数:**

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

**示例:**

H
Hollokin 已提交
3156
```js
H
Hollokin 已提交
3157
textInputClient.getEditorAttribute((err, editorAttribute) => {
3158
  if (err) {
H
Hollokin 已提交
3159
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3160 3161
    return;
  }
3162 3163
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
3164 3165
});
```
Z
zhaolinglan 已提交
3166

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

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

3171
获取编辑框属性值。使用promise异步回调。
Z
刷新  
zhouyongfei 已提交
3172

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

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

H
Hollokin 已提交
3179
**返回值:**
Z
zhouyongfei 已提交
3180

3181 3182 3183
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
刷新  
zhouyongfei 已提交
3184

H
Hollokin 已提交
3185
**示例:**
Z
zhouyongfei 已提交
3186

H
Hollokin 已提交
3187
```js
3188 3189 3190 3191 3192 3193
textInputClient.getEditorAttribute().then((editorAttribute) => {
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
});
3194
```
3195
<!--no_check-->