js-apis-inputmethodengine.md 101.0 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 168 169
inputMethodEngine.getInputMethodEngine().on('inputStart', (kbController, textClient) => {
    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 192 193 194
```js
inputMethodEngine.getInputMethodEngine().off('inputStart', (kbController, textInputClient) => {
    console.log('delete inputStart notification.');
});
```
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 215 216 217 218 219 220
```js
inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
    console.log('inputMethodEngine keyboardShow.');
});
inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
    console.log('inputMethodEngine keyboardHide.');
});
```
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 267 268
inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, client) => {
    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 313
    console.log('inputMethodAbility inputStop');
});
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 336
    console.log('inputMethodAbility delete inputStop notification.');
});
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 359
    console.log('inputMethodAbility setCallingWindow');
});
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 382
    console.log('inputMethodAbility delete setCallingWindow notification.');
});
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 404 405 406 407 408 409
```js
inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
    console.log('InputMethodAbility keyboardShow.');
});
inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
    console.log('InputMethodAbility keyboardHide.');
});
```
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 430 431 432 433 434 435
```js
inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
    console.log('InputMethodAbility delete keyboardShow notification.');
});
inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
    console.log('InputMethodAbility delete keyboardHide notification.');
});
```
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 456 457 458
```js
inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype) => {
    console.log('InputMethodAbility setSubtype.');
});
```
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 479 480 481
```js
inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
    console.log('InputMethodAbility delete setSubtype notification.');
});
```
Z
zhouyongfei 已提交
482

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

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

H
update  
Hollokin 已提交
487
创建输入法应用面板。仅支持输入法应用或者具有system_core权限的系统应用调用。单个输入法应用仅仅允许创建一个SOFT_KEYBOARD及一个STATUS_BAR类型的面板。使用callback异步回调。
488 489 490 491 492 493 494

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

**参数:**

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

**错误码:**

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

**示例:**

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

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

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

H
update  
Hollokin 已提交
529
创建输入法应用面板。仅支持输入法应用或者具有system_core权限的系统应用调用。单个输入法应用仅仅允许创建一个SOFT_KEYBOARD及一个STATUS_BAR类型的面板。使用promise异步回调。
530 531 532 533 534 535 536

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

**参数:**

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

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

**错误码:**

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

**示例:**

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

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

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

H
update  
Hollokin 已提交
569
销毁输入法应用面板。使用callback异步回调。
570 571 572 573 574 575 576

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

**参数:**

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

**示例:**

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

try {
601
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel, (err) => {
602
    if(err !== undefined) {
H
update  
Hollokin 已提交
603
      console.log('Failed to destroy panel, err: ' + JSON.stringify(err));
604 605 606 607 608
      return;
    }
    console.log('Succeed in destroying panel.');
  })
} catch(err) {
H
update  
Hollokin 已提交
609
  console.log('Failed to destroy panel, err: ' + JSON.stringify(err));
610 611 612 613 614
}
```

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

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

H
update  
Hollokin 已提交
617
销毁输入法应用面板。使用promise异步回调。
618 619 620 621 622 623 624

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

**参数:**

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

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

**示例:**

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

try {
653
  inputMethodEngine.getInputMethodAbility().destroyPanel(globalThis.inputMethodPanel).then(() => {
654 655
    console.log('Succeed in destroying panel.');
  }).catch((err) => {
H
update  
Hollokin 已提交
656
    console.log('Failed to destroy panel, err: ' + JSON.stringify(err));
657 658
  });
} catch (err) {
H
update  
Hollokin 已提交
659
  console.log('Failed to destroy panel, err: ' + JSON.stringify(err));
660 661 662
}
```

H
Hollokin 已提交
663
## KeyboardDelegate
Z
zhouyongfei 已提交
664

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

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

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

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

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

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

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

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

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

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

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

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

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

705
**参数:**
Z
zhouyongfei 已提交
706

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

712
**示例:**
Z
zhouyongfei 已提交
713

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

### on('cursorContextChange')

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

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

731
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
732

733
**参数:**
Z
zhouyongfei 已提交
734

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

740
**示例:**
W
wz 已提交
741 742

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

### off('cursorContextChange')

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

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

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

758
  **参数:**
Z
zhouyongfei 已提交
759

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


766
  **示例:**
Z
zhouyongfei 已提交
767

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

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

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

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

H
Hollokin 已提交
781
**参数:**
Z
zhouyongfei 已提交
782

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

H
Hollokin 已提交
788
**示例:**
W
wz 已提交
789 790

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

### off('selectionChange')

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

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

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

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

H
update  
Hollokin 已提交
809 810 811
| 参数名   | 类型  | 必填 | 说明     |
| -------- | ------- | ---- | ------- |
| type     | string  | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
812
| 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 已提交
813

814
**示例:**
Z
zhouyongfei 已提交
815

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


### on('textChange')

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

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

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

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

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

H
Hollokin 已提交
838
**示例:**
Z
zhouyongfei 已提交
839

W
wz 已提交
840
```js
H
Hollokin 已提交
841
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
Z
zhaolinglan 已提交
842
    console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
843 844
});
```
Z
zhouyongfei 已提交
845 846 847

### off('textChange')

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

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

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

854
**参数:**
Z
zhouyongfei 已提交
855

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

861
**示例:**
Z
zhouyongfei 已提交
862

W
wz 已提交
863
```js
H
Hollokin 已提交
864
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
Z
zhaolinglan 已提交
865
    console.log('delete textChange notification. text:' + text);
866
});
W
wz 已提交
867
```
Z
zhouyongfei 已提交
868

H
update  
Hollokin 已提交
869
## Panel<sup>10+</sup>
870

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
922
| Promise\<void> | 无返回结果的Promise对象。  |
923 924 925 926 927 928

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
992
| Promise\<void> | 无返回结果的Promise对象。  |
993 994 995 996 997 998 999 1000

**示例:**

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

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

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

H
update  
Hollokin 已提交
1015 1016
改变当前面板大小,使用callback异步回调。
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1017 1018 1019 1020 1021 1022 1023

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

**参数:**

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

**示例:**

```js
try {
  panel.resize(500, 1000, (err) => {
H
update  
Hollokin 已提交
1033
    if (err) {
1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045
      console.error('Failed to change the panel size. Cause:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in changing the panel size.');
  });
} catch (exception) {
  console.error('Failed to change the panel size. Cause:' + JSON.stringify(exception));
}
```

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

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

H
update  
Hollokin 已提交
1048 1049
改变当前面板大小,使用Promise异步回调。
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1050 1051 1052 1053 1054 1055 1056

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1057 1058
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070

**返回值:**

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

**示例:**

```js
try {
  let promise = panel.resize(500, 1000);
H
update  
Hollokin 已提交
1071
  promise.then(() => {
1072
    console.info('Succeeded in changing the panel size.');
H
update  
Hollokin 已提交
1073
  }).catch((err) =>{
1074 1075 1076 1077 1078 1079 1080 1081 1082
    console.error('Failed to change the panel size. err: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to change the panel size. err: ' + JSON.stringify(exception));
}
```

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

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

H
update  
Hollokin 已提交
1085
移动面板位置,使用callback异步回调。
1086 1087 1088 1089 1090 1091 1092 1093
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

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

**示例:**

```js
try {
H
update  
Hollokin 已提交
1102
  panel.moveTo(300, 300, (err) =>{
H
update  
Hollokin 已提交
1103
    if (err) {
1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
      console.error('Failed to move the panel. err:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in moving the panel.');
  });
} catch (exception) {
    console.error('Failed to move the panel. err:' + JSON.stringify(exception));
}
```

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

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

H
update  
Hollokin 已提交
1118
移动面板位置,使用callback异步回调。
1119 1120 1121 1122 1123 1124 1125 1126
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1127 1128
| x | number | 是   | 面板在x轴方向移动的值,值为正表示右移,单位为px。|
| y | number | 是   | 面板在y轴方向移动的值,值为正表示下移,单位为px。|
1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140

**返回值:**

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

**示例:**

```js
try {
  let promise = windowClass.moveTo(300, 300);
H
update  
Hollokin 已提交
1141
  promise.then(() => {
1142
    console.info('Succeeded in moving the panel.');
H
update  
Hollokin 已提交
1143
  }).catch((err) =>{
1144 1145 1146 1147 1148 1149 1150 1151 1152
    console.error('Failed to move the panel. Cause: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to move the panel. Cause:' + JSON.stringify(exception));
}
```

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

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

H
update  
Hollokin 已提交
1155
显示当前面板,使用callback异步回调。
1156 1157 1158 1159 1160 1161 1162

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1163
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板显示成功,err为undefined,否则err为错误对象。 |
1164 1165 1166 1167 1168

**示例:**

```js
panel.show((err) => {
H
update  
Hollokin 已提交
1169
  if (err) {
1170 1171 1172 1173 1174 1175 1176 1177 1178
    console.error('Failed to show the panel. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Succeeded in showing the panel.');
});
```

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

H
update  
Hollokin 已提交
1179
show(): Promise\<void>
1180

H
update  
Hollokin 已提交
1181
显示当前面板,使用callback异步回调。
1182 1183 1184 1185 1186 1187 1188

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1189
| Promise\<void> | 无返回结果的Promise对象。  |
1190 1191 1192 1193 1194

**示例:**

```js
let promise = panel.show();
H
update  
Hollokin 已提交
1195
promise.then(() => {
1196
  console.info('Succeeded in showing the panel.');
H
update  
Hollokin 已提交
1197
}).catch((err) =>{
1198 1199 1200 1201 1202 1203
  console.error('Failed to show the panel. err: ' + JSON.stringify(err));
});
```

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

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

H
update  
Hollokin 已提交
1206
隐藏当前面板,使用callback异步回调。
1207 1208 1209 1210 1211 1212 1213

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1214
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1215 1216 1217 1218 1219

**示例:**

```js
panel.hide((err) => {
H
update  
Hollokin 已提交
1220
  if (err) {
1221 1222 1223 1224 1225 1226 1227 1228 1229
    console.error('Failed to hide the panel. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Succeeded in hiding the panel.');
});
```

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

H
update  
Hollokin 已提交
1230
hide(): Promise\<void>
1231

H
update  
Hollokin 已提交
1232
隐藏当前面板,使用callback异步回调。
1233 1234 1235 1236 1237 1238 1239

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

**返回值:**

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

**示例:**

```js
let promise = panel.hide();
H
update  
Hollokin 已提交
1246
promise.then(() => {
1247
  console.info('Succeeded in hiding the panel.');
H
update  
Hollokin 已提交
1248
}).catch((err) =>{
1249 1250 1251 1252 1253 1254 1255 1256
  console.error('Failed to hide the panel. err: ' + JSON.stringify(err));
});
```

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

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

H
update  
Hollokin 已提交
1257
监听当前面板状态,可监听面板类型为show或者hide, 使用callback异步回调。
1258 1259 1260 1261 1262 1263 1264

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1265
| type | 'show'\|'hide' | 是 | 监听当前面板的状态类型,show表示显示状态,hide表示隐藏状态 |
1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279
| callback | () => void | 是   | 回调函数。 |

**示例:**

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

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

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

H
update  
Hollokin 已提交
1280
取消监听当前面板状态,可取消监听的面板类型为show或者hide,使用callback异步回调。
1281 1282 1283 1284 1285 1286 1287

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1288
| type | 'show'\|'hide' | 是 | 要取消监听的当前面板状态类型,show表示显示状态,hide表示隐藏状态 |
1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
| callback | () => void | 否   | 回调函数。 |

**示例:**

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

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

changeFlag(flag: PanelFlag): void

H
update  
Hollokin 已提交
1301
改变面板状态为固定态或者悬浮态。仅对SOFT_KEYBOARD类型生效。
1302 1303 1304 1305 1306 1307 1308

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1309
| flag | [PanelFlag](#panelflag10) | 是 | 要切换到的面板状态类型。 |
1310 1311 1312 1313

**示例:**

```js
H
Hollokin 已提交
1314
let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1315 1316 1317
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1318
## KeyboardController
Z
zhouyongfei 已提交
1319

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

H
Hollokin 已提交
1322
### hide<sup>9+</sup>
H
Hollokin 已提交
1323

H
Hollokin 已提交
1324
hide(callback: AsyncCallback&lt;void&gt;): void
H
Hollokin 已提交
1325 1326 1327

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

H
update  
Hollokin 已提交
1328
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1329 1330 1331 1332 1333

**参数:**

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

H
Hollokin 已提交
1336 1337
**错误码:**

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

1340
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1341
| -------- | -------------------------- |
1342
| 12800003 | input method client error. |
H
Hollokin 已提交
1343

H
Hollokin 已提交
1344 1345 1346
**示例:**

```js
H
Hollokin 已提交
1347 1348 1349
keyboardController.hide((err) => {
    if (err !== undefined) {
        console.error('Failed to hide keyboard: ' + JSON.stringify(err));
H
Hollokin 已提交
1350 1351
        return;
    }
H
Hollokin 已提交
1352
    console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
1353 1354 1355 1356 1357 1358 1359 1360 1361
});
```

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

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

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

H
update  
Hollokin 已提交
1362
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1363 1364 1365 1366 1367

**返回值:**

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

H
Hollokin 已提交
1370 1371
**错误码:**

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

1374
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1375
| -------- | -------------------------- |
1376
| 12800003 | input method client error. |
H
Hollokin 已提交
1377

H
Hollokin 已提交
1378 1379 1380
**示例:**

```js
H
Hollokin 已提交
1381 1382
keyboardController.hide().then(() => {
    console.info('Succeeded in hiding keyboard.');
1383
}).catch((err) => {
H
Hollokin 已提交
1384
    console.info('Failed to hide keyboard: ' + JSON.stringify(err));
1385
});
H
Hollokin 已提交
1386 1387 1388
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1389 1390 1391

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

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

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

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

1400
**参数:**
Z
refresh  
zhouyongfei 已提交
1401

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

1406
**示例:**
Z
zhouyongfei 已提交
1407

1408
```js
H
Hollokin 已提交
1409 1410 1411
keyboardController.hideKeyboard((err) => {
    if (err !== undefined) {
        console.error('Failed to hide Keyboard: ' + JSON.stringify(err));
1412 1413
        return;
    }
H
Hollokin 已提交
1414
    console.log('Succeeded in hiding keyboard.');
1415
});
Z
zhouyongfei 已提交
1416 1417
```

H
Hollokin 已提交
1418
### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1419 1420 1421

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

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

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

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

1430
**返回值:**
Z
refresh  
zhouyongfei 已提交
1431

1432 1433
| 类型             | 说明                      |
| ---------------- | ------------------------- |
H
Hollokin 已提交
1434
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
1435

1436
**示例:**
Z
zhouyongfei 已提交
1437

1438
```js
H
Hollokin 已提交
1439 1440
keyboardController.hideKeyboard().then(() => {
    console.info('Succeeded in hiding keyboard.');
1441
}).catch((err) => {
H
Hollokin 已提交
1442
    console.info('Failed to hide Keyboard: ' + JSON.stringify(err));
1443
});
Z
zhouyongfei 已提交
1444 1445
```

1446 1447 1448 1449 1450 1451 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
## 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 已提交
1493
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1494

H
update  
Hollokin 已提交
1495
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
1496 1497 1498 1499 1500

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

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

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

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

  **参数:**

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

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

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

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

 **示例:**
H
Hollokin 已提交
1521 1522

```js
1523
let action = 1;
H
Hollokin 已提交
1524
try {
H
Hollokin 已提交
1525 1526 1527
    inputClient.sendKeyFunction(action, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
H
Hollokin 已提交
1528 1529 1530
            return;
        }
        if (result) {
H
Hollokin 已提交
1531
            console.info('Succeeded in sending key function. ');
H
Hollokin 已提交
1532
        } else {
H
Hollokin 已提交
1533
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
1534 1535 1536 1537 1538 1539 1540 1541 1542
        }
    });
} catch (err) {
    console.error('sendKeyFunction err: ' + JSON.stringify(err));
}
```

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

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

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

H
update  
Hollokin 已提交
1547
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1548 1549 1550 1551 1552

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1553
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1554 1555 1556 1557 1558

**返回值:**

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

H
Hollokin 已提交
1561 1562
**错误码:**

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

1565
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1566
| -------- | -------------------------- |
1567
| 12800003 | input method client error. |
H
Hollokin 已提交
1568

H
Hollokin 已提交
1569 1570 1571
**示例:**

```js
1572
let action = 1;
H
Hollokin 已提交
1573
try {
H
Hollokin 已提交
1574
    inputClient.sendKeyFunction(action).then((result) => {
H
Hollokin 已提交
1575
        if (result) {
H
Hollokin 已提交
1576
            console.info('Succeeded in sending key function. ');
H
Hollokin 已提交
1577
        } else {
H
Hollokin 已提交
1578
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
1579 1580
        }
    }).catch((err) => {
H
Hollokin 已提交
1581
        console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
H
Hollokin 已提交
1582 1583
    });
} catch (err) {
H
Hollokin 已提交
1584
    console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
H
Hollokin 已提交
1585 1586 1587 1588
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1589 1590 1591

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

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

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

1596
**参数:**
Z
zhouyongfei 已提交
1597

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

H
Hollokin 已提交
1603 1604
**错误码:**

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

1607
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1608
| -------- | ------------------------------ |
1609
| 12800003 | input method client error.     |
H
Hollokin 已提交
1610 1611
| 12800006 | Input method controller error. |

1612 1613
**示例:**

H
Hollokin 已提交
1614 1615 1616
```js
let length = 1;
try {
H
Hollokin 已提交
1617 1618 1619
    inputClient.getForward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1620 1621
            return;
        }
H
Hollokin 已提交
1622
        console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
1623 1624
    });
} catch (err) {
H
Hollokin 已提交
1625
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1626 1627
}
```
Z
zhouyongfei 已提交
1628

H
Hollokin 已提交
1629
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1630 1631 1632

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

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

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

1637
**参数:**
Z
zhouyongfei 已提交
1638

W
wz 已提交
1639 1640 1641
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1642

1643 1644
**返回值:**

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

H
Hollokin 已提交
1649 1650
**错误码:**

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

1653
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1654
| -------- | ------------------------------ |
1655
| 12800003 | input method client error.     |
H
Hollokin 已提交
1656 1657
| 12800006 | Input method controller error. |

1658 1659
**示例:**

H
Hollokin 已提交
1660
```js
1661 1662
let length = 1;
try {
H
Hollokin 已提交
1663 1664
    inputClient.getForward(length).then((text) => {
        console.info('Succeeded in getting forward, text: ' + text);
1665
    }).catch((err) => {
H
Hollokin 已提交
1666
        console.error('Failed to getForward: ' + JSON.stringify(err));
1667 1668
    });
} catch (err) {
H
Hollokin 已提交
1669
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1670 1671
}
```
Z
zhouyongfei 已提交
1672

H
Hollokin 已提交
1673
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1674 1675 1676

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

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

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

1681
**参数:**
Z
zhouyongfei 已提交
1682

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

H
Hollokin 已提交
1688 1689
**错误码:**

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

1692
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1693
| -------- | ------------------------------ |
1694
| 12800003 | input method client error.     |
H
Hollokin 已提交
1695 1696
| 12800006 | Input method controller error. |

1697 1698
**示例:**

H
Hollokin 已提交
1699 1700 1701
```js
let length = 1;
try {
H
Hollokin 已提交
1702 1703 1704
    inputClient.getBackward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1705 1706
            return;
        }
H
Hollokin 已提交
1707
        console.log('Succeeded in getting backward, text: ' + text);
H
Hollokin 已提交
1708 1709
    });
} catch (err) {
H
Hollokin 已提交
1710
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1711 1712
}
```
Z
zhouyongfei 已提交
1713

H
Hollokin 已提交
1714
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1715 1716 1717

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

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

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

1722
**参数:**
Z
zhouyongfei 已提交
1723

W
wz 已提交
1724 1725 1726
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1727

1728 1729
**返回值:**

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

H
Hollokin 已提交
1734 1735
**错误码:**

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

1738
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1739
| -------- | ------------------------------ |
1740
| 12800003 | input method client error.     |
H
Hollokin 已提交
1741 1742
| 12800006 | Input method controller error. |

1743 1744
**示例:**

H
Hollokin 已提交
1745
```js
1746 1747
let length = 1;
try {
H
Hollokin 已提交
1748 1749
    inputClient.getBackward(length).then((text) => {
        console.info('Succeeded in getting backward, text: ' + text);
1750
    }).catch((err) => {
H
Hollokin 已提交
1751
        console.error('Failed to getForward: ' + JSON.stringify(err));
1752 1753
    });
} catch (err) {
H
Hollokin 已提交
1754
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1755 1756
}
```
Z
zhouyongfei 已提交
1757

H
Hollokin 已提交
1758
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1759 1760 1761

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

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

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

1766
**参数:**
Z
zhouyongfei 已提交
1767

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

H
Hollokin 已提交
1773 1774
**错误码:**

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

1777
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1778 1779
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1780
| 12800003 | input method client error. |
H
Hollokin 已提交
1781

1782 1783
**示例:**

H
Hollokin 已提交
1784 1785 1786
```js
let length = 1;
try {
H
Hollokin 已提交
1787 1788 1789
    inputClient.deleteForward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1790 1791 1792
            return;
        }
        if (result) {
H
Hollokin 已提交
1793
            console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
1794
        } else {
H
Hollokin 已提交
1795
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1796 1797 1798
        }
    });
} catch (err) {
H
Hollokin 已提交
1799
    console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1800 1801 1802 1803
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1804 1805 1806

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

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

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

1811
**参数:**
W
wz 已提交
1812 1813 1814 1815 1816

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

1817 1818
**返回值:**  

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

H
Hollokin 已提交
1823 1824
**错误码:**

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

1827
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1828 1829
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1830
| 12800003 | input method client error. |
H
Hollokin 已提交
1831

1832 1833
**示例:**

W
wz 已提交
1834
```js
1835 1836
let length = 1;
try {
H
Hollokin 已提交
1837
    inputClient.deleteForward(length).then((result) => {
1838
        if (result) {
H
Hollokin 已提交
1839
            console.info('Succeeded in deleting forward. ');
1840
        } else {
H
Hollokin 已提交
1841
            console.error('Failed to delete Forward. ');
1842 1843
        }
    }).catch((err) => {
H
Hollokin 已提交
1844
        console.error('Failed to delete Forward: ' + JSON.stringify(err));
1845 1846
    });
} catch (err) {
H
Hollokin 已提交
1847
    console.error('Failed to delete Forward: ' + JSON.stringify(err));
1848
}
W
wz 已提交
1849 1850
```

H
Hollokin 已提交
1851
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1852 1853 1854

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

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

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

H
Hollokin 已提交
1859
**参数:**
Z
zhouyongfei 已提交
1860

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

H
Hollokin 已提交
1866 1867
**错误码:**

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

1870
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1871 1872
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1873
| 12800003 | input method client error. |
H
Hollokin 已提交
1874 1875

**示例:**
1876

W
wz 已提交
1877
```js
H
Hollokin 已提交
1878 1879
let length = 1;
try {
H
Hollokin 已提交
1880 1881 1882
    inputClient.deleteBackward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1883 1884 1885
            return;
        }
        if (result) {
H
Hollokin 已提交
1886
            console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
1887
        } else {
H
Hollokin 已提交
1888
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1889 1890 1891 1892 1893
        }
    });
} catch (err) {
    console.error('deleteBackward err: ' + JSON.stringify(err));
}
W
wz 已提交
1894
```
Z
zhouyongfei 已提交
1895

H
Hollokin 已提交
1896
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1897 1898

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

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

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

1904
**参数:**
B
bmeangel 已提交
1905

W
wz 已提交
1906 1907 1908
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1909

1910 1911
**返回值:** 

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

H
Hollokin 已提交
1916 1917
**错误码:**

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

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

1925
**示例:**
Z
zhouyongfei 已提交
1926

W
wz 已提交
1927
```js
1928
let length = 1;
H
Hollokin 已提交
1929
inputClient.deleteBackward(length).then((result) => {
1930
    if (result) {
H
Hollokin 已提交
1931
        console.info('Succeeded in deleting backward. ');
1932 1933 1934 1935
    } else {
        console.error('Failed to deleteBackward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
1936
    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
1937
});
W
wz 已提交
1938
```
Z
zhouyongfei 已提交
1939

H
Hollokin 已提交
1940
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1941 1942 1943

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

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

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

1948
**参数:**
Z
zhouyongfei 已提交
1949

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

H
Hollokin 已提交
1955 1956
**错误码:**

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

1959
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1960 1961
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1962
| 12800003 | input method client error. |
H
Hollokin 已提交
1963

1964 1965
**示例:**

W
wz 已提交
1966
```js
H
Hollokin 已提交
1967 1968 1969
inputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
1970 1971 1972
        return;
    }
    if (result) {
H
Hollokin 已提交
1973
        console.info('Succeeded in inserting text. ');
1974
    } else {
H
Hollokin 已提交
1975
        console.error('Failed to insertText. ');
1976
    }
W
wz 已提交
1977 1978
});
```
Z
zhouyongfei 已提交
1979

H
Hollokin 已提交
1980
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1981 1982

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

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

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

1988 1989
**参数:**

W
wz 已提交
1990 1991 1992
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
1993

1994
**返回值:**  
W
wz 已提交
1995 1996 1997

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

H
Hollokin 已提交
2000 2001
**错误码:**

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

2004
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2005 2006
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
2007
| 12800003 | input method client error. |
H
Hollokin 已提交
2008

2009
**示例:**
Z
zhouyongfei 已提交
2010

H
Hollokin 已提交
2011
```js
2012
try {
H
Hollokin 已提交
2013
    inputClient.insertText('test').then((result) => {
2014
        if (result) {
H
Hollokin 已提交
2015
            console.info('Succeeded in inserting text. ');
2016 2017 2018 2019
        } else {
            console.error('Failed to insertText. ');
        }
    }).catch((err) => {
H
Hollokin 已提交
2020
        console.error('Failed to insertText: ' + JSON.stringify(err));
2021 2022
    });
} catch (err) {
H
Hollokin 已提交
2023
    console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
2024 2025
}
```
W
wz 已提交
2026

H
Hollokin 已提交
2027
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2028 2029 2030

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

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

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

2035 2036
**参数:**

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

H
Hollokin 已提交
2041 2042
**错误码:**

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

2045
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2046
| -------- | -------------------------- |
2047
| 12800003 | input method client error. |
H
Hollokin 已提交
2048

2049 2050
**示例:**

H
Hollokin 已提交
2051
```js
H
Hollokin 已提交
2052 2053 2054
inputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
2055 2056
        return;
    }
H
Hollokin 已提交
2057 2058
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2059 2060
});
```
Z
zhouyongfei 已提交
2061

H
Hollokin 已提交
2062
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2063

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

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

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

2070 2071
**返回值:**

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

H
Hollokin 已提交
2076 2077
**错误码:**

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

2080
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2081
| -------- | -------------------------- |
2082
| 12800003 | input method client error. |
H
Hollokin 已提交
2083

2084 2085
**示例:**

H
Hollokin 已提交
2086
```js
H
Hollokin 已提交
2087
inputClient.getEditorAttribute().then((editorAttribute) => {
2088 2089 2090
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
2091
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
2092
});
H
Hollokin 已提交
2093
```
Z
zhaolinglan 已提交
2094

H
Hollokin 已提交
2095
### moveCursor<sup>9+</sup>
2096

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

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

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

H
Hollokin 已提交
2103
**参数:**
Z
zhaolinglan 已提交
2104

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

H
Hollokin 已提交
2110 2111
**错误码:**

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

2114
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2115
| -------- | -------------------------- |
2116
| 12800003 | input method client error. |
H
Hollokin 已提交
2117

H
Hollokin 已提交
2118
**示例:**
2119

H
Hollokin 已提交
2120
```js
H
Hollokin 已提交
2121
try {
H
Hollokin 已提交
2122 2123 2124
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
        if (err !== undefined) {
            console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2125 2126
            return;
        }
H
Hollokin 已提交
2127
        console.info('Succeeded in moving cursor.');
H
Hollokin 已提交
2128 2129
    });
} catch (err) {
H
Hollokin 已提交
2130
    console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2131
}
2132 2133
```

H
Hollokin 已提交
2134
### moveCursor<sup>9+</sup>
2135

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

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

H
update  
Hollokin 已提交
2140
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2141 2142 2143

**参数:**

H
Hollokin 已提交
2144 2145 2146
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
2147

H
Hollokin 已提交
2148
**返回值:**  
2149

H
Hollokin 已提交
2150 2151
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
2152
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2153

H
Hollokin 已提交
2154 2155
**错误码:**

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

2158
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2159
| -------- | -------------------------- |
2160
| 12800003 | input method client error. |
H
Hollokin 已提交
2161

2162 2163
**示例:**

H
Hollokin 已提交
2164
```js
2165
try {
H
Hollokin 已提交
2166 2167
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
        console.log('Succeeded in moving cursor.');
2168
    }).catch((err) => {
H
Hollokin 已提交
2169
        console.error('Failed to moveCursor: ' + JSON.stringify(err));
2170 2171
    });
} catch (err) {
H
Hollokin 已提交
2172
    console.log('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2173
}
H
Hollokin 已提交
2174
```
2175

Z
add doc  
zhaolinglan 已提交
2176 2177 2178 2179 2180 2181 2182 2183 2184 2185
### selectByRange<sup>10+</sup>

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

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

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2198
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2199 2200 2201 2202 2203 2204 2205

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2206
            console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2207 2208 2209 2210 2211
            return;
        }
        console.info('Succeeded in selecting by range.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2212
    console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225
}
```

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2226 2227
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
2228
| range  | [Range](#range10) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2243
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2244 2245 2246 2247 2248 2249 2250 2251

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end:1}).then(() => {
        console.log('Succeeded in selecting by range.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
2252
        console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2253 2254
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2255
    console.log('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268
}
```

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

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

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

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2281
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2282 2283 2284 2285 2286 2287 2288

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2289
            console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2290 2291 2292 2293 2294
            return;
        }
        console.info('Succeeded in selecting by movement.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2295
    console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2296 2297 2298 2299 2300
}
```

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

2301
selectByMovement(movement: Movement): Promise&lt;void&gt;
Z
add doc  
zhaolinglan 已提交
2302 2303 2304 2305 2306 2307 2308

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2309 2310
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2311
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2326
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2327 2328 2329 2330 2331 2332 2333 2334

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}).then(() => {
        console.log('Succeeded in selecting by movement.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
2335
        console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2336 2337
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2338
    console.log('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2339 2340 2341
}
```

Z
add doc  
zhaolinglan 已提交
2342 2343 2344 2345 2346 2347 2348 2349 2350 2351
### getTextIndexAtCursor<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2352 2353 2354
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2355 2356 2357 2358 2359 2360 2361

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
2362
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
2363 2364 2365 2366 2367 2368 2369
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
    if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2370
        console.error('Failed to getTextIndexAtCursor: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386
        return;
    }
    console.info('Succeeded in getTextIndexAtCursor: ' + index);
});
```

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

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

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

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

**返回值:**

Z
add doc  
zhaolinglan 已提交
2387 2388 2389
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2390 2391 2392 2393 2394 2395 2396

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
2397
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
2398 2399 2400 2401 2402 2403 2404 2405
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor().then((index) => {
    console.info('Succeeded in getTextIndexAtCursor: ' + index);
}).catch((err) => {
Z
add doc  
zhaolinglan 已提交
2406
    console.error('Failed to getTextIndexAtCursor: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2407 2408 2409
});
```

2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461
### sendExtendAction<sup>10+</sup>

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

发送扩展编辑操作,输入法应用调用该接口通知编辑控件完成相应扩展操作。使用callback异步回调。

**系统能力:** 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 {
    inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err) => {
        if (err !== undefined) {
            console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
            return;
        }
        console.info('Succeeded in sending extend action.');
    });
} catch(error) {
    console.error(`Failed to sendExtendAction: ${JSON.stringify(error)}`);
}
```

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

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

发送扩展编辑操作,输入法应用调用该接口通知编辑控件完成相应扩展操作。使用promise异步回调。

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
2462
| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492

**返回值:**

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

**错误码:**

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

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

**示例:**

```js
try {
    inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
        console.info('Succeeded in sending extend action.');
    }).catch((err) => {
        console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
    });
} catch(error) {
    console.error(`Failed to sendExtendAction: ${JSON.stringify(error)}`);
}
```

H
Hollokin 已提交
2493
## EditorAttribute
2494

H
Hollokin 已提交
2495
编辑框属性值。
2496

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

2499
| 名称         | 类型 | 可读 | 可写 | 说明               |
H
Hollokin 已提交
2500 2501 2502 2503
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

H
Hollokin 已提交
2504
## KeyEvent
H
Hollokin 已提交
2505 2506 2507

按键属性值。

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

2510
| 名称      | 类型 | 可读 | 可写 | 说明         |
H
Hollokin 已提交
2511 2512 2513 2514
| --------- | -------- | ---- | ---- | ------------ |
| keyCode   | number   | 是   | 否   | 按键的键值。 |
| keyAction | number   | 是   | 否   | 按键的状态。 |

H
update  
Hollokin 已提交
2515
## PanelFlag<sup>10+</sup>
2516 2517 2518 2519 2520 2521 2522 2523 2524 2525

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

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

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

H
update  
Hollokin 已提交
2526
## PanelType<sup>10+</sup>
2527 2528 2529 2530 2531 2532 2533 2534

输入法面板类型枚举。

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

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

H
update  
Hollokin 已提交
2537
## PanelInfo<sup>10+</sup>
2538

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

2541 2542 2543 2544 2545 2546 2547
输入法面板属性。

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

H
Hollokin 已提交
2548 2549
## TextInputClient<sup>(deprecated)</sup>

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

H
Hollokin 已提交
2554
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
2555 2556 2557 2558 2559

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

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

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

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

H
update  
Hollokin 已提交
2566
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2567 2568 2569 2570 2571 2572

**参数:**

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

**示例:**

H
Hollokin 已提交
2577 2578
```js
let length = 1;
H
Hollokin 已提交
2579 2580 2581
textInputClient.getForward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
2582 2583
        return;
    }
H
Hollokin 已提交
2584
    console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
2585 2586
});
```
2587

H
Hollokin 已提交
2588
### getForward<sup>(deprecated)</sup>
2589 2590 2591

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

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

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

H
update  
Hollokin 已提交
2598
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2614
```js
2615
let length = 1;
H
Hollokin 已提交
2616 2617
textInputClient.getForward(length).then((text) => {
    console.info('Succeeded in getting forward, text: ' + text);
2618
}).catch((err) => {
H
Hollokin 已提交
2619
    console.error('Failed to getForward: ' + JSON.stringify(err));
2620
});
H
Hollokin 已提交
2621
```
2622

H
Hollokin 已提交
2623
### getBackward<sup>(deprecated)</sup>
2624 2625 2626

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

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

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

H
update  
Hollokin 已提交
2633
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2634 2635 2636 2637 2638 2639

**参数:**

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

**示例:**

H
Hollokin 已提交
2644 2645
```js
let length = 1;
H
Hollokin 已提交
2646 2647 2648
textInputClient.getBackward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getBackward: ' + JSON.stringify(err));
H
Hollokin 已提交
2649 2650
        return;
    }
H
Hollokin 已提交
2651
    console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
2652 2653
});
```
2654

H
Hollokin 已提交
2655
### getBackward<sup>(deprecated)</sup>
2656 2657 2658

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

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

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

H
update  
Hollokin 已提交
2665
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2681
```js
2682
let length = 1;
H
Hollokin 已提交
2683 2684
textInputClient.getBackward(length).then((text) => {
    console.info('Succeeded in getting backward: ' + JSON.stringify(text));
2685
}).catch((err) => {
H
Hollokin 已提交
2686
    console.error('Failed to getBackward: ' + JSON.stringify(err));
2687
});
H
Hollokin 已提交
2688
```
2689

H
Hollokin 已提交
2690
### deleteForward<sup>(deprecated)</sup>
2691 2692 2693

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

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

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

H
update  
Hollokin 已提交
2700
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2701 2702 2703 2704 2705 2706

**参数:**

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

**示例:**

H
Hollokin 已提交
2711 2712
```js
let length = 1;
H
Hollokin 已提交
2713 2714 2715
textInputClient.deleteForward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to deleteForward: ' + JSON.stringify(err));
H
Hollokin 已提交
2716 2717 2718
        return;
    }
    if (result) {
H
Hollokin 已提交
2719
        console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
2720
    } else {
H
Hollokin 已提交
2721
        console.error('Failed to deleteForward. ');
H
Hollokin 已提交
2722 2723 2724
    }
});
```
H
Hollokin 已提交
2725

H
Hollokin 已提交
2726
### deleteForward<sup>(deprecated)</sup>
2727 2728 2729

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

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

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

H
update  
Hollokin 已提交
2736
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747

**参数:**

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

**返回值:**  

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

**示例:**

```js
2753
let length = 1;
H
Hollokin 已提交
2754
textInputClient.deleteForward(length).then((result) => {
2755
    if (result) {
H
Hollokin 已提交
2756
        console.info('Succeeded in deleting forward. ');
2757 2758 2759 2760
    } else {
        console.error('Failed to delete forward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2761
    console.error('Failed to delete forward: ' + JSON.stringify(err));
2762
});
2763 2764
```

H
Hollokin 已提交
2765
### deleteBackward<sup>(deprecated)</sup>
2766 2767 2768

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

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

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

H
update  
Hollokin 已提交
2775
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2776 2777 2778 2779 2780 2781

  **参数:**

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

  **示例:**

```js
H
Hollokin 已提交
2787
let length = 1;
H
Hollokin 已提交
2788 2789 2790
textInputClient.deleteBackward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to delete backward: ' + JSON.stringify(err));
H
Hollokin 已提交
2791 2792 2793
        return;
    }
    if (result) {
H
Hollokin 已提交
2794
        console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
2795
    } else {
H
Hollokin 已提交
2796
        console.error('Failed to deleteBackward. ');
H
Hollokin 已提交
2797 2798
    }
});
2799 2800
```

H
Hollokin 已提交
2801
### deleteBackward<sup>(deprecated)</sup>
2802 2803 2804

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

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

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

H
update  
Hollokin 已提交
2811
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822

**参数:**

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

**返回值:** 

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

**示例:**

```js
2828
let length = 1;
H
Hollokin 已提交
2829
textInputClient.deleteBackward(length).then((result) => {
2830
    if (result) {
H
Hollokin 已提交
2831
        console.info('Succeeded in deleting backward. ');
2832 2833 2834 2835
    } else {
        console.error('Failed to deleteBackward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2836
    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
2837
});
2838
```
H
Hollokin 已提交
2839
### sendKeyFunction<sup>(deprecated)</sup>
2840

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

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

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

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

H
Hollokin 已提交
2851
  **参数:**
2852 2853 2854

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

H
Hollokin 已提交
2858
  **示例:**
2859 2860

```js
2861
let action = 1;
H
Hollokin 已提交
2862 2863 2864
textInputClient.sendKeyFunction(action, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
2865 2866 2867
        return;
    }
    if (result) {
H
Hollokin 已提交
2868
        console.info('Succeeded in sending key function. ');
2869
    } else {
H
Hollokin 已提交
2870
        console.error('Failed to sendKeyFunction. ');
2871 2872 2873 2874
    }
});
```

H
Hollokin 已提交
2875
### sendKeyFunction<sup>(deprecated)</sup>
2876

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

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

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

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

**参数:**

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

H
Hollokin 已提交
2893
**返回值:**
2894 2895 2896

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

**示例:**

H
Hollokin 已提交
2901
```js
2902
let action = 1;
H
Hollokin 已提交
2903
textInputClient.sendKeyFunction(action).then((result) => {
2904
    if (result) {
H
Hollokin 已提交
2905
        console.info('Succeeded in sending key function. ');
2906 2907 2908 2909
    } else {
        console.error('Failed to sendKeyFunction. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2910
    console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
2911
});
H
Hollokin 已提交
2912
```
2913

H
Hollokin 已提交
2914
### insertText<sup>(deprecated)</sup>
2915

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

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

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

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

**参数:**

H
Hollokin 已提交
2928 2929 2930
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
2931
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
2932 2933 2934

**示例:**

H
Hollokin 已提交
2935
```js
H
Hollokin 已提交
2936 2937 2938
textInputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
2939 2940 2941
        return;
    }
    if (result) {
H
Hollokin 已提交
2942
        console.info('Succeeded in inserting text. ');
H
Hollokin 已提交
2943
    } else {
H
Hollokin 已提交
2944
        console.error('Failed to insertText. ');
H
Hollokin 已提交
2945 2946 2947
    }
});
```
2948

H
Hollokin 已提交
2949
### insertText<sup>(deprecated)</sup>
2950

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

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

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

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

**参数:**

H
Hollokin 已提交
2963 2964 2965 2966 2967 2968 2969 2970
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2971
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
2972 2973 2974 2975

**示例:**

```js
H
Hollokin 已提交
2976
textInputClient.insertText('test').then((result) => {
2977
    if (result) {
H
Hollokin 已提交
2978
        console.info('Succeeded in inserting text. ');
2979 2980 2981 2982
    } else {
        console.error('Failed to insertText. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2983
    console.error('Failed to insertText: ' + JSON.stringify(err));
2984
});
Z
zhaolinglan 已提交
2985 2986
```

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

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
3007
```js
H
Hollokin 已提交
3008 3009 3010
textInputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
3011
        return;
H
Hollokin 已提交
3012
    }
H
Hollokin 已提交
3013 3014
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
3015 3016
});
```
Z
zhaolinglan 已提交
3017

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

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

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

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

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

H
Hollokin 已提交
3030
**返回值:**
Z
zhouyongfei 已提交
3031

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

H
Hollokin 已提交
3036
**示例:**
Z
zhouyongfei 已提交
3037

H
Hollokin 已提交
3038
```js
H
Hollokin 已提交
3039
textInputClient.getEditorAttribute().then((editorAttribute) => {
3040 3041 3042
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
3043
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
3044
});
3045
```
H
update  
Hollokin 已提交
3046
<!--no_check-->