js-apis-inputmethodengine.md 103.1 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 730 731 732 733 734 735 736 737 738
### on('keyEvent')

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 755 756 757 758 759 760 761 762 763 764

**示例:**

```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;
});
```

### off('keyEvent')

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。 |
Z
zhaolinglan 已提交
769 770 771 772 773 774 775 776 777 778

**示例:**

```js
inputMethodEngine.getKeyboardDelegate().off('keyEvent', (keyEvent) => {
  console.log('delete keyEvent notification.');
  return true;
});
```

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

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

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

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

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

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

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

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

### off('cursorContextChange')

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

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

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

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

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


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

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

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

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

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

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

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

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

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

### off('selectionChange')

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

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

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

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

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

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

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


### on('textChange')

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

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

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

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

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

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

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

### off('textChange')

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

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369
| 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`表示显示状态。 |
1370 1371 1372 1373 1374 1375 1376 1377
| callback | () => void | 否   | 回调函数。 |

**示例:**

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

1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398
### 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');
```

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

changeFlag(flag: PanelFlag): void

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

**返回值:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1540
```js
H
Hollokin 已提交
1541
keyboardController.hideKeyboard().then(() => {
H
Hollokin 已提交
1542
  console.log('Succeeded in hiding keyboard.');
1543
}).catch((err) => {
H
Hollokin 已提交
1544
  console.log(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1545
});
Z
zhouyongfei 已提交
1546 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
## 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 已提交
1595
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1596

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

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

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

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

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

  **参数:**

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1714 1715
**示例:**

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

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

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

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

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

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

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

1745 1746
**返回值:**

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

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

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

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

1760 1761
**示例:**

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

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

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

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

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

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

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

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

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

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

1799 1800
**示例:**

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

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

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

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

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

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

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

1830 1831
**返回值:**

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

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

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

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

1845 1846
**示例:**

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

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

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

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

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

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

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

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

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

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

1884 1885
**示例:**

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

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

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

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

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

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

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

1919 1920
**返回值:**  

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

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

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

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

1934 1935
**示例:**

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

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

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

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

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

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

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

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

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

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

**示例:**
1978

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

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

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

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

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

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

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

2012 2013
**返回值:** 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2066 2067
**示例:**

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

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

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

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

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

2090 2091
**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

2137 2138
**参数:**

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

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

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

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

2151 2152
**示例:**

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

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

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

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

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

2172 2173
**返回值:**

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

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

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

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

2186 2187
**示例:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

2264 2265
**示例:**

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

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

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

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

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

**参数:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

**参数:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

**参数:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

**返回值:**

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

**错误码:**

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

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

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

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

**示例:**

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

H
Hollokin 已提交
2599
## EditorAttribute
2600

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

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

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

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

按键属性值。

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

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

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

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

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

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

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

输入法面板类型枚举。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**  

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

**示例:**

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

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

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

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

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

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

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

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

2890
**示例:**
2891 2892

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

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

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

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

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

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

**参数:**

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

**返回值:** 

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

**示例:**

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

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

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

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

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

2957
**参数:**
2958 2959 2960

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

2964
**示例:**
2965 2966

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

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

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

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

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

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

**参数:**

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

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

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**返回值:**  

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

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

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

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

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