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

Z
zhaolinglan 已提交
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
| 名称 | 类型 | 值 | 说明 |
H
Hollokin 已提交
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 53 54 55
| -------- | -------- | -------- | -------- |
| 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 | 光标右移。 |
| 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

H
Hollokin 已提交
59 60 61
为输入法应用获取输入法应用客户端实例[InputMethodAbility](#inputmethodability)
该接口仅限于输入法应用调用。
输入法应用获取该实例可订阅软键盘显示/隐藏请求事件、创建/销毁输入法应用面板等。
Z
zhouyongfei 已提交
62

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

65
**返回值:**
Z
zhouyongfei 已提交
66

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

71
**示例:**
Z
zhouyongfei 已提交
72

H
Hollokin 已提交
73
```js
74
let InputMethodAbility = inputMethodEngine.getInputMethodAbility();
H
Hollokin 已提交
75
```
Z
zhouyongfei 已提交
76

H
Hollokin 已提交
77
## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
78

H
Hollokin 已提交
79
getKeyboardDelegate(): KeyboardDelegate
80

Z
zhaolinglan 已提交
81
为输入法应用获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。输入法应用获取该实例可订阅物理键盘按键事件、选中文本变化事件等。
82

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
93
```js
94
let KeyboardDelegate = inputMethodEngine.getKeyboardDelegate();
H
Hollokin 已提交
95
```
96

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

H
Hollokin 已提交
99
getInputMethodEngine(): InputMethodEngine
Z
zhouyongfei 已提交
100

101
为输入法应用获取输入法应用客户端实例[InputMethodEngine](#inputmethodengine-1)。输入法应用获取该实例可订阅软键盘显示/隐藏请求事件等。
Z
zhouyongfei 已提交
102

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

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

109
**返回值:**
Z
zhouyongfei 已提交
110

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

115
**示例:**
Z
zhouyongfei 已提交
116

H
Hollokin 已提交
117 118 119
```js
let InputMethodEngine = inputMethodEngine.getInputMethodEngine();
```
Z
zhouyongfei 已提交
120

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

H
Hollokin 已提交
123
createKeyboardDelegate(): KeyboardDelegate
124

Z
zhaolinglan 已提交
125
为输入法应用获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。输入法应用获取该实例可订阅物理键盘按键事件、选中文本变化事件等。
126

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

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
141
```js
H
Hollokin 已提交
142
let keyboardDelegate = inputMethodEngine.createKeyboardDelegate();
H
Hollokin 已提交
143
```
144

H
Hollokin 已提交
145
## InputMethodEngine
Z
zhouyongfei 已提交
146

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

H
Hollokin 已提交
149
### on('inputStart')
Z
zhouyongfei 已提交
150

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

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

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

157
**参数:**
Z
zhouyongfei 已提交
158 159 160

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

164
**示例:**
Z
zhouyongfei 已提交
165

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

### off('inputStart')

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

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

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

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

W
wz 已提交
183 184
| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
185
| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
186
| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 否 | 回调函数,返回取消订阅的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
187

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H
Hollokin 已提交
244
## InputMethodAbility
245

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

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

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

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

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
260 261
| type     | string                        | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 是 | 回调函数,返回输入法操作相关实例。 |
262 263 264

**示例:**

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

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

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

H
Hollokin 已提交
276
取消订阅输入法绑定成功事件。使用callback异步回调。
277

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

**参数:**

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
284 285
| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 否 | 回调函数,返回输入法操作相关实例。 |
286 287 288

**示例:**

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

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

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

H
Hollokin 已提交
297
订阅停止输入法应用事件。使用callback异步回调。
298

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

**参数:**

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

**示例:**

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

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

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

H
Hollokin 已提交
320
取消订阅停止输入法应用事件。使用callback异步回调。
321

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

**参数:**

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

**示例:**

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

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

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

H
Hollokin 已提交
343
订阅设置调用窗口事件。使用callback异步回调。
344

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
351 352
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
| callback | (wid: number) => void | 是   | 回调函数,返回调用方window id。                                            |
353 354 355

**示例:**

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

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

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

H
Hollokin 已提交
366
取消订阅设置调用窗口事件。使用callback异步回调。
367

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
374
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
375
| callback | (wid:number) => void | 是   | 回调函数,返回调用方window id。                                 |
376 377 378

**示例:**

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

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

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

H
Hollokin 已提交
389
订阅输入法事件。使用callback异步回调。
390

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
397
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅显示键盘事件。<br/>-&nbsp;type为'keyboardHide',表示订阅隐藏键盘事件。 |
398
| callback | () => void   | 是   | 回调函数。                                                   |
399 400 401

**示例:**

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

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

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

H
Hollokin 已提交
415
取消订阅输入法事件。使用callback异步回调。
416

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
423 424
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示取消订阅显示键盘事件。<br/>-&nbsp;type为'keyboardHide',表示取消订阅隐藏键盘事件。 |
| callback | () => void   | 否   | 回调函数。     |
425 426 427

**示例:**

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

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

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

H
Hollokin 已提交
441
订阅设置输入法子类型事件。使用callback异步回调。
442

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

**参数:**

H
update  
Hollokin 已提交
447 448 449
| 参数名    | 类型 | 必填  | 说明 |
| -------- | --- | ---- | --- |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示订阅输入法子类型的设置事件。 |
450
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 是   | 回调函数,返回设置的输入法子类型。                           |
451 452 453

**示例:**

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

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

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

H
Hollokin 已提交
464
取消订阅输入法子类型事件。使用callback异步回调。
465

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

**参数:**

H
update  
Hollokin 已提交
470 471 472
| 参数名   | 类型  | 必填 | 说明   |
| ------- | ----- | ---- | ---- |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示取消订阅输入法子类型的设置事件。 |
473
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 否   | 回调函数,返回设置的输入法子类型。  |
474 475 476

**示例:**

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

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

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

H
换行  
Hollokin 已提交
487 488 489
创建输入法应用面板。使用callback异步回调。

仅支持输入法应用调用。单个输入法应用仅仅允许创建一个SOFT_KEYBOARD及一个STATUS_BAR类型的面板。
490 491 492 493 494 495 496

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

**参数:**

| 参数名   | 类型        | 必填 | 说明                     |
| ------- | ----------- | ---- | ------------------------ |
H
update  
Hollokin 已提交
497
| ctx     | [BaseContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
H
update  
Hollokin 已提交
498 499
| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法面板信息。 |
| callback | AsyncCallback\<[Panel](#panel10)> | 是   | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
500 501 502 503 504 505 506 507 508 509 510

**错误码:**

| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
| 12800004   | not an input method extension |

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
H
update  
Hollokin 已提交
511
  panelType: SOFT_KEYBOARD,
512 513 514 515
  panelFlag: FLG_FIXED
}
try {
  inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo, (err, panel) => {
516
    if (err) {
517
      console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
518 519 520 521 522
      return;
    }
    console.log('Succeed in creating panel.');
  })
} catch(err) {
523
  console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
524 525 526 527 528
}
```

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

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

H
换行  
Hollokin 已提交
531 532 533
创建输入法应用面板。使用promise异步回调。

仅支持输入法应用调用。单个输入法应用仅仅允许创建一个SOFT_KEYBOARD及一个STATUS_BAR类型的面板。
534 535 536 537 538 539 540

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

**参数:**

| 参数名   | 类型        | 必填 | 说明                     |
| ------- | ----------- | ---- | ------------------------ |
H
update  
Hollokin 已提交
541
| ctx     | [BaseContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
H
update  
Hollokin 已提交
542
| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法面板信息。 |
543 544 545 546

**返回值:**
| 类型   | 说明                                                                 |
| ------- | ------------------------------------------------------------------ |
H
update  
Hollokin 已提交
547
| Promise\<[Panel](#panel10)> | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
548 549 550 551 552 553 554 555 556 557 558

**错误码:**

| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
| 12800004   | not an input method extension |

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
H
update  
Hollokin 已提交
559
  panelType: SOFT_KEYBOARD,
560 561 562 563 564
  panelFlag: FLG_FIXED
}
inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo).then((panel) => {
  console.log('Succeed in creating panel.');
}).catch((err) => {
565
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
566 567 568 569 570
})
```

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

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

H
update  
Hollokin 已提交
573
销毁输入法应用面板。使用callback异步回调。
574 575 576 577 578 579 580

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

**参数:**

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

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
H
update  
Hollokin 已提交
588
  panelType: SOFT_KEYBOARD,
589 590 591 592
  panelFlag: FLG_FIXED
}
try {
  inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo, (err, panel) => {
593
    if (err) {
594
      console.error(`Failed to create panel: ${JSON.stringify(err)}`);
595 596 597 598 599 600
      return;
    }
	globalThis.inputMethodPanel = panel;
    console.log('Succeed in creating panel.');
  })
} catch(err) {
601
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
602 603 604
}

try {
605
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel, (err) => {
606
    if(err !== undefined) {
607
      console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
608 609 610 611 612
      return;
    }
    console.log('Succeed in destroying panel.');
  })
} catch(err) {
613
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
614 615 616 617 618
}
```

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

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

H
update  
Hollokin 已提交
621
销毁输入法应用面板。使用promise异步回调。
622 623 624 625 626 627 628

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

**参数:**

| 参数名   | 类型        | 必填 | 说明                     |
| ---------| ----------- | ---- | ------------------------ |
H
update  
Hollokin 已提交
629
| panel    | [Panel](#panel10)       | 是   | 要销毁的panel对象。      |
630 631 632 633 634 635 636 637 638 639

**返回值:**
| 类型    | 说明                                                                 |
| ------- | -------------------------------------------------------------------- |
| Promise\<void> | 无返回结果的Promise对象。|

**示例:**

```js
let panelInfo: inputMethodEngine.PanelInfo = {
H
update  
Hollokin 已提交
640
  panelType: SOFT_KEYBOARD,
641 642 643 644
  panelFlag: FLG_FIXED
}
try {
  inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo, (err, panel) => {
645
    if (err) {
646
      console.error(`Failed to create panel: ${JSON.stringify(err)}`);
647 648 649 650 651 652
      return;
    }
	globalThis.inputMethodPanel = panel;
    console.log('Succeed in creating panel.');
  })
} catch(err) {
653
  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
654 655 656
}

try {
657
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel).then(() => {
658 659
    console.log('Succeed in destroying panel.');
  }).catch((err) => {
660
    console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
661 662
  });
} catch (err) {
663
  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
664 665 666
}
```

H
Hollokin 已提交
667
## KeyboardDelegate
Z
zhouyongfei 已提交
668

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

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

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

H
Hollokin 已提交
675
订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhouyongfei 已提交
676

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

679
**参数:**
Z
zhouyongfei 已提交
680

W
wz 已提交
681 682
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
683
| type   | string         | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示订阅硬键盘抬起事件。 |
684
| callback | (event: [KeyEvent](#keyevent)) => boolean | 是 | 回调函数,返回按键信息。 |
Z
zhouyongfei 已提交
685

686
**示例:**
Z
zhouyongfei 已提交
687

H
Hollokin 已提交
688 689
```js
inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent) => {
690 691 692
  console.info('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
  console.info('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
  return true;
H
Hollokin 已提交
693 694
});
inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent) => {
695 696 697
  console.info('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
  console.info('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
  return true;
H
Hollokin 已提交
698 699
});
```
Z
zhouyongfei 已提交
700 701 702

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

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

H
Hollokin 已提交
705
取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhouyongfei 已提交
706

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

709
**参数:**
Z
zhouyongfei 已提交
710

H
update  
Hollokin 已提交
711 712 713
| 参数名    | 类型     | 必填  | 说明  |
| -------- | ------- | ---- | ----- |
| type     | string  | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示取消订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示取消订阅硬键盘抬起事件。 |
714
| callback | (event: [KeyEvent](#keyevent)) => boolean | 否   | 回调函数,返回按键信息。  |
Z
zhouyongfei 已提交
715

716
**示例:**
Z
zhouyongfei 已提交
717

H
Hollokin 已提交
718 719
```js
inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent) => {
720 721
  console.log('delete keyUp notification.');
  return true;
H
Hollokin 已提交
722 723
});
inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent) => {
724 725
  console.log('delete keyDown notification.');
  return true;
H
Hollokin 已提交
726 727
});
```
Z
zhouyongfei 已提交
728 729 730

### on('cursorContextChange')

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

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

735
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
736

737
**参数:**
Z
zhouyongfei 已提交
738

H
update  
Hollokin 已提交
739 740 741
| 参数名    | 类型  | 必填  | 说明  |
| -------- | ---- | ---- | ----- |
| type     | string | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示订阅光标变化事件。 |
742
| callback | (x: number, y: number, height: number) => void | 是   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。 |
Z
zhouyongfei 已提交
743

744
**示例:**
W
wz 已提交
745 746

```js
H
Hollokin 已提交
747
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
748 749 750
  console.log('inputMethodEngine cursorContextChange x:' + x);
  console.log('inputMethodEngine cursorContextChange y:' + y);
  console.log('inputMethodEngine cursorContextChange height:' + height);
W
wz 已提交
751 752
});
```
Z
zhouyongfei 已提交
753 754 755

### off('cursorContextChange')

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

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

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

762
  **参数:**
Z
zhouyongfei 已提交
763

H
update  
Hollokin 已提交
764 765 766
| 参数名    | 类型  | 必填  | 说明   |
| -------- | ---- | ---- | ------ |
| type     | string  | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示光标变化。 |
767
| callback | (x: number, y:number, height:number) => void | 否   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。<br/> |
Z
zhouyongfei 已提交
768 769


770
  **示例:**
Z
zhouyongfei 已提交
771

W
wz 已提交
772
```js
H
Hollokin 已提交
773
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
774
  console.log('delete cursorContextChange notification.');
775
});
W
wz 已提交
776
```
Z
zhouyongfei 已提交
777 778
### on('selectionChange')

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

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

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

H
Hollokin 已提交
785
**参数:**
Z
zhouyongfei 已提交
786

H
update  
Hollokin 已提交
787 788 789
| 参数名    | 类型   | 必填 | 说明   |
| -------- | ----- | ---- | ---- |
| type     | string  | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
790
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 是   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。 |
Z
zhouyongfei 已提交
791

H
Hollokin 已提交
792
**示例:**
W
wz 已提交
793 794

```js
H
Hollokin 已提交
795
inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
796 797 798 799
  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 已提交
800 801
});
```
Z
zhouyongfei 已提交
802 803 804

### off('selectionChange')

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

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

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

811
**参数:**
Z
zhouyongfei 已提交
812

H
update  
Hollokin 已提交
813 814 815
| 参数名   | 类型  | 必填 | 说明     |
| -------- | ------- | ---- | ------- |
| type     | string  | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
816
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 否   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。<br/> |
Z
zhouyongfei 已提交
817

818
**示例:**
Z
zhouyongfei 已提交
819

W
wz 已提交
820
```js
H
Hollokin 已提交
821
inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
822
  console.log('delete selectionChange notification.');
823
});
W
wz 已提交
824
```
Z
zhouyongfei 已提交
825 826 827 828


### on('textChange')

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

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

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

H
Hollokin 已提交
835
**参数:**
Z
zhouyongfei 已提交
836

W
wz 已提交
837 838
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
839
| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示订阅文本变化事件。 |
840
| callback | (text: string) => void | 是   | 回调函数,返回订阅的文本内容。|
Z
zhouyongfei 已提交
841

H
Hollokin 已提交
842
**示例:**
Z
zhouyongfei 已提交
843

W
wz 已提交
844
```js
H
Hollokin 已提交
845
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
846
  console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
847 848
});
```
Z
zhouyongfei 已提交
849 850 851

### off('textChange')

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

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

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

858
**参数:**
Z
zhouyongfei 已提交
859

W
wz 已提交
860 861
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
862 863
| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示取消订阅文本变化事件。 |
| callback | (text: string) => void | 否   | 回调函数,返回取消订阅的文本内容。 |
Z
zhouyongfei 已提交
864

865
**示例:**
Z
zhouyongfei 已提交
866

W
wz 已提交
867
```js
H
Hollokin 已提交
868
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
869
  console.log('delete textChange notification. text:' + text);
870
});
W
wz 已提交
871
```
Z
zhouyongfei 已提交
872

H
update  
Hollokin 已提交
873
## Panel<sup>10+</sup>
874

H
update  
Hollokin 已提交
875
下列API示例中都需使用[createPanel](#createpanel10)回调获取到Panel实例,再通过此实例调用对应方法。
876 877 878

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

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

H
update  
Hollokin 已提交
881
为当前面板加载具体页面内容,使用callback异步回调。
882 883 884 885 886 887 888 889

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
H
update  
Hollokin 已提交
890
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
891 892 893 894 895 896

**示例:**

```js
try {
  panel.setUiContent('pages/page2/page2', (err) => {
H
update  
Hollokin 已提交
897
    if (err) {
H
Hollokin 已提交
898
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
899 900 901 902
      return;
    }
    console.info('Succeeded in setting the content.');
  });
H
Hollokin 已提交
903 904
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
905 906 907 908 909
}
```

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

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

H
update  
Hollokin 已提交
912
为当前面板加载具体页面内容,使用Promise异步回调。
913 914 915 916 917 918 919 920 921 922 923 924 925

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
926
| Promise\<void> | 无返回结果的Promise对象。  |
927 928 929 930 931 932

**示例:**

```js
try {
  let promise = panel.setUiContent('pages/page2/page2');
H
update  
Hollokin 已提交
933
  promise.then(() => {
934
    console.info('Succeeded in setting the content.');
H
update  
Hollokin 已提交
935
  }).catch((err) =>{
H
Hollokin 已提交
936
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
937
  });
H
Hollokin 已提交
938 939
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
940 941 942 943 944
}
```

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

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

H
update  
Hollokin 已提交
947
为当前面板加载与LocalStorage相关联的具体页面内容,使用callback异步回调。
948 949 950 951 952 953 954 955

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
H
update  
Hollokin 已提交
956
| storage | [LocalStorage](../../quick-start/arkts-state-mgmt-application-level.md#localstorage) | 是   | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。|
H
update  
Hollokin 已提交
957
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
958 959 960 961 962 963 964 965

**示例:**

```js
let storage = new LocalStorage();
storage.setOrCreate('storageSimpleProp',121);
try {
  panel.setUiContent('pages/page2/page2', storage, (err) => {
H
update  
Hollokin 已提交
966
    if (err) {
H
Hollokin 已提交
967
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
968 969 970 971
      return;
    }
    console.info('Succeeded in setting the content.');
  });
H
Hollokin 已提交
972 973
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
974 975 976 977 978
}
```

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

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

H
update  
Hollokin 已提交
981
为当前面板加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。
982 983 984 985 986 987 988 989

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
H
update  
Hollokin 已提交
990
| storage | [LocalStorage](../../quick-start/arkts-state-mgmt-application-level.md#localstorage) | 是   | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。|
991 992 993 994 995

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
996
| Promise\<void> | 无返回结果的Promise对象。  |
997 998 999 1000 1001 1002 1003 1004

**示例:**

```js
let storage = new LocalStorage();
storage.setOrCreate('storageSimpleProp',121);
try {
  let promise = panel.setUiContent('pages/page2/page2');
H
update  
Hollokin 已提交
1005
  promise.then(() => {
1006
    console.info('Succeeded in setting the content.');
H
update  
Hollokin 已提交
1007
  }).catch((err) =>{
H
Hollokin 已提交
1008
    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1009
  });
H
Hollokin 已提交
1010 1011
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1012 1013 1014 1015 1016
}
```

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

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

H
update  
Hollokin 已提交
1019
改变当前面板大小,使用callback异步回调。
1020

H
update  
Hollokin 已提交
1021
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1022 1023 1024 1025 1026 1027 1028

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1029 1030 1031
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板大小改变成功,err为undefined,否则err为错误对象。 |
1032 1033 1034 1035 1036 1037

**示例:**

```js
try {
  panel.resize(500, 1000, (err) => {
H
update  
Hollokin 已提交
1038
    if (err) {
H
Hollokin 已提交
1039
      console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1040 1041 1042 1043
      return;
    }
    console.info('Succeeded in changing the panel size.');
  });
H
Hollokin 已提交
1044 1045
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1046 1047 1048 1049 1050
}
```

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

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

H
update  
Hollokin 已提交
1053
改变当前面板大小,使用Promise异步回调。
H
换行  
Hollokin 已提交
1054

H
update  
Hollokin 已提交
1055
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1056 1057 1058 1059 1060 1061 1062

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1063 1064
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise<void> | 无返回结果的Promise对象。  |

**示例:**

```js
try {
  let promise = panel.resize(500, 1000);
H
update  
Hollokin 已提交
1077
  promise.then(() => {
1078
    console.info('Succeeded in changing the panel size.');
H
update  
Hollokin 已提交
1079
  }).catch((err) =>{
H
Hollokin 已提交
1080
    console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1081
  });
H
Hollokin 已提交
1082 1083
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1084 1085 1086 1087 1088
}
```

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

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

H
update  
Hollokin 已提交
1091
移动面板位置,使用callback异步回调。
1092

1093 1094 1095 1096 1097 1098 1099 1100
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1101 1102 1103
| x | number | 是   | 面板在x轴方向移动的值,值为正表示右移,单位为px。|
| y | number | 是   | 面板在y轴方向移动的值,值为正表示下移,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板位置移动成功,err为undefined,否则err为错误对象。 |
1104 1105 1106 1107 1108

**示例:**

```js
try {
H
update  
Hollokin 已提交
1109
  panel.moveTo(300, 300, (err) =>{
H
update  
Hollokin 已提交
1110
    if (err) {
H
Hollokin 已提交
1111
      console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1112 1113 1114 1115
      return;
    }
    console.info('Succeeded in moving the panel.');
  });
H
Hollokin 已提交
1116 1117
} catch (err) {
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1118 1119 1120 1121 1122
}
```

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

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

H
update  
Hollokin 已提交
1125
移动面板位置,使用callback异步回调。
H
换行  
Hollokin 已提交
1126

1127 1128 1129 1130 1131 1132 1133 1134
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1135 1136
| x | number | 是   | 面板在x轴方向移动的值,值为正表示右移,单位为px。|
| y | number | 是   | 面板在y轴方向移动的值,值为正表示下移,单位为px。|
1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
| Promise<void> | 无返回结果的Promise对象。  |

**示例:**

```js
try {
  let promise = windowClass.moveTo(300, 300);
H
update  
Hollokin 已提交
1149
  promise.then(() => {
1150
    console.info('Succeeded in moving the panel.');
H
update  
Hollokin 已提交
1151
  }).catch((err) =>{
H
Hollokin 已提交
1152
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1153
  });
H
Hollokin 已提交
1154 1155
} catch (err) {
  console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1156 1157 1158 1159 1160
}
```

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

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

H
update  
Hollokin 已提交
1163
显示当前面板,使用callback异步回调。
1164 1165 1166 1167 1168 1169 1170

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1171
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板显示成功,err为undefined,否则err为错误对象。 |
1172 1173 1174 1175 1176

**示例:**

```js
panel.show((err) => {
H
update  
Hollokin 已提交
1177
  if (err) {
H
Hollokin 已提交
1178
    console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1179 1180 1181 1182 1183 1184 1185 1186
    return;
  }
  console.info('Succeeded in showing the panel.');
});
```

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

H
update  
Hollokin 已提交
1187
show(): Promise\<void>
1188

H
update  
Hollokin 已提交
1189
显示当前面板,使用callback异步回调。
1190 1191 1192 1193 1194 1195 1196

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1197
| Promise\<void> | 无返回结果的Promise对象。  |
1198 1199 1200 1201 1202

**示例:**

```js
let promise = panel.show();
H
update  
Hollokin 已提交
1203
promise.then(() => {
1204
  console.info('Succeeded in showing the panel.');
H
update  
Hollokin 已提交
1205
}).catch((err) =>{
H
Hollokin 已提交
1206
  console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1207 1208 1209 1210 1211
});
```

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

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

H
update  
Hollokin 已提交
1214
隐藏当前面板,使用callback异步回调。
1215 1216 1217 1218 1219 1220 1221

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1222
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1223 1224 1225 1226 1227

**示例:**

```js
panel.hide((err) => {
H
update  
Hollokin 已提交
1228
  if (err) {
H
Hollokin 已提交
1229
    console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1230 1231 1232 1233 1234 1235 1236 1237
    return;
  }
  console.info('Succeeded in hiding the panel.');
});
```

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

H
update  
Hollokin 已提交
1238
hide(): Promise\<void>
1239

H
update  
Hollokin 已提交
1240
隐藏当前面板,使用callback异步回调。
1241 1242 1243 1244 1245 1246 1247

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1248
| Promise\<void> | 无返回结果的Promise对象。  |
1249 1250 1251 1252 1253

**示例:**

```js
let promise = panel.hide();
H
update  
Hollokin 已提交
1254
promise.then(() => {
1255
  console.info('Succeeded in hiding the panel.');
H
update  
Hollokin 已提交
1256
}).catch((err) =>{
H
Hollokin 已提交
1257
  console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1258 1259 1260 1261 1262 1263 1264
});
```

### on<sup>10+</sup>

on(type: 'show' | 'hide', callback: () => void): void

1265
监听当前面板状态,使用callback异步回调。
1266 1267 1268 1269 1270 1271 1272

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1273
| type | 'show'\|'hide' | 是 | 监听当前面板的状态类型,show表示显示状态,hide表示隐藏状态 |
1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287
| callback | () => void | 是   | 回调函数。 |

**示例:**

```js
panel.on('show', () => {
  console.info('Panel is showing.');
});
```

### off<sup>10+</sup>

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

1288
取消监听当前面板状态,使用callback异步回调。
1289 1290 1291 1292 1293 1294 1295

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1296
| type | 'show'\|'hide' | 是 | 要取消监听的当前面板状态类型,show表示显示状态,hide表示隐藏状态 |
1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308
| callback | () => void | 否   | 回调函数。 |

**示例:**

```js
panel.off('show');
```

### changeFlag<sup>10+</sup>

changeFlag(flag: PanelFlag): void

H
update  
Hollokin 已提交
1309
改变面板状态为固定态或者悬浮态。仅对SOFT_KEYBOARD类型生效。
1310 1311 1312 1313 1314 1315 1316

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1317
| flag | [PanelFlag](#panelflag10) | 是 | 要切换到的面板状态类型。 |
1318 1319 1320 1321

**示例:**

```js
H
Hollokin 已提交
1322
let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1323 1324 1325
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1326
## KeyboardController
Z
zhouyongfei 已提交
1327

H
Hollokin 已提交
1328
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到KeyboardController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
1329

H
Hollokin 已提交
1330
### hide<sup>9+</sup>
H
Hollokin 已提交
1331

H
Hollokin 已提交
1332
hide(callback: AsyncCallback&lt;void&gt;): void
H
Hollokin 已提交
1333 1334 1335

隐藏输入法。使用callback异步回调。

H
update  
Hollokin 已提交
1336
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1337 1338 1339 1340 1341

**参数:**

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

H
Hollokin 已提交
1344 1345
**错误码:**

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

1348
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1349
| -------- | -------------------------- |
1350
| 12800003 | input method client error. |
H
Hollokin 已提交
1351

H
Hollokin 已提交
1352 1353 1354
**示例:**

```js
H
Hollokin 已提交
1355
keyboardController.hide((err) => {
1356
  if (err) {
H
Hollokin 已提交
1357
    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1358 1359 1360
    return;
  }
  console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
1361 1362 1363 1364 1365 1366 1367 1368 1369
});
```

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

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

隐藏输入法。使用promise异步回调。

H
update  
Hollokin 已提交
1370
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1371 1372 1373 1374 1375

**返回值:**

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

H
Hollokin 已提交
1378 1379
**错误码:**

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

1382
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1383
| -------- | -------------------------- |
1384
| 12800003 | input method client error. |
H
Hollokin 已提交
1385

H
Hollokin 已提交
1386 1387 1388
**示例:**

```js
H
Hollokin 已提交
1389
keyboardController.hide().then(() => {
1390
  console.info('Succeeded in hiding keyboard.');
1391
}).catch((err) => {
H
Hollokin 已提交
1392
  console.info(`Failed to hide: ${JSON.stringify(err)}`);
1393
});
H
Hollokin 已提交
1394 1395 1396
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1397 1398 1399

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

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

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

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

1408
**参数:**
Z
refresh  
zhouyongfei 已提交
1409

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

1414
**示例:**
Z
zhouyongfei 已提交
1415

1416
```js
H
Hollokin 已提交
1417
keyboardController.hideKeyboard((err) => {
1418
  if (err) {
H
Hollokin 已提交
1419
    console.error(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1420 1421 1422
    return;
  }
  console.log('Succeeded in hiding keyboard.');
1423
});
Z
zhouyongfei 已提交
1424 1425
```

H
Hollokin 已提交
1426
### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1427 1428 1429

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

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

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

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

1438
**返回值:**
Z
refresh  
zhouyongfei 已提交
1439

1440 1441
| 类型             | 说明                      |
| ---------------- | ------------------------- |
H
Hollokin 已提交
1442
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
1443

1444
**示例:**
Z
zhouyongfei 已提交
1445

1446
```js
H
Hollokin 已提交
1447
keyboardController.hideKeyboard().then(() => {
1448
  console.info('Succeeded in hiding keyboard.');
1449
}).catch((err) => {
H
Hollokin 已提交
1450
  console.info(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1451
});
Z
zhouyongfei 已提交
1452 1453
```

1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500
## ExtendAction<sup>10+</sup>

对编辑框中文本的扩展编辑操作类型。

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

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| SELECT_ALL  | 0 |全选。 |
| CUT  | 3 |剪切。 |
| COPY  | 4 |复制。 |
| PASTE  | 5 |粘贴。 |

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

输入法光标移动方向。

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

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |

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

描述选中文本的范围。

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

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

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

描述进行选中文本动作时光标移动的方向。

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

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

H
Hollokin 已提交
1501
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1502

H
update  
Hollokin 已提交
1503
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
1504 1505 1506 1507 1508

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

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

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

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

  **参数:**

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

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

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

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

 **示例:**
H
Hollokin 已提交
1529 1530

```js
1531
let action = 1;
H
Hollokin 已提交
1532
try {
1533 1534
  inputClient.sendKeyFunction(action, (err, result) => {
    if (err) {
H
Hollokin 已提交
1535
      console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1536 1537 1538 1539 1540 1541 1542 1543
      return;
    }
    if (result) {
      console.info('Succeeded in sending key function. ');
    } else {
      console.error('Failed to sendKeyFunction. ');
    }
  });
H
Hollokin 已提交
1544
} catch (err) {
H
Hollokin 已提交
1545
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1546 1547 1548 1549 1550
}
```

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

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

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

H
update  
Hollokin 已提交
1555
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1556 1557 1558 1559 1560

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1561
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1562 1563 1564 1565 1566

**返回值:**

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

H
Hollokin 已提交
1569 1570
**错误码:**

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

1573
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1574
| -------- | -------------------------- |
1575
| 12800003 | input method client error. |
H
Hollokin 已提交
1576

H
Hollokin 已提交
1577 1578 1579
**示例:**

```js
1580
let action = 1;
H
Hollokin 已提交
1581
try {
1582 1583 1584 1585 1586 1587 1588
  inputClient.sendKeyFunction(action).then((result) => {
    if (result) {
      console.info('Succeeded in sending key function. ');
    } else {
      console.error('Failed to sendKeyFunction. ');
    }
  }).catch((err) => {
H
Hollokin 已提交
1589
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1590
  });
H
Hollokin 已提交
1591
} catch (err) {
H
Hollokin 已提交
1592
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1593 1594 1595 1596
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1597 1598 1599

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

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

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

1604
**参数:**
Z
zhouyongfei 已提交
1605

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

H
Hollokin 已提交
1611 1612
**错误码:**

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

1615
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1616
| -------- | ------------------------------ |
1617
| 12800003 | input method client error.     |
H
Hollokin 已提交
1618 1619
| 12800006 | Input method controller error. |

1620 1621
**示例:**

H
Hollokin 已提交
1622 1623 1624
```js
let length = 1;
try {
1625 1626
  inputClient.getForward(length, (err, text) => {
    if (err) {
H
Hollokin 已提交
1627
      console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1628 1629 1630 1631
      return;
    }
    console.log('Succeeded in getting forward, text: ' + text);
  });
H
Hollokin 已提交
1632
} catch (err) {
H
Hollokin 已提交
1633
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1634 1635
}
```
Z
zhouyongfei 已提交
1636

H
Hollokin 已提交
1637
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1638 1639 1640

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

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

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

1645
**参数:**
Z
zhouyongfei 已提交
1646

W
wz 已提交
1647 1648 1649
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1650

1651 1652
**返回值:**

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

H
Hollokin 已提交
1657 1658
**错误码:**

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

1661
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1662
| -------- | ------------------------------ |
1663
| 12800003 | input method client error.     |
H
Hollokin 已提交
1664 1665
| 12800006 | Input method controller error. |

1666 1667
**示例:**

H
Hollokin 已提交
1668
```js
1669 1670
let length = 1;
try {
1671 1672 1673
  inputClient.getForward(length).then((text) => {
    console.info('Succeeded in getting forward, text: ' + text);
  }).catch((err) => {
H
Hollokin 已提交
1674
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1675 1676
  });
} catch (err) {
H
Hollokin 已提交
1677
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1678 1679
}
```
Z
zhouyongfei 已提交
1680

H
Hollokin 已提交
1681
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1682 1683 1684

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

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

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

1689
**参数:**
Z
zhouyongfei 已提交
1690

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

H
Hollokin 已提交
1696 1697
**错误码:**

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

1700
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1701
| -------- | ------------------------------ |
1702
| 12800003 | input method client error.     |
H
Hollokin 已提交
1703 1704
| 12800006 | Input method controller error. |

1705 1706
**示例:**

H
Hollokin 已提交
1707 1708 1709
```js
let length = 1;
try {
1710 1711
  inputClient.getBackward(length, (err, text) => {
    if (err) {
H
Hollokin 已提交
1712
      console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
1713 1714 1715 1716
      return;
    }
    console.log('Succeeded in getting backward, text: ' + text);
  });
H
Hollokin 已提交
1717
} catch (err) {
H
Hollokin 已提交
1718
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1719 1720
}
```
Z
zhouyongfei 已提交
1721

H
Hollokin 已提交
1722
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1723 1724 1725

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

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

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

1730
**参数:**
Z
zhouyongfei 已提交
1731

W
wz 已提交
1732 1733 1734
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1735

1736 1737
**返回值:**

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

H
Hollokin 已提交
1742 1743
**错误码:**

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

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

1751 1752
**示例:**

H
Hollokin 已提交
1753
```js
1754 1755
let length = 1;
try {
1756 1757 1758
  inputClient.getBackward(length).then((text) => {
    console.info('Succeeded in getting backward, text: ' + text);
  }).catch((err) => {
H
Hollokin 已提交
1759
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
1760 1761
  });
} catch (err) {
H
Hollokin 已提交
1762
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1763 1764
}
```
Z
zhouyongfei 已提交
1765

H
Hollokin 已提交
1766
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1767 1768 1769

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

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

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

1774
**参数:**
Z
zhouyongfei 已提交
1775

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

H
Hollokin 已提交
1781 1782
**错误码:**

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

1785
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1786 1787
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1788
| 12800003 | input method client error. |
H
Hollokin 已提交
1789

1790 1791
**示例:**

H
Hollokin 已提交
1792 1793 1794
```js
let length = 1;
try {
1795 1796
  inputClient.deleteForward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
1797
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1798 1799 1800 1801 1802
      return;
    }
    if (result) {
      console.info('Succeeded in deleting forward. ');
    } else {
H
Hollokin 已提交
1803
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1804 1805
    }
  });
H
Hollokin 已提交
1806
} catch (err) {
H
Hollokin 已提交
1807
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1808 1809 1810 1811
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1812 1813 1814

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

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

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

1819
**参数:**
W
wz 已提交
1820 1821 1822 1823 1824

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

1825 1826
**返回值:**  

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

H
Hollokin 已提交
1831 1832
**错误码:**

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

1835
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1836 1837
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1838
| 12800003 | input method client error. |
H
Hollokin 已提交
1839

1840 1841
**示例:**

W
wz 已提交
1842
```js
1843 1844
let length = 1;
try {
1845 1846 1847 1848 1849 1850 1851
  inputClient.deleteForward(length).then((result) => {
    if (result) {
      console.info('Succeeded in deleting forward. ');
    } else {
      console.error('Failed to delete Forward. ');
    }
  }).catch((err) => {
H
Hollokin 已提交
1852
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1853 1854
  });
} catch (err) {
H
Hollokin 已提交
1855
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1856
}
W
wz 已提交
1857 1858
```

H
Hollokin 已提交
1859
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1860 1861 1862

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

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

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

H
Hollokin 已提交
1867
**参数:**
Z
zhouyongfei 已提交
1868

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

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

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

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

**示例:**
1884

W
wz 已提交
1885
```js
H
Hollokin 已提交
1886 1887
let length = 1;
try {
1888 1889
  inputClient.deleteBackward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
1890
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
1891 1892 1893 1894 1895
      return;
    }
    if (result) {
      console.info('Succeeded in deleting backward. ');
    } else {
H
Hollokin 已提交
1896
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
1897 1898
    }
  });
H
Hollokin 已提交
1899
} catch (err) {
1900
  console.error('deleteBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1901
}
W
wz 已提交
1902
```
Z
zhouyongfei 已提交
1903

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

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

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

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

1912
**参数:**
B
bmeangel 已提交
1913

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

1918 1919
**返回值:** 

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

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

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

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

1933
**示例:**
Z
zhouyongfei 已提交
1934

W
wz 已提交
1935
```js
1936
let length = 1;
H
Hollokin 已提交
1937
inputClient.deleteBackward(length).then((result) => {
1938 1939 1940 1941 1942
  if (result) {
    console.info('Succeeded in deleting backward. ');
  } else {
    console.error('Failed to deleteBackward. ');
  }
1943
}).catch((err) => {
H
Hollokin 已提交
1944
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
1945
});
W
wz 已提交
1946
```
Z
zhouyongfei 已提交
1947

H
Hollokin 已提交
1948
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1949 1950 1951

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

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

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

1956
**参数:**
Z
zhouyongfei 已提交
1957

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

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

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

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

1972 1973
**示例:**

W
wz 已提交
1974
```js
H
Hollokin 已提交
1975
inputClient.insertText('test', (err, result) => {
1976
  if (err) {
H
Hollokin 已提交
1977
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
1978 1979 1980 1981 1982 1983 1984
    return;
  }
  if (result) {
    console.info('Succeeded in inserting text. ');
  } else {
    console.error('Failed to insertText. ');
  }
W
wz 已提交
1985 1986
});
```
Z
zhouyongfei 已提交
1987

H
Hollokin 已提交
1988
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1989 1990

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

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

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

1996 1997
**参数:**

W
wz 已提交
1998 1999 2000
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
2001

2002
**返回值:**  
W
wz 已提交
2003 2004 2005

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

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

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

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

2017
**示例:**
Z
zhouyongfei 已提交
2018

H
Hollokin 已提交
2019
```js
2020
try {
2021 2022 2023 2024 2025 2026 2027
  inputClient.insertText('test').then((result) => {
    if (result) {
      console.info('Succeeded in inserting text. ');
    } else {
      console.error('Failed to insertText. ');
    }
  }).catch((err) => {
H
Hollokin 已提交
2028
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2029 2030
  });
} catch (err) {
H
Hollokin 已提交
2031
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2032 2033
}
```
W
wz 已提交
2034

H
Hollokin 已提交
2035
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2036 2037 2038

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

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

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

2043 2044
**参数:**

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

H
Hollokin 已提交
2049 2050
**错误码:**

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

2053
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2054
| -------- | -------------------------- |
2055
| 12800003 | input method client error. |
H
Hollokin 已提交
2056

2057 2058
**示例:**

H
Hollokin 已提交
2059
```js
H
Hollokin 已提交
2060
inputClient.getEditorAttribute((err, editorAttribute) => {
2061
  if (err) {
H
Hollokin 已提交
2062
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2063 2064 2065 2066
    return;
  }
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2067 2068
});
```
Z
zhouyongfei 已提交
2069

H
Hollokin 已提交
2070
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2071

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

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

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

2078 2079
**返回值:**

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

H
Hollokin 已提交
2084 2085
**错误码:**

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

2088
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2089
| -------- | -------------------------- |
2090
| 12800003 | input method client error. |
H
Hollokin 已提交
2091

2092 2093
**示例:**

H
Hollokin 已提交
2094
```js
H
Hollokin 已提交
2095
inputClient.getEditorAttribute().then((editorAttribute) => {
2096 2097
  console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2098
}).catch((err) => {
H
Hollokin 已提交
2099
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2100
});
H
Hollokin 已提交
2101
```
Z
zhaolinglan 已提交
2102

H
Hollokin 已提交
2103
### moveCursor<sup>9+</sup>
2104

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

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

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

H
Hollokin 已提交
2111
**参数:**
Z
zhaolinglan 已提交
2112

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

H
Hollokin 已提交
2118 2119
**错误码:**

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

2122
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2123
| -------- | -------------------------- |
2124
| 12800003 | input method client error. |
H
Hollokin 已提交
2125

H
Hollokin 已提交
2126
**示例:**
2127

H
Hollokin 已提交
2128
```js
H
Hollokin 已提交
2129
try {
2130 2131
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
    if (err) {
H
Hollokin 已提交
2132
      console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2133 2134 2135 2136
      return;
    }
    console.info('Succeeded in moving cursor.');
  });
H
Hollokin 已提交
2137
} catch (err) {
H
Hollokin 已提交
2138
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2139
}
2140 2141
```

H
Hollokin 已提交
2142
### moveCursor<sup>9+</sup>
2143

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

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

H
update  
Hollokin 已提交
2148
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2149 2150 2151

**参数:**

H
Hollokin 已提交
2152 2153 2154
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
2155

H
Hollokin 已提交
2156
**返回值:**  
2157

H
Hollokin 已提交
2158 2159
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
2160
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2161

H
Hollokin 已提交
2162 2163
**错误码:**

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

2166
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2167
| -------- | -------------------------- |
2168
| 12800003 | input method client error. |
H
Hollokin 已提交
2169

2170 2171
**示例:**

H
Hollokin 已提交
2172
```js
2173
try {
2174 2175 2176
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
    console.log('Succeeded in moving cursor.');
  }).catch((err) => {
H
Hollokin 已提交
2177
    console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2178
  });
2179
} catch (err) {
2180
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2181
}
H
Hollokin 已提交
2182
```
2183

Z
add doc  
zhaolinglan 已提交
2184 2185 2186 2187 2188 2189 2190 2191 2192 2193
### selectByRange<sup>10+</sup>

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

根据索引范围选中文本。使用callback异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2194 2195
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
2196
| range    | [Range](#range10) | 是   | 选中文本的范围。                                             |
Z
add doc  
zhaolinglan 已提交
2197
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2198 2199 2200 2201 2202 2203 2204 2205

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2206
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2207 2208 2209 2210 2211

**示例:**

```js
try {
2212 2213
  inputClient.selectByRange({start: 0, end: 1}, (err) => {
    if (err) {
H
Hollokin 已提交
2214
      console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2215 2216 2217 2218
      return;
    }
    console.info('Succeeded in selecting by range.');
  });
Z
add doc  
zhaolinglan 已提交
2219
} catch (err) {
H
Hollokin 已提交
2220
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233
}
```

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

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

根据索引范围选中文本。使用promise异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2234 2235
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
2236
| range  | [Range](#range10) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2251
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2252 2253 2254 2255 2256

**示例:**

```js
try {
2257 2258 2259
  inputClient.selectByRange({start: 0, end:1}).then(() => {
    console.log('Succeeded in selecting by range.');
  }).catch((err) => {
H
Hollokin 已提交
2260
    console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2261
  });
Z
add doc  
zhaolinglan 已提交
2262
} catch (err) {
2263
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276
}
```

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

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

根据光标移动方向选中文本。使用callback异步回调。

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

**参数:**

H
update  
Hollokin 已提交
2277 2278
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
H
换行  
Hollokin 已提交
2279 2280
| movement | [Movement](#movement10)   | 是   | 选中时光标移动的方向。  |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2281 2282 2283 2284 2285 2286 2287 2288

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2289
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2290 2291 2292 2293 2294

**示例:**

```js
try {
2295 2296
  inputClient.selectByMovement({direction: 1}, (err) => {
    if (err) {
H
Hollokin 已提交
2297
      console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2298 2299 2300 2301
      return;
    }
    console.info('Succeeded in selecting by movement.');
  });
Z
add doc  
zhaolinglan 已提交
2302
} catch (err) {
H
Hollokin 已提交
2303
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2304 2305 2306 2307 2308
}
```

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

2309
selectByMovement(movement: Movement): Promise&lt;void&gt;
Z
add doc  
zhaolinglan 已提交
2310 2311 2312 2313 2314 2315 2316

根据索引范围选中文本。使用promise异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2317 2318
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2319
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2334
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2335 2336 2337 2338 2339

**示例:**

```js
try {
2340 2341 2342
  inputClient.selectByMovement({direction: 1}).then(() => {
    console.log('Succeeded in selecting by movement.');
  }).catch((err) => {
H
Hollokin 已提交
2343
    console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2344
  });
Z
add doc  
zhaolinglan 已提交
2345
} catch (err) {
2346
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2347 2348 2349
}
```

Z
add doc  
zhaolinglan 已提交
2350 2351 2352 2353 2354 2355 2356 2357 2358 2359
### getTextIndexAtCursor<sup>10+</sup>

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

获取光标所在处的文本索引。使用callback异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2360 2361 2362
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2363 2364 2365 2366 2367 2368 2369

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
2370
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
2371 2372 2373 2374 2375 2376
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
2377
  if (err) {
H
Hollokin 已提交
2378
    console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
2379 2380 2381
    return;
  }
  console.info('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394
});
```

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

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

获取光标所在处的文本索引。使用promise异步回调。

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

**返回值:**

Z
add doc  
zhaolinglan 已提交
2395 2396 2397
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2398 2399 2400 2401 2402 2403 2404

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
2405
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
2406 2407 2408 2409 2410 2411
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor().then((index) => {
2412
  console.info('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2413
}).catch((err) => {
H
Hollokin 已提交
2414
  console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2415 2416 2417
});
```

2418 2419 2420 2421
### sendExtendAction<sup>10+</sup>

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

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

H
Hollokin 已提交
2424
输入法应用调用该接口向编辑控件(如:输入框)发送扩展编辑操作,编辑控件监听相应事件[on(handleExtendAction)](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447

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

**参数:**

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

**错误码:**

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

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

**示例:**

```js
try {
2448 2449 2450 2451 2452 2453 2454
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err) => {
    if (err) {
      console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
      return;
    }
    console.info('Succeeded in sending extend action.');
  });
H
Hollokin 已提交
2455 2456
} catch(err) {
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2457 2458 2459 2460 2461 2462 2463
}
```

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

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

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

H
Hollokin 已提交
2466
输入法应用调用该接口向编辑控件(如:输入框)发送扩展编辑操作,编辑控件监听相应事件[on(handleExtendAction)](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2467 2468 2469 2470 2471 2472 2473

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
2474
| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494

**返回值:**

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

**错误码:**

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

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

**示例:**

```js
try {
2495 2496 2497 2498 2499
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
    console.info('Succeeded in sending extend action.');
  }).catch((err) => {
    console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
2500 2501
} catch(err) {
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2502 2503 2504
}
```

H
Hollokin 已提交
2505
## EditorAttribute
2506

H
Hollokin 已提交
2507
编辑框属性值。
2508

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

2511
| 名称         | 类型 | 可读 | 可写 | 说明               |
H
Hollokin 已提交
2512 2513 2514 2515
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

H
Hollokin 已提交
2516
## KeyEvent
H
Hollokin 已提交
2517 2518 2519

按键属性值。

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

2522
| 名称      | 类型 | 可读 | 可写 | 说明         |
H
Hollokin 已提交
2523 2524 2525 2526
| --------- | -------- | ---- | ---- | ------------ |
| keyCode   | number   | 是   | 否   | 按键的键值。 |
| keyAction | number   | 是   | 否   | 按键的状态。 |

H
update  
Hollokin 已提交
2527
## PanelFlag<sup>10+</sup>
2528 2529 2530 2531 2532 2533 2534 2535 2536 2537

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

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

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

H
update  
Hollokin 已提交
2538
## PanelType<sup>10+</sup>
2539 2540 2541 2542 2543 2544 2545 2546

输入法面板类型枚举。

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

| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| SOFT_KEYBOARD | 0 | 软键盘类型。 |
H
update  
Hollokin 已提交
2547
| STATUS_BAR   | 1 | 状态栏类型。 |
2548

H
update  
Hollokin 已提交
2549
## PanelInfo<sup>10+</sup>
2550

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

2553 2554 2555 2556 2557 2558 2559
输入法面板属性。

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

H
Hollokin 已提交
2560 2561
## TextInputClient<sup>(deprecated)</sup>

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

H
Hollokin 已提交
2566
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
2567 2568 2569 2570 2571

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

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

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

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

H
update  
Hollokin 已提交
2578
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2579 2580 2581 2582 2583 2584

**参数:**

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

**示例:**

H
Hollokin 已提交
2589 2590
```js
let length = 1;
H
Hollokin 已提交
2591
textInputClient.getForward(length, (err, text) => {
2592
  if (err) {
H
Hollokin 已提交
2593
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
2594 2595 2596
    return;
  }
  console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
2597 2598
});
```
2599

H
Hollokin 已提交
2600
### getForward<sup>(deprecated)</sup>
2601 2602 2603

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

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

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

H
update  
Hollokin 已提交
2610
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2626
```js
2627
let length = 1;
H
Hollokin 已提交
2628
textInputClient.getForward(length).then((text) => {
2629
  console.info('Succeeded in getting forward, text: ' + text);
2630
}).catch((err) => {
H
Hollokin 已提交
2631
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
2632
});
H
Hollokin 已提交
2633
```
2634

H
Hollokin 已提交
2635
### getBackward<sup>(deprecated)</sup>
2636 2637 2638

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

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

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

H
update  
Hollokin 已提交
2645
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2646 2647 2648 2649 2650 2651

**参数:**

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

**示例:**

H
Hollokin 已提交
2656 2657
```js
let length = 1;
H
Hollokin 已提交
2658
textInputClient.getBackward(length, (err, text) => {
2659
  if (err) {
H
Hollokin 已提交
2660
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2661 2662 2663
    return;
  }
  console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
2664 2665
});
```
2666

H
Hollokin 已提交
2667
### getBackward<sup>(deprecated)</sup>
2668 2669 2670

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

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

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

H
update  
Hollokin 已提交
2677
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2693
```js
2694
let length = 1;
H
Hollokin 已提交
2695
textInputClient.getBackward(length).then((text) => {
2696
  console.info('Succeeded in getting backward: ' + JSON.stringify(text));
2697
}).catch((err) => {
H
Hollokin 已提交
2698
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2699
});
H
Hollokin 已提交
2700
```
2701

H
Hollokin 已提交
2702
### deleteForward<sup>(deprecated)</sup>
2703 2704 2705

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
2723 2724
```js
let length = 1;
H
Hollokin 已提交
2725
textInputClient.deleteForward(length, (err, result) => {
2726
  if (err) {
H
Hollokin 已提交
2727
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2728 2729 2730 2731 2732 2733 2734
    return;
  }
  if (result) {
    console.info('Succeeded in deleting forward. ');
  } else {
    console.error('Failed to deleteForward. ');
  }
H
Hollokin 已提交
2735 2736
});
```
H
Hollokin 已提交
2737

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

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

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

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

H
update  
Hollokin 已提交
2748
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759

**参数:**

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

**返回值:**  

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

**示例:**

```js
2765
let length = 1;
H
Hollokin 已提交
2766
textInputClient.deleteForward(length).then((result) => {
2767 2768 2769 2770 2771
  if (result) {
    console.info('Succeeded in deleting forward. ');
  } else {
    console.error('Failed to delete forward. ');
  }
2772
}).catch((err) => {
H
Hollokin 已提交
2773
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2774
});
2775 2776
```

H
Hollokin 已提交
2777
### deleteBackward<sup>(deprecated)</sup>
2778 2779 2780

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

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

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

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

2789
**参数:**
2790 2791 2792 2793

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

2796
**示例:**
2797 2798

```js
H
Hollokin 已提交
2799
let length = 1;
H
Hollokin 已提交
2800
textInputClient.deleteBackward(length, (err, result) => {
2801
  if (err) {
H
Hollokin 已提交
2802
    console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2803 2804 2805 2806 2807 2808 2809
    return;
  }
  if (result) {
    console.info('Succeeded in deleting backward. ');
  } else {
    console.error('Failed to deleteBackward. ');
  }
H
Hollokin 已提交
2810
});
2811 2812
```

H
Hollokin 已提交
2813
### deleteBackward<sup>(deprecated)</sup>
2814 2815 2816

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

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

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

H
update  
Hollokin 已提交
2823
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834

**参数:**

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

**返回值:** 

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

**示例:**

```js
2840
let length = 1;
H
Hollokin 已提交
2841
textInputClient.deleteBackward(length).then((result) => {
2842 2843 2844 2845 2846
  if (result) {
    console.info('Succeeded in deleting backward. ');
  } else {
    console.error('Failed to deleteBackward. ');
  }
2847
}).catch((err) => {
H
Hollokin 已提交
2848
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2849
});
2850
```
H
Hollokin 已提交
2851
### sendKeyFunction<sup>(deprecated)</sup>
2852

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

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

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

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

2863
**参数:**
2864 2865 2866

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

2870
**示例:**
2871 2872

```js
2873
let action = 1;
H
Hollokin 已提交
2874
textInputClient.sendKeyFunction(action, (err, result) => {
2875
  if (err) {
H
Hollokin 已提交
2876
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
2877 2878 2879 2880 2881 2882 2883
    return;
  }
  if (result) {
    console.info('Succeeded in sending key function. ');
  } else {
    console.error('Failed to sendKeyFunction. ');
  }
2884 2885 2886
});
```

H
Hollokin 已提交
2887
### sendKeyFunction<sup>(deprecated)</sup>
2888

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

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

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

H
update  
Hollokin 已提交
2897
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2898 2899 2900 2901 2902

**参数:**

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

H
Hollokin 已提交
2905
**返回值:**
2906 2907 2908

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

**示例:**

H
Hollokin 已提交
2913
```js
2914
let action = 1;
H
Hollokin 已提交
2915
textInputClient.sendKeyFunction(action).then((result) => {
2916 2917 2918 2919 2920
  if (result) {
    console.info('Succeeded in sending key function. ');
  } else {
    console.error('Failed to sendKeyFunction. ');
  }
2921
}).catch((err) => {
H
Hollokin 已提交
2922
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
2923
});
H
Hollokin 已提交
2924
```
2925

H
Hollokin 已提交
2926
### insertText<sup>(deprecated)</sup>
2927

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

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

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

H
update  
Hollokin 已提交
2936
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2937 2938 2939

**参数:**

H
Hollokin 已提交
2940 2941 2942
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
2943
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
2944 2945 2946

**示例:**

H
Hollokin 已提交
2947
```js
H
Hollokin 已提交
2948
textInputClient.insertText('test', (err, result) => {
2949
  if (err) {
H
Hollokin 已提交
2950
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2951 2952 2953 2954 2955 2956 2957
    return;
  }
  if (result) {
    console.info('Succeeded in inserting text. ');
  } else {
    console.error('Failed to insertText. ');
  }
H
Hollokin 已提交
2958 2959
});
```
2960

H
Hollokin 已提交
2961
### insertText<sup>(deprecated)</sup>
2962

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

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

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

H
update  
Hollokin 已提交
2971
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2972 2973 2974

**参数:**

H
Hollokin 已提交
2975 2976 2977 2978 2979 2980 2981 2982
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2983
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
2984 2985 2986 2987

**示例:**

```js
H
Hollokin 已提交
2988
textInputClient.insertText('test').then((result) => {
2989 2990 2991 2992 2993
  if (result) {
    console.info('Succeeded in inserting text. ');
  } else {
    console.error('Failed to insertText. ');
  }
2994
}).catch((err) => {
H
Hollokin 已提交
2995
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2996
});
Z
zhaolinglan 已提交
2997 2998
```

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

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

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

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

H
update  
Hollokin 已提交
3009
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
3010 3011 3012

**参数:**

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

**示例:**

H
Hollokin 已提交
3019
```js
H
Hollokin 已提交
3020
textInputClient.getEditorAttribute((err, editorAttribute) => {
3021
  if (err) {
H
Hollokin 已提交
3022
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3023 3024 3025 3026
    return;
  }
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
3027 3028
});
```
Z
zhaolinglan 已提交
3029

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

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

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

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

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

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

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

H
Hollokin 已提交
3048
**示例:**
Z
zhouyongfei 已提交
3049

H
Hollokin 已提交
3050
```js
H
Hollokin 已提交
3051
textInputClient.getEditorAttribute().then((editorAttribute) => {
3052 3053
  console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
3054
}).catch((err) => {
H
Hollokin 已提交
3055
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3056
});
3057
```
H
update  
Hollokin 已提交
3058
<!--no_check-->