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

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

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

## 导入模块

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

### off('inputStart')

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H
Hollokin 已提交
244
## InputMethodAbility
245

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**错误码:**

| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
505
| 12800004   | not an input method extension. |
506 507 508 509 510

**示例:**

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

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

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

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

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

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

**参数:**

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

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

**错误码:**

| 错误码ID   | 错误信息                       |
| ---------- | ----------------------------- |
553
| 12800004   | not an input method extension. |
554 555 556 557 558

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Z
zhaolinglan 已提交
729
### on('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
730 731 732 733 734 735 736 737 738

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

订阅硬键盘(即物理键盘)事件。使用callback异步回调。

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

**参数:**

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

**示例:**

```js
inputMethodEngine.getKeyboardDelegate().on('keyEvent', (keyEvent) => {
  console.log('inputMethodEngine keyEvent.action:' + JSON.stringify(keyEvent.action));
  console.log('inputMethodEngine keyEvent.key.code:' + JSON.stringify(keyEvent.key.code));
  console.log('inputMethodEngine keyEvent.ctrlKey:' + JSON.stringify(keyEvent.ctrlKey));
  return true;
});
```

Z
zhaolinglan 已提交
755
### off('keyEvent')<sup>10+</sup>
Z
zhaolinglan 已提交
756 757 758 759 760 761 762 763 764

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

取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。

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

**参数:**

Z
zhaolinglan 已提交
765 766 767
| 参数名   | 类型     | 必填 | 说明                                                         |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| type     | string   | 是   | 设置监听类型。<br/>-&nbsp;type为'keyEvent',表示取消订阅硬键盘按键事件。 |
Z
zhaolinglan 已提交
768
| callback | function | 否   | 回调函数,入参为按键事件信息,返回值类型为布尔类型。<br/>-&nbsp;入参按键事件信息的数据类型为[InputKeyEvent](js-apis-keyevent.md#KeyEvent)。<br/>-&nbsp;若按键事件被事件订阅者消费,则callback应返回true,否则返回false。<br/>-&nbsp;可选参数,若填写表示不再回调此函数,若不填写则取消注册该事件所有回调函数。 |
Z
zhaolinglan 已提交
769 770 771 772 773

**示例:**

```js
inputMethodEngine.getKeyboardDelegate().off('keyEvent', (keyEvent) => {
Z
zhaolinglan 已提交
774
  console.log('This is a callback function which will be deregistered.');
Z
zhaolinglan 已提交
775 776
  return true;
});
Z
zhaolinglan 已提交
777
inputMethodEngine.getKeyboardDelegate().off('keyEvent');
Z
zhaolinglan 已提交
778 779
```

Z
zhouyongfei 已提交
780 781
### on('cursorContextChange')

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

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

786
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
787

788
**参数:**
Z
zhouyongfei 已提交
789

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

795
**示例:**
W
wz 已提交
796 797

```js
H
Hollokin 已提交
798
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
799 800 801
  console.log('inputMethodEngine cursorContextChange x:' + x);
  console.log('inputMethodEngine cursorContextChange y:' + y);
  console.log('inputMethodEngine cursorContextChange height:' + height);
W
wz 已提交
802 803
});
```
Z
zhouyongfei 已提交
804 805 806

### off('cursorContextChange')

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

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

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

813
  **参数:**
Z
zhouyongfei 已提交
814

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


821
  **示例:**
Z
zhouyongfei 已提交
822

W
wz 已提交
823
```js
H
Hollokin 已提交
824
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
825
  console.log('delete cursorContextChange notification.');
826
});
W
wz 已提交
827
```
Z
zhouyongfei 已提交
828 829
### on('selectionChange')

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

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

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

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

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

H
Hollokin 已提交
843
**示例:**
W
wz 已提交
844 845

```js
H
Hollokin 已提交
846
inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
847 848 849 850
  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 已提交
851 852
});
```
Z
zhouyongfei 已提交
853 854 855

### off('selectionChange')

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

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

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

862
**参数:**
Z
zhouyongfei 已提交
863

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

869
**示例:**
Z
zhouyongfei 已提交
870

W
wz 已提交
871
```js
H
Hollokin 已提交
872
inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
873
  console.log('delete selectionChange notification.');
874
});
W
wz 已提交
875
```
Z
zhouyongfei 已提交
876 877 878 879


### on('textChange')

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

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

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

H
Hollokin 已提交
886
**参数:**
Z
zhouyongfei 已提交
887

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

H
Hollokin 已提交
893
**示例:**
Z
zhouyongfei 已提交
894

W
wz 已提交
895
```js
H
Hollokin 已提交
896
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
897
  console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
898 899
});
```
Z
zhouyongfei 已提交
900 901 902

### off('textChange')

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

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

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

909
**参数:**
Z
zhouyongfei 已提交
910

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

916
**示例:**
Z
zhouyongfei 已提交
917

W
wz 已提交
918
```js
H
Hollokin 已提交
919
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
920
  console.log('delete textChange notification. text:' + text);
921
});
W
wz 已提交
922
```
Z
zhouyongfei 已提交
923

H
update  
Hollokin 已提交
924
## Panel<sup>10+</sup>
925

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

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

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

H
update  
Hollokin 已提交
932
为当前面板加载具体页面内容,使用callback异步回调。
933 934 935 936 937 938 939 940

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
H
update  
Hollokin 已提交
941
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
942 943 944 945 946 947

**示例:**

```js
try {
  panel.setUiContent('pages/page2/page2', (err) => {
H
update  
Hollokin 已提交
948
    if (err) {
H
Hollokin 已提交
949
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
950 951
      return;
    }
H
Hollokin 已提交
952
    console.log('Succeeded in setting the content.');
953
  });
H
Hollokin 已提交
954 955
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
956 957 958 959 960
}
```

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

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

H
update  
Hollokin 已提交
963
为当前面板加载具体页面内容,使用Promise异步回调。
964 965 966 967 968 969 970 971 972 973 974 975 976

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
977
| Promise\<void> | 无返回结果的Promise对象。  |
978 979 980 981 982 983

**示例:**

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

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

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

H
update  
Hollokin 已提交
998
为当前面板加载与LocalStorage相关联的具体页面内容,使用callback异步回调。
999 1000 1001 1002 1003 1004 1005 1006

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| path | string | 是   | 设置加载页面的路径。 |
1007
| storage | [LocalStorage](../arkui-ts/ts-state-management.md#localstorage9) | 是   | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。|
H
update  
Hollokin 已提交
1008
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
1009 1010 1011 1012 1013 1014 1015 1016

**示例:**

```js
let storage = new LocalStorage();
storage.setOrCreate('storageSimpleProp',121);
try {
  panel.setUiContent('pages/page2/page2', storage, (err) => {
H
update  
Hollokin 已提交
1017
    if (err) {
H
Hollokin 已提交
1018
      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1019 1020
      return;
    }
H
Hollokin 已提交
1021
    console.log('Succeeded in setting the content.');
1022
  });
H
Hollokin 已提交
1023 1024
} catch (err) {
  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1025 1026 1027 1028 1029
}
```

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

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

H
update  
Hollokin 已提交
1032
为当前面板加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。
1033 1034 1035 1036 1037 1038 1039 1040

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1047
| Promise\<void> | 无返回结果的Promise对象。  |
1048 1049 1050 1051 1052 1053 1054 1055

**示例:**

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

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

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

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

H
update  
Hollokin 已提交
1072
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1073 1074 1075 1076 1077 1078 1079

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1080 1081 1082
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板大小改变成功,err为undefined,否则err为错误对象。 |
1083 1084 1085 1086 1087 1088

**示例:**

```js
try {
  panel.resize(500, 1000, (err) => {
H
update  
Hollokin 已提交
1089
    if (err) {
H
Hollokin 已提交
1090
      console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1091 1092
      return;
    }
H
Hollokin 已提交
1093
    console.log('Succeeded in changing the panel size.');
1094
  });
H
Hollokin 已提交
1095 1096
} catch (err) {
  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1097 1098 1099 1100 1101
}
```

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

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

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

H
update  
Hollokin 已提交
1106
面板存在大小限制,面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的二分之一。
1107 1108 1109 1110 1111 1112 1113

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1114 1115
| width | number | 是   | 目标面板的宽度,单位为px。|
| height | number | 是   | 目标面板的高度,单位为px。|
1116 1117 1118 1119 1120

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
Z
zengyawen 已提交
1121
| Promise\<void> | 无返回结果的Promise对象。  |
1122 1123 1124 1125 1126 1127

**示例:**

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

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

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

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

1144 1145 1146 1147 1148 1149 1150 1151
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1152 1153 1154
| x | number | 是   | 面板在x轴方向移动的值,值为正表示右移,单位为px。|
| y | number | 是   | 面板在y轴方向移动的值,值为正表示下移,单位为px。|
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板位置移动成功,err为undefined,否则err为错误对象。 |
1155 1156 1157 1158 1159

**示例:**

```js
try {
H
update  
Hollokin 已提交
1160
  panel.moveTo(300, 300, (err) =>{
H
update  
Hollokin 已提交
1161
    if (err) {
H
Hollokin 已提交
1162
      console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1163 1164
      return;
    }
H
Hollokin 已提交
1165
    console.log('Succeeded in moving the panel.');
1166
  });
H
Hollokin 已提交
1167 1168
} catch (err) {
    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1169 1170 1171 1172 1173
}
```

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

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

H
Hollokin 已提交
1176
移动面板位置。使用promise异步回调。
H
换行  
Hollokin 已提交
1177

1178 1179 1180 1181 1182 1183 1184 1185
对FLG_FIXED状态的panel不产生实际移动效果。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1186 1187
| x | number | 是   | 面板在x轴方向移动的值,值为正表示右移,单位为px。|
| y | number | 是   | 面板在y轴方向移动的值,值为正表示下移,单位为px。|
1188 1189 1190 1191 1192

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
Z
zengyawen 已提交
1193
| Promise\<void> | 无返回结果的Promise对象。  |
1194 1195 1196 1197 1198

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

1240
显示当前面板,使用promise异步回调。
1241 1242 1243 1244 1245 1246 1247

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

**返回值:**

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

**示例:**

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

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

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

H
update  
Hollokin 已提交
1265
隐藏当前面板,使用callback异步回调。
1266 1267 1268 1269 1270 1271 1272

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1273
| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1274 1275 1276 1277 1278

**示例:**

```js
panel.hide((err) => {
H
update  
Hollokin 已提交
1279
  if (err) {
H
Hollokin 已提交
1280
    console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1281 1282
    return;
  }
H
Hollokin 已提交
1283
  console.log('Succeeded in hiding the panel.');
1284 1285 1286 1287 1288
});
```

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

H
update  
Hollokin 已提交
1289
hide(): Promise\<void>
1290

1291
隐藏当前面板,使用promise异步回调。
1292 1293 1294 1295 1296 1297 1298

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1299
| Promise\<void> | 无返回结果的Promise对象。  |
1300 1301 1302 1303 1304

**示例:**

```js
let promise = panel.hide();
H
update  
Hollokin 已提交
1305
promise.then(() => {
H
Hollokin 已提交
1306
  console.log('Succeeded in hiding the panel.');
H
update  
Hollokin 已提交
1307
}).catch((err) =>{
H
Hollokin 已提交
1308
  console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1309 1310 1311
});
```

1312
### on('show')<sup>10+</sup>
1313

1314
on(type: 'show', callback: () => void): void
1315

1316
监听当前面板显示状态,使用callback异步回调。
1317 1318 1319 1320 1321 1322 1323

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
1324
| type | string | 是 | 监听当前面板的状态类型。 <br/>- type为`show`表示显示状态。 |
1325 1326 1327 1328 1329 1330
| callback | () => void | 是   | 回调函数。 |

**示例:**

```js
panel.on('show', () => {
H
Hollokin 已提交
1331
  console.log('Panel is showing.');
1332 1333 1334
});
```

1335
### on('hide')<sup>10+</sup>
1336

1337
on(type: 'hide', callback: () => void): void
1338

1339
监听当前面板隐藏状态,使用callback异步回调。
1340 1341 1342 1343 1344 1345 1346

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370
| type | string | 是 | 监听当前面板的状态类型。 <br/>- type为`hide`表示隐藏状态。 |
| callback | () => void | 是   | 回调函数。 |

**示例:**

```js
panel.on('hide', () => {
  console.log('Panel is hiding.');
});
```

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

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

取消监听当前面板显示状态,使用callback异步回调。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 要取消监听的当前面板状态类型。 <br/>- type为`show`表示显示状态。 |
1371 1372 1373 1374 1375 1376 1377 1378
| callback | () => void | 否   | 回调函数。 |

**示例:**

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

1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399
### off('hide')<sup>10+</sup>

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

取消监听当前面板隐藏状态,使用callback异步回调。

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
| type | string | 是 | 要取消监听的当前面板状态类型。 <br/>- type为`hide`表示隐藏状态。 |
| callback | () => void | 否   | 回调函数。 |

**示例:**

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

1400 1401 1402 1403
### changeFlag<sup>10+</sup>

changeFlag(flag: PanelFlag): void

H
update  
Hollokin 已提交
1404
改变面板状态为固定态或者悬浮态。仅对SOFT_KEYBOARD类型生效。
1405 1406 1407 1408 1409 1410 1411

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
H
update  
Hollokin 已提交
1412
| flag | [PanelFlag](#panelflag10) | 是 | 要切换到的面板状态类型。 |
1413 1414 1415 1416

**示例:**

```js
H
Hollokin 已提交
1417
let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1418 1419 1420
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1421
## KeyboardController
Z
zhouyongfei 已提交
1422

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

H
Hollokin 已提交
1425
### hide<sup>9+</sup>
H
Hollokin 已提交
1426

H
Hollokin 已提交
1427
hide(callback: AsyncCallback&lt;void&gt;): void
H
Hollokin 已提交
1428 1429 1430

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

H
update  
Hollokin 已提交
1431
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1432 1433 1434 1435 1436

**参数:**

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

H
Hollokin 已提交
1439 1440
**错误码:**

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

1443
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1444
| -------- | -------------------------- |
1445
| 12800003 | input method client error. |
H
Hollokin 已提交
1446

H
Hollokin 已提交
1447 1448 1449
**示例:**

```js
H
Hollokin 已提交
1450
keyboardController.hide((err) => {
1451
  if (err) {
H
Hollokin 已提交
1452
    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1453 1454 1455
    return;
  }
  console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
1456 1457 1458 1459 1460 1461 1462 1463 1464
});
```

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

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

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

H
update  
Hollokin 已提交
1465
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1466 1467 1468 1469 1470

**返回值:**

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

H
Hollokin 已提交
1473 1474
**错误码:**

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

1477
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1478
| -------- | -------------------------- |
1479
| 12800003 | input method client error. |
H
Hollokin 已提交
1480

H
Hollokin 已提交
1481 1482 1483
**示例:**

```js
H
Hollokin 已提交
1484
keyboardController.hide().then(() => {
H
Hollokin 已提交
1485
  console.log('Succeeded in hiding keyboard.');
1486
}).catch((err) => {
H
Hollokin 已提交
1487
  console.log(`Failed to hide: ${JSON.stringify(err)}`);
1488
});
H
Hollokin 已提交
1489 1490 1491
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1492 1493 1494

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

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

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

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

1503
**参数:**
Z
refresh  
zhouyongfei 已提交
1504

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

1509
**示例:**
Z
zhouyongfei 已提交
1510

1511
```js
H
Hollokin 已提交
1512
keyboardController.hideKeyboard((err) => {
1513
  if (err) {
H
Hollokin 已提交
1514
    console.error(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1515 1516 1517
    return;
  }
  console.log('Succeeded in hiding keyboard.');
1518
});
Z
zhouyongfei 已提交
1519 1520
```

H
Hollokin 已提交
1521
### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1522 1523 1524

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

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

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

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

1533
**返回值:**
Z
refresh  
zhouyongfei 已提交
1534

1535 1536
| 类型             | 说明                      |
| ---------------- | ------------------------- |
H
Hollokin 已提交
1537
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
1538

1539
**示例:**
Z
zhouyongfei 已提交
1540

1541
```js
H
Hollokin 已提交
1542
keyboardController.hideKeyboard().then(() => {
H
Hollokin 已提交
1543
  console.log('Succeeded in hiding keyboard.');
1544
}).catch((err) => {
H
Hollokin 已提交
1545
  console.log(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1546
});
Z
zhouyongfei 已提交
1547 1548
```

1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
## 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 已提交
1596
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1597

H
update  
Hollokin 已提交
1598
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
1599 1600 1601 1602 1603

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

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

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

H
update  
Hollokin 已提交
1606
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1607 1608 1609 1610 1611

  **参数:**

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

H
Hollokin 已提交
1615 1616
**错误码:**

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

1619
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1620
| -------- | -------------------------- |
1621
| 12800003 | input method client error. |
H
Hollokin 已提交
1622 1623

 **示例:**
H
Hollokin 已提交
1624 1625

```js
1626
let action = 1;
H
Hollokin 已提交
1627
try {
1628 1629
  inputClient.sendKeyFunction(action, (err, result) => {
    if (err) {
H
Hollokin 已提交
1630
      console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1631 1632 1633
      return;
    }
    if (result) {
H
Hollokin 已提交
1634
      console.log('Succeeded in sending key function.');
1635
    } else {
H
Hollokin 已提交
1636
      console.error('Failed to sendKeyFunction.');
1637 1638
    }
  });
H
Hollokin 已提交
1639
} catch (err) {
H
Hollokin 已提交
1640
  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1641 1642 1643 1644 1645
}
```

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

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1656
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1657 1658 1659 1660 1661

**返回值:**

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

H
Hollokin 已提交
1664 1665
**错误码:**

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

1668
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1669
| -------- | -------------------------- |
1670
| 12800003 | input method client error. |
H
Hollokin 已提交
1671

H
Hollokin 已提交
1672 1673 1674
**示例:**

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

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1692 1693 1694

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

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

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

1699
**参数:**
Z
zhouyongfei 已提交
1700

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

H
Hollokin 已提交
1706 1707
**错误码:**

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

1710
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1711
| -------- | ------------------------------ |
1712
| 12800003 | input method client error.     |
H
Hollokin 已提交
1713 1714
| 12800006 | Input method controller error. |

1715 1716
**示例:**

H
Hollokin 已提交
1717 1718 1719
```js
let length = 1;
try {
1720 1721
  inputClient.getForward(length, (err, text) => {
    if (err) {
H
Hollokin 已提交
1722
      console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1723 1724 1725 1726
      return;
    }
    console.log('Succeeded in getting forward, text: ' + text);
  });
H
Hollokin 已提交
1727
} catch (err) {
H
Hollokin 已提交
1728
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1729 1730
}
```
Z
zhouyongfei 已提交
1731

H
Hollokin 已提交
1732
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1733 1734 1735

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

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

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

1740
**参数:**
Z
zhouyongfei 已提交
1741

W
wz 已提交
1742 1743 1744
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1745

1746 1747
**返回值:**

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

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

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

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

1761 1762
**示例:**

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

H
Hollokin 已提交
1776
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1777 1778 1779

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

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

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

1784
**参数:**
Z
zhouyongfei 已提交
1785

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

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

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

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

1800 1801
**示例:**

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

H
Hollokin 已提交
1817
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1818 1819 1820

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

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

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

1825
**参数:**
Z
zhouyongfei 已提交
1826

W
wz 已提交
1827 1828 1829
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1830

1831 1832
**返回值:**

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

H
Hollokin 已提交
1837 1838
**错误码:**

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

1841
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1842
| -------- | ------------------------------ |
1843
| 12800003 | input method client error.     |
H
Hollokin 已提交
1844 1845
| 12800006 | Input method controller error. |

1846 1847
**示例:**

H
Hollokin 已提交
1848
```js
1849 1850
let length = 1;
try {
1851
  inputClient.getBackward(length).then((text) => {
H
Hollokin 已提交
1852
    console.log('Succeeded in getting backward, text: ' + text);
1853
  }).catch((err) => {
H
Hollokin 已提交
1854
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
1855 1856
  });
} catch (err) {
H
Hollokin 已提交
1857
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1858 1859
}
```
Z
zhouyongfei 已提交
1860

H
Hollokin 已提交
1861
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1862 1863 1864

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

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

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

1869
**参数:**
Z
zhouyongfei 已提交
1870

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

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

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

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

1885 1886
**示例:**

H
Hollokin 已提交
1887 1888 1889
```js
let length = 1;
try {
1890 1891
  inputClient.deleteForward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
1892
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1893 1894 1895
      return;
    }
    if (result) {
H
Hollokin 已提交
1896
      console.log('Succeeded in deleting forward.');
1897
    } else {
H
Hollokin 已提交
1898
      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1899 1900
    }
  });
H
Hollokin 已提交
1901
} catch (err) {
H
Hollokin 已提交
1902
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1903 1904 1905 1906
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1907 1908 1909

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

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

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

1914
**参数:**
W
wz 已提交
1915 1916 1917 1918 1919

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

1920 1921
**返回值:**  

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

H
Hollokin 已提交
1926 1927
**错误码:**

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

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

1935 1936
**示例:**

W
wz 已提交
1937
```js
1938 1939
let length = 1;
try {
1940 1941
  inputClient.deleteForward(length).then((result) => {
    if (result) {
H
Hollokin 已提交
1942
      console.log('Succeeded in deleting forward.');
1943
    } else {
H
Hollokin 已提交
1944
      console.error('Failed to delete Forward.');
1945 1946
    }
  }).catch((err) => {
H
Hollokin 已提交
1947
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1948 1949
  });
} catch (err) {
H
Hollokin 已提交
1950
  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
1951
}
W
wz 已提交
1952 1953
```

H
Hollokin 已提交
1954
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1955 1956 1957

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

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

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

H
Hollokin 已提交
1962
**参数:**
Z
zhouyongfei 已提交
1963

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

H
Hollokin 已提交
1969 1970
**错误码:**

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

1973
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1974 1975
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1976
| 12800003 | input method client error. |
H
Hollokin 已提交
1977 1978

**示例:**
1979

W
wz 已提交
1980
```js
H
Hollokin 已提交
1981 1982
let length = 1;
try {
1983 1984
  inputClient.deleteBackward(length, (err, result) => {
    if (err) {
H
Hollokin 已提交
1985
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
1986 1987 1988
      return;
    }
    if (result) {
H
Hollokin 已提交
1989
      console.log('Succeeded in deleting backward.');
1990
    } else {
H
Hollokin 已提交
1991
      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
1992 1993
    }
  });
H
Hollokin 已提交
1994
} catch (err) {
1995
  console.error('deleteBackward err: ' + JSON.stringify(err));
H
Hollokin 已提交
1996
}
W
wz 已提交
1997
```
Z
zhouyongfei 已提交
1998

H
Hollokin 已提交
1999
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
2000 2001

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

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

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

2007
**参数:**
B
bmeangel 已提交
2008

W
wz 已提交
2009 2010 2011
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
2012

2013 2014
**返回值:** 

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

H
Hollokin 已提交
2019 2020
**错误码:**

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

2023
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2024 2025
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
2026
| 12800003 | input method client error. |
H
Hollokin 已提交
2027

2028
**示例:**
Z
zhouyongfei 已提交
2029

W
wz 已提交
2030
```js
2031
let length = 1;
H
Hollokin 已提交
2032
inputClient.deleteBackward(length).then((result) => {
2033
  if (result) {
H
Hollokin 已提交
2034
    console.log('Succeeded in deleting backward.');
2035
  } else {
H
Hollokin 已提交
2036
    console.error('Failed to deleteBackward.');
2037
  }
2038
}).catch((err) => {
H
Hollokin 已提交
2039
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2040
});
W
wz 已提交
2041
```
Z
zhouyongfei 已提交
2042

H
Hollokin 已提交
2043
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
2044 2045 2046

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

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

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

2051
**参数:**
Z
zhouyongfei 已提交
2052

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

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

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

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

2067 2068
**示例:**

W
wz 已提交
2069
```js
H
Hollokin 已提交
2070
inputClient.insertText('test', (err, result) => {
2071
  if (err) {
H
Hollokin 已提交
2072
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2073 2074 2075
    return;
  }
  if (result) {
H
Hollokin 已提交
2076
    console.log('Succeeded in inserting text.');
2077
  } else {
H
Hollokin 已提交
2078
    console.error('Failed to insertText.');
2079
  }
W
wz 已提交
2080 2081
});
```
Z
zhouyongfei 已提交
2082

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

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

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

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

2091 2092
**参数:**

W
wz 已提交
2093 2094 2095
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
2096

2097
**返回值:**  
W
wz 已提交
2098 2099 2100

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

H
Hollokin 已提交
2103 2104
**错误码:**

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

2107
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2108 2109
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
2110
| 12800003 | input method client error. |
H
Hollokin 已提交
2111

2112
**示例:**
Z
zhouyongfei 已提交
2113

H
Hollokin 已提交
2114
```js
2115
try {
2116 2117
  inputClient.insertText('test').then((result) => {
    if (result) {
H
Hollokin 已提交
2118
      console.log('Succeeded in inserting text.');
2119
    } else {
H
Hollokin 已提交
2120
      console.error('Failed to insertText.');
2121 2122
    }
  }).catch((err) => {
H
Hollokin 已提交
2123
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2124 2125
  });
} catch (err) {
H
Hollokin 已提交
2126
  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2127 2128
}
```
W
wz 已提交
2129

H
Hollokin 已提交
2130
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2131 2132 2133

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

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

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

2138 2139
**参数:**

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

H
Hollokin 已提交
2144 2145
**错误码:**

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

2148
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2149
| -------- | -------------------------- |
2150
| 12800003 | input method client error. |
H
Hollokin 已提交
2151

2152 2153
**示例:**

H
Hollokin 已提交
2154
```js
H
Hollokin 已提交
2155
inputClient.getEditorAttribute((err, editorAttribute) => {
2156
  if (err) {
H
Hollokin 已提交
2157
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2158 2159 2160 2161
    return;
  }
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2162 2163
});
```
Z
zhouyongfei 已提交
2164

H
Hollokin 已提交
2165
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2166

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

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

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

2173 2174
**返回值:**

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

H
Hollokin 已提交
2179 2180
**错误码:**

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

2183
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2184
| -------- | -------------------------- |
2185
| 12800003 | input method client error. |
H
Hollokin 已提交
2186

2187 2188
**示例:**

H
Hollokin 已提交
2189
```js
H
Hollokin 已提交
2190
inputClient.getEditorAttribute().then((editorAttribute) => {
H
Hollokin 已提交
2191 2192
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2193
}).catch((err) => {
H
Hollokin 已提交
2194
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2195
});
H
Hollokin 已提交
2196
```
Z
zhaolinglan 已提交
2197

H
Hollokin 已提交
2198
### moveCursor<sup>9+</sup>
2199

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

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

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

H
Hollokin 已提交
2206
**参数:**
Z
zhaolinglan 已提交
2207

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

H
Hollokin 已提交
2213 2214
**错误码:**

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

2217
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2218
| -------- | -------------------------- |
2219
| 12800003 | input method client error. |
H
Hollokin 已提交
2220

H
Hollokin 已提交
2221
**示例:**
2222

H
Hollokin 已提交
2223
```js
H
Hollokin 已提交
2224
try {
2225 2226
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
    if (err) {
H
Hollokin 已提交
2227
      console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2228 2229
      return;
    }
H
Hollokin 已提交
2230
    console.log('Succeeded in moving cursor.');
2231
  });
H
Hollokin 已提交
2232
} catch (err) {
H
Hollokin 已提交
2233
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2234
}
2235 2236
```

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

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

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

H
update  
Hollokin 已提交
2243
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2244 2245 2246

**参数:**

H
Hollokin 已提交
2247 2248 2249
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
2250

H
Hollokin 已提交
2251
**返回值:**  
2252

H
Hollokin 已提交
2253 2254
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
2255
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2256

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

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

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

2265 2266
**示例:**

H
Hollokin 已提交
2267
```js
2268
try {
2269 2270 2271
  inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
    console.log('Succeeded in moving cursor.');
  }).catch((err) => {
H
Hollokin 已提交
2272
    console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2273
  });
2274
} catch (err) {
2275
  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2276
}
H
Hollokin 已提交
2277
```
2278

Z
add doc  
zhaolinglan 已提交
2279 2280 2281 2282 2283 2284 2285 2286 2287 2288
### selectByRange<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2289 2290
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
2291
| range    | [Range](#range10) | 是   | 选中文本的范围。                                             |
Z
add doc  
zhaolinglan 已提交
2292
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2293 2294 2295 2296 2297 2298 2299 2300

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2301
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2302 2303 2304 2305 2306

**示例:**

```js
try {
2307 2308
  inputClient.selectByRange({start: 0, end: 1}, (err) => {
    if (err) {
H
Hollokin 已提交
2309
      console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2310 2311
      return;
    }
H
Hollokin 已提交
2312
    console.log('Succeeded in selecting by range.');
2313
  });
Z
add doc  
zhaolinglan 已提交
2314
} catch (err) {
H
Hollokin 已提交
2315
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328
}
```

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2329 2330
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
2331
| range  | [Range](#range10) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2346
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2347 2348 2349 2350 2351

**示例:**

```js
try {
2352 2353 2354
  inputClient.selectByRange({start: 0, end:1}).then(() => {
    console.log('Succeeded in selecting by range.');
  }).catch((err) => {
H
Hollokin 已提交
2355
    console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2356
  });
Z
add doc  
zhaolinglan 已提交
2357
} catch (err) {
2358
  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371
}
```

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

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

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

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

**参数:**

H
update  
Hollokin 已提交
2372 2373
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
H
换行  
Hollokin 已提交
2374 2375
| movement | [Movement](#movement10)   | 是   | 选中时光标移动的方向。  |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2376 2377 2378 2379 2380 2381 2382 2383

**错误码:**

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

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

**示例:**

```js
try {
2390 2391
  inputClient.selectByMovement({direction: 1}, (err) => {
    if (err) {
H
Hollokin 已提交
2392
      console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2393 2394
      return;
    }
H
Hollokin 已提交
2395
    console.log('Succeeded in selecting by movement.');
2396
  });
Z
add doc  
zhaolinglan 已提交
2397
} catch (err) {
H
Hollokin 已提交
2398
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2399 2400 2401 2402 2403
}
```

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

2404
selectByMovement(movement: Movement): Promise&lt;void&gt;
Z
add doc  
zhaolinglan 已提交
2405 2406 2407 2408 2409 2410 2411

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2412 2413
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2414
| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
2429
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
2430 2431 2432 2433 2434

**示例:**

```js
try {
2435 2436 2437
  inputClient.selectByMovement({direction: 1}).then(() => {
    console.log('Succeeded in selecting by movement.');
  }).catch((err) => {
H
Hollokin 已提交
2438
    console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2439
  });
Z
add doc  
zhaolinglan 已提交
2440
} catch (err) {
2441
  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2442 2443 2444
}
```

Z
add doc  
zhaolinglan 已提交
2445 2446 2447 2448 2449 2450 2451 2452 2453 2454
### getTextIndexAtCursor<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2455 2456 2457
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2458 2459 2460 2461 2462 2463 2464

**错误码:**

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

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

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
2472
  if (err) {
H
Hollokin 已提交
2473
    console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
2474 2475
    return;
  }
H
Hollokin 已提交
2476
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489
});
```

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

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

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

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

**返回值:**

Z
add doc  
zhaolinglan 已提交
2490 2491 2492
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2493 2494 2495 2496 2497 2498 2499

**错误码:**

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

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

**示例:**

```js
inputClient.getTextIndexAtCursor().then((index) => {
H
Hollokin 已提交
2507
  console.log('Succeeded in getTextIndexAtCursor: ' + index);
Z
add doc  
zhaolinglan 已提交
2508
}).catch((err) => {
H
Hollokin 已提交
2509
  console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
Z
add doc  
zhaolinglan 已提交
2510 2511 2512
});
```

2513 2514 2515 2516
### sendExtendAction<sup>10+</sup>

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

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

H
Hollokin 已提交
2519
输入法应用调用该接口向编辑控件(如:输入框)发送扩展编辑操作,编辑控件监听相应事件[on(handleExtendAction)](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542

**系统能力:** 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 {
2543 2544 2545 2546 2547
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err) => {
    if (err) {
      console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
2548
    console.log('Succeeded in sending extend action.');
2549
  });
H
Hollokin 已提交
2550 2551
} catch(err) {
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2552 2553 2554 2555 2556 2557 2558
}
```

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

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

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

H
Hollokin 已提交
2561
输入法应用调用该接口向编辑控件(如:输入框)发送扩展编辑操作,编辑控件监听相应事件[on(handleExtendAction)](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
2562 2563 2564 2565 2566 2567 2568

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
2569
| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
2583
| 12800003 | input method client error.     |
2584 2585 2586 2587 2588 2589
| 12800006 | Input method controller error. |

**示例:**

```js
try {
2590
  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
H
Hollokin 已提交
2591
    console.log('Succeeded in sending extend action.');
2592 2593 2594
  }).catch((err) => {
    console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
  });
H
Hollokin 已提交
2595 2596
} catch(err) {
  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
2597 2598 2599
}
```

H
Hollokin 已提交
2600
## EditorAttribute
2601

H
Hollokin 已提交
2602
编辑框属性值。
2603

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

2606
| 名称         | 类型 | 可读 | 可写 | 说明               |
H
Hollokin 已提交
2607 2608 2609 2610
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

H
Hollokin 已提交
2611
## KeyEvent
H
Hollokin 已提交
2612 2613 2614

按键属性值。

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

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

H
update  
Hollokin 已提交
2622
## PanelFlag<sup>10+</sup>
2623 2624 2625 2626 2627 2628 2629 2630 2631 2632

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

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

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

H
update  
Hollokin 已提交
2633
## PanelType<sup>10+</sup>
2634 2635 2636 2637 2638 2639 2640 2641

输入法面板类型枚举。

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

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

H
update  
Hollokin 已提交
2644
## PanelInfo<sup>10+</sup>
2645

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

2648 2649 2650 2651 2652 2653 2654
输入法面板属性。

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

H
Hollokin 已提交
2655 2656
## TextInputClient<sup>(deprecated)</sup>

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

H
Hollokin 已提交
2661
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
2662 2663 2664 2665 2666

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

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

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

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

H
update  
Hollokin 已提交
2673
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2674 2675 2676 2677 2678 2679

**参数:**

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

**示例:**

H
Hollokin 已提交
2684 2685
```js
let length = 1;
H
Hollokin 已提交
2686
textInputClient.getForward(length, (err, text) => {
2687
  if (err) {
H
Hollokin 已提交
2688
    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
2689 2690 2691
    return;
  }
  console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
2692 2693
});
```
2694

H
Hollokin 已提交
2695
### getForward<sup>(deprecated)</sup>
2696 2697 2698

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

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

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

H
update  
Hollokin 已提交
2705
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2721
```js
2722
let length = 1;
H
Hollokin 已提交
2723
textInputClient.getForward(length).then((text) => {
H
Hollokin 已提交
2724
  console.log('Succeeded in getting forward, text: ' + text);
2725
}).catch((err) => {
H
Hollokin 已提交
2726
  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
2727
});
H
Hollokin 已提交
2728
```
2729

H
Hollokin 已提交
2730
### getBackward<sup>(deprecated)</sup>
2731 2732 2733

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
2751 2752
```js
let length = 1;
H
Hollokin 已提交
2753
textInputClient.getBackward(length, (err, text) => {
2754
  if (err) {
H
Hollokin 已提交
2755
    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2756 2757 2758
    return;
  }
  console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
2759 2760
});
```
2761

H
Hollokin 已提交
2762
### getBackward<sup>(deprecated)</sup>
2763 2764 2765

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2788
```js
2789
let length = 1;
H
Hollokin 已提交
2790
textInputClient.getBackward(length).then((text) => {
H
Hollokin 已提交
2791
  console.log('Succeeded in getting backward: ' + JSON.stringify(text));
2792
}).catch((err) => {
H
Hollokin 已提交
2793
  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2794
});
H
Hollokin 已提交
2795
```
2796

H
Hollokin 已提交
2797
### deleteForward<sup>(deprecated)</sup>
2798 2799 2800

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

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

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

H
update  
Hollokin 已提交
2807
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2808 2809 2810 2811 2812 2813

**参数:**

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

**示例:**

H
Hollokin 已提交
2818 2819
```js
let length = 1;
H
Hollokin 已提交
2820
textInputClient.deleteForward(length, (err, result) => {
2821
  if (err) {
H
Hollokin 已提交
2822
    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2823 2824 2825
    return;
  }
  if (result) {
H
Hollokin 已提交
2826
    console.log('Succeeded in deleting forward.');
2827
  } else {
H
Hollokin 已提交
2828
    console.error('Failed to deleteForward.');
2829
  }
H
Hollokin 已提交
2830 2831
});
```
H
Hollokin 已提交
2832

H
Hollokin 已提交
2833
### deleteForward<sup>(deprecated)</sup>
2834 2835 2836

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

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

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

H
update  
Hollokin 已提交
2843
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854

**参数:**

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

**返回值:**  

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

**示例:**

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

H
Hollokin 已提交
2872
### deleteBackward<sup>(deprecated)</sup>
2873 2874 2875

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

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

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

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

2884
**参数:**
2885 2886 2887 2888

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

2891
**示例:**
2892 2893

```js
H
Hollokin 已提交
2894
let length = 1;
H
Hollokin 已提交
2895
textInputClient.deleteBackward(length, (err, result) => {
2896
  if (err) {
H
Hollokin 已提交
2897
    console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2898 2899 2900
    return;
  }
  if (result) {
H
Hollokin 已提交
2901
    console.log('Succeeded in deleting backward.');
2902
  } else {
H
Hollokin 已提交
2903
    console.error('Failed to deleteBackward.');
2904
  }
H
Hollokin 已提交
2905
});
2906 2907
```

H
Hollokin 已提交
2908
### deleteBackward<sup>(deprecated)</sup>
2909 2910 2911

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

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

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

H
update  
Hollokin 已提交
2918
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929

**参数:**

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

**返回值:** 

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

**示例:**

```js
2935
let length = 1;
H
Hollokin 已提交
2936
textInputClient.deleteBackward(length).then((result) => {
2937
  if (result) {
H
Hollokin 已提交
2938
    console.log('Succeeded in deleting backward.');
2939
  } else {
H
Hollokin 已提交
2940
    console.error('Failed to deleteBackward.');
2941
  }
2942
}).catch((err) => {
H
Hollokin 已提交
2943
  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2944
});
2945
```
H
Hollokin 已提交
2946
### sendKeyFunction<sup>(deprecated)</sup>
2947

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

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

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

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

2958
**参数:**
2959 2960 2961

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

2965
**示例:**
2966 2967

```js
2968
let action = 1;
H
Hollokin 已提交
2969
textInputClient.sendKeyFunction(action, (err, result) => {
2970
  if (err) {
H
Hollokin 已提交
2971
    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
2972 2973 2974
    return;
  }
  if (result) {
H
Hollokin 已提交
2975
    console.log('Succeeded in sending key function.');
2976
  } else {
H
Hollokin 已提交
2977
    console.error('Failed to sendKeyFunction.');
2978
  }
2979 2980 2981
});
```

H
Hollokin 已提交
2982
### sendKeyFunction<sup>(deprecated)</sup>
2983

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

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

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

H
update  
Hollokin 已提交
2992
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2993 2994 2995 2996 2997

**参数:**

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

H
Hollokin 已提交
3000
**返回值:**
3001 3002 3003

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

**示例:**

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

H
Hollokin 已提交
3021
### insertText<sup>(deprecated)</sup>
3022

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

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

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

H
update  
Hollokin 已提交
3031
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3032 3033 3034

**参数:**

H
Hollokin 已提交
3035 3036 3037
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
3038
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
3039 3040 3041

**示例:**

H
Hollokin 已提交
3042
```js
H
Hollokin 已提交
3043
textInputClient.insertText('test', (err, result) => {
3044
  if (err) {
H
Hollokin 已提交
3045
    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
3046 3047 3048
    return;
  }
  if (result) {
H
Hollokin 已提交
3049
    console.log('Succeeded in inserting text.');
3050
  } else {
H
Hollokin 已提交
3051
    console.error('Failed to insertText.');
3052
  }
H
Hollokin 已提交
3053 3054
});
```
3055

H
Hollokin 已提交
3056
### insertText<sup>(deprecated)</sup>
3057

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

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

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

H
update  
Hollokin 已提交
3066
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3067 3068 3069

**参数:**

H
Hollokin 已提交
3070 3071 3072 3073 3074 3075 3076 3077
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
3078
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
3079 3080 3081 3082

**示例:**

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

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

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

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

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

H
update  
Hollokin 已提交
3104
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
3105 3106 3107

**参数:**

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

**示例:**

H
Hollokin 已提交
3114
```js
H
Hollokin 已提交
3115
textInputClient.getEditorAttribute((err, editorAttribute) => {
3116
  if (err) {
H
Hollokin 已提交
3117
    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3118 3119 3120 3121
    return;
  }
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
3122 3123
});
```
Z
zhaolinglan 已提交
3124

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

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

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

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

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

H
Hollokin 已提交
3137
**返回值:**
Z
zhouyongfei 已提交
3138

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

H
Hollokin 已提交
3143
**示例:**
Z
zhouyongfei 已提交
3144

H
Hollokin 已提交
3145
```js
H
Hollokin 已提交
3146
textInputClient.getEditorAttribute().then((editorAttribute) => {
H
Hollokin 已提交
3147 3148
  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
3149
}).catch((err) => {
H
Hollokin 已提交
3150
  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3151
});
3152
```
H
update  
Hollokin 已提交
3153
<!--no_check-->