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

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

Z
refresh  
zhouyongfei 已提交
59
获取服务端实例。
Z
zhouyongfei 已提交
60

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

63
**返回值:**
Z
zhouyongfei 已提交
64

W
wz 已提交
65 66
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
H
Hollokin 已提交
67
| [InputMethodAbility](#inputmethodability) | 服务端实例。 |
Z
zhouyongfei 已提交
68

69
**示例:**
Z
zhouyongfei 已提交
70

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

H
Hollokin 已提交
75
## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
76

H
Hollokin 已提交
77
getKeyboardDelegate(): KeyboardDelegate
78

H
Hollokin 已提交
79
获取客户端监听实例。
80

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

**返回值:**

H
Hollokin 已提交
85 86
| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
H
Hollokin 已提交
87
| [KeyboardDelegate](#keyboarddelegate) | 客户端监听实例。 |
88 89 90

**示例:**

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

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

H
Hollokin 已提交
97
getInputMethodEngine(): InputMethodEngine
Z
zhouyongfei 已提交
98

H
Hollokin 已提交
99
获取服务端实例。
Z
zhouyongfei 已提交
100

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

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

107
**返回值:**
Z
zhouyongfei 已提交
108

H
Hollokin 已提交
109 110 111
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
| [InputMethodEngine](#inputmethodengine-1) | 服务端实例。 |
Z
zhouyongfei 已提交
112

113
**示例:**
Z
zhouyongfei 已提交
114

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

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

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

获取客户端监听实例。

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

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

**返回值:**

| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
H
Hollokin 已提交
135
| [KeyboardDelegate](#keyboarddelegate) | 客户端监听实例。 |
136 137 138

**示例:**

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

H
Hollokin 已提交
143
## InputMethodEngine
Z
zhouyongfei 已提交
144

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

H
Hollokin 已提交
147
### on('inputStart')
Z
zhouyongfei 已提交
148

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

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

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

155
**参数:**
Z
zhouyongfei 已提交
156 157 158

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

162
**示例:**
Z
zhouyongfei 已提交
163

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

### off('inputStart')

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H
Hollokin 已提交
242
## InputMethodAbility
243

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**错误码:**

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

**示例:**

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

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

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

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

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

**参数:**

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

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

**错误码:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

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

**示例:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### on('cursorContextChange')

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

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

729
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
730

731
**参数:**
Z
zhouyongfei 已提交
732

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

738
**示例:**
W
wz 已提交
739 740

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

### off('cursorContextChange')

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

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

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

756
  **参数:**
Z
zhouyongfei 已提交
757

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


764
  **示例:**
Z
zhouyongfei 已提交
765

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

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

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

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

H
Hollokin 已提交
779
**参数:**
Z
zhouyongfei 已提交
780

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

H
Hollokin 已提交
786
**示例:**
W
wz 已提交
787 788

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

### off('selectionChange')

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

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

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

805
**参数:**
Z
zhouyongfei 已提交
806

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

812
**示例:**
Z
zhouyongfei 已提交
813

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


### on('textChange')

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

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

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

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

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

H
Hollokin 已提交
836
**示例:**
Z
zhouyongfei 已提交
837

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

### off('textChange')

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

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

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

852
**参数:**
Z
zhouyongfei 已提交
853

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

859
**示例:**
Z
zhouyongfei 已提交
860

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

H
update  
Hollokin 已提交
867
## Panel<sup>10+</sup>
868

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

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

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

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

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

**参数:**

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

**示例:**

```js
try {
  panel.setUiContent('pages/page2/page2', (err) => {
    if (err.code) {
      console.error('Failed to set the content. err:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in setting the content.');
  });
} catch (exception) {
  console.error('Failed to set the content. err:' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
920
| Promise\<void> | 无返回结果的Promise对象。  |
921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938

**示例:**

```js
try {
  let promise = panel.setUiContent('pages/page2/page2');
  promise.then(()=> {
    console.info('Succeeded in setting the content.');
  }).catch((err)=>{
    console.error('Failed to set the content. err: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to set the content. err: ' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**示例:**

```js
let storage = new LocalStorage();
storage.setOrCreate('storageSimpleProp',121);
try {
  panel.setUiContent('pages/page2/page2', storage, (err) => {
    if (err.code) {
      console.error('Failed to set the content. err:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in setting the content.');
  });
} catch (exception) {
  console.error('Failed to set the content. err:' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
990
| Promise\<void> | 无返回结果的Promise对象。  |
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010

**示例:**

```js
let storage = new LocalStorage();
storage.setOrCreate('storageSimpleProp',121);
try {
  let promise = panel.setUiContent('pages/page2/page2');
  promise.then(()=> {
    console.info('Succeeded in setting the content.');
  }).catch((err)=>{
    console.error('Failed to set the content. err: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to set the content. err: ' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**示例:**

```js
try {
  panel.resize(500, 1000, (err) => {
    if (err.code) {
      console.error('Failed to change the panel size. Cause:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in changing the panel size.');
  });
} catch (exception) {
  console.error('Failed to change the panel size. Cause:' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

```js
try {
  let promise = panel.resize(500, 1000);
  promise.then(()=> {
    console.info('Succeeded in changing the panel size.');
  }).catch((err)=>{
    console.error('Failed to change the panel size. err: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to change the panel size. err: ' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**示例:**

```js
try {
  panel.moveTo(300, 300, (err)=>{
    if (err.code) {
      console.error('Failed to move the panel. err:' + JSON.stringify(err));
      return;
    }
    console.info('Succeeded in moving the panel.');
  });
} catch (exception) {
    console.error('Failed to move the panel. err:' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

```js
try {
  let promise = windowClass.moveTo(300, 300);
  promise.then(()=> {
    console.info('Succeeded in moving the panel.');
  }).catch((err)=>{
    console.error('Failed to move the panel. Cause: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to move the panel. Cause:' + JSON.stringify(exception));
}
```

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

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

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

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

**参数:**

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

**示例:**

```js
panel.show((err) => {
  if (err.code) {
    console.error('Failed to show the panel. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Succeeded in showing the panel.');
});
```

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

H
update  
Hollokin 已提交
1177
show(): Promise\<void>
1178

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

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1187
| Promise\<void> | 无返回结果的Promise对象。  |
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201

**示例:**

```js
let promise = panel.show();
promise.then(()=> {
  console.info('Succeeded in showing the panel.');
}).catch((err)=>{
  console.error('Failed to show the panel. err: ' + JSON.stringify(err));
});
```

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

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

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

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

**参数:**

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

**示例:**

```js
panel.hide((err) => {
  if (err.code) {
    console.error('Failed to hide the panel. Cause: ' + JSON.stringify(err));
    return;
  }
  console.info('Succeeded in hiding the panel.');
});
```

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

H
update  
Hollokin 已提交
1228
hide(): Promise\<void>
1229

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

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

**返回值:**

| 类型   | 说明                             |
| ------- | ------------------------------ |
H
update  
Hollokin 已提交
1238
| Promise\<void> | 无返回结果的Promise对象。  |
1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254

**示例:**

```js
let promise = panel.hide();
promise.then(()=> {
  console.info('Succeeded in hiding the panel.');
}).catch((err)=>{
  console.error('Failed to hide the panel. err: ' + JSON.stringify(err));
});
```

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**示例:**

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

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

changeFlag(flag: PanelFlag): void

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

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

**参数:**

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

**示例:**

```js
let panelFlag = inputMethodEngine.getInputMethodAbility().PanelFlag.FLG_FIXED;
panel.changeFlag(panelFlag);
```

H
Hollokin 已提交
1316
## KeyboardController
Z
zhouyongfei 已提交
1317

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

H
Hollokin 已提交
1320
### hide<sup>9+</sup>
H
Hollokin 已提交
1321

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

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

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

**参数:**

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

H
Hollokin 已提交
1334 1335
**错误码:**

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

1338
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1339 1340 1341
| -------- | -------------------------- |
| 12800003 | Input method client error. |

H
Hollokin 已提交
1342 1343 1344
**示例:**

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

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

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

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

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

**返回值:**

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

H
Hollokin 已提交
1368 1369
**错误码:**

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

1372
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1373 1374 1375
| -------- | -------------------------- |
| 12800003 | Input method client error. |

H
Hollokin 已提交
1376 1377 1378
**示例:**

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

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1387 1388 1389

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

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

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

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

1398
**参数:**
Z
refresh  
zhouyongfei 已提交
1399

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

1404
**示例:**
Z
zhouyongfei 已提交
1405

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

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

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

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

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

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

1428
**返回值:**
Z
refresh  
zhouyongfei 已提交
1429

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

1434
**示例:**
Z
zhouyongfei 已提交
1435

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

H
Hollokin 已提交
1444
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
1445

H
update  
Hollokin 已提交
1446
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
1447 1448 1449 1450 1451

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

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

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

H
update  
Hollokin 已提交
1454
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1455 1456 1457 1458 1459

  **参数:**

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

H
Hollokin 已提交
1463 1464
**错误码:**

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

1467
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1468 1469 1470 1471
| -------- | -------------------------- |
| 12800003 | Input method client error. |

 **示例:**
H
Hollokin 已提交
1472 1473

```js
1474
let action = 1;
H
Hollokin 已提交
1475
try {
H
Hollokin 已提交
1476 1477 1478
    inputClient.sendKeyFunction(action, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
H
Hollokin 已提交
1479 1480 1481
            return;
        }
        if (result) {
H
Hollokin 已提交
1482
            console.info('Succeeded in sending key function. ');
H
Hollokin 已提交
1483
        } else {
H
Hollokin 已提交
1484
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
1485 1486 1487 1488 1489 1490 1491 1492 1493
        }
    });
} catch (err) {
    console.error('sendKeyFunction err: ' + JSON.stringify(err));
}
```

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

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

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

H
update  
Hollokin 已提交
1498
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1499 1500 1501 1502 1503

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1504
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
1505 1506 1507 1508 1509

**返回值:**

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

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

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

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

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

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

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1540 1541 1542

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

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

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

1547
**参数:**
Z
zhouyongfei 已提交
1548

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

H
Hollokin 已提交
1554 1555
**错误码:**

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

1558
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1559 1560 1561 1562
| -------- | ------------------------------ |
| 12800003 | Input method client error.     |
| 12800006 | Input method controller error. |

1563 1564
**示例:**

H
Hollokin 已提交
1565 1566 1567
```js
let length = 1;
try {
H
Hollokin 已提交
1568 1569 1570
    inputClient.getForward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1571 1572
            return;
        }
H
Hollokin 已提交
1573
        console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
1574 1575
    });
} catch (err) {
H
Hollokin 已提交
1576
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1577 1578
}
```
Z
zhouyongfei 已提交
1579

H
Hollokin 已提交
1580
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
1581 1582 1583

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

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

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

1588
**参数:**
Z
zhouyongfei 已提交
1589

W
wz 已提交
1590 1591 1592
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1593

1594 1595
**返回值:**

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

H
Hollokin 已提交
1600 1601
**错误码:**

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

1604
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1605 1606 1607 1608
| -------- | ------------------------------ |
| 12800003 | Input method client error.     |
| 12800006 | Input method controller error. |

1609 1610
**示例:**

H
Hollokin 已提交
1611
```js
1612 1613
let length = 1;
try {
H
Hollokin 已提交
1614 1615
    inputClient.getForward(length).then((text) => {
        console.info('Succeeded in getting forward, text: ' + text);
1616
    }).catch((err) => {
H
Hollokin 已提交
1617
        console.error('Failed to getForward: ' + JSON.stringify(err));
1618 1619
    });
} catch (err) {
H
Hollokin 已提交
1620
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1621 1622
}
```
Z
zhouyongfei 已提交
1623

H
Hollokin 已提交
1624
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1625 1626 1627

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

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

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

1632
**参数:**
Z
zhouyongfei 已提交
1633

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

H
Hollokin 已提交
1639 1640
**错误码:**

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

1643
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1644 1645 1646 1647
| -------- | ------------------------------ |
| 12800003 | Input method client error.     |
| 12800006 | Input method controller error. |

1648 1649
**示例:**

H
Hollokin 已提交
1650 1651 1652
```js
let length = 1;
try {
H
Hollokin 已提交
1653 1654 1655
    inputClient.getBackward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1656 1657
            return;
        }
H
Hollokin 已提交
1658
        console.log('Succeeded in getting backward, text: ' + text);
H
Hollokin 已提交
1659 1660
    });
} catch (err) {
H
Hollokin 已提交
1661
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1662 1663
}
```
Z
zhouyongfei 已提交
1664

H
Hollokin 已提交
1665
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1666 1667 1668

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

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

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

1673
**参数:**
Z
zhouyongfei 已提交
1674

W
wz 已提交
1675 1676 1677
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1678

1679 1680
**返回值:**

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

H
Hollokin 已提交
1685 1686
**错误码:**

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

1689
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1690 1691 1692 1693
| -------- | ------------------------------ |
| 12800003 | Input method client error.     |
| 12800006 | Input method controller error. |

1694 1695
**示例:**

H
Hollokin 已提交
1696
```js
1697 1698
let length = 1;
try {
H
Hollokin 已提交
1699 1700
    inputClient.getBackward(length).then((text) => {
        console.info('Succeeded in getting backward, text: ' + text);
1701
    }).catch((err) => {
H
Hollokin 已提交
1702
        console.error('Failed to getForward: ' + JSON.stringify(err));
1703 1704
    });
} catch (err) {
H
Hollokin 已提交
1705
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1706 1707
}
```
Z
zhouyongfei 已提交
1708

H
Hollokin 已提交
1709
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1710 1711 1712

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

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

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

1717
**参数:**
Z
zhouyongfei 已提交
1718

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

H
Hollokin 已提交
1724 1725
**错误码:**

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

1728
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1729 1730 1731 1732
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | Input method client error. |

1733 1734
**示例:**

H
Hollokin 已提交
1735 1736 1737
```js
let length = 1;
try {
H
Hollokin 已提交
1738 1739 1740
    inputClient.deleteForward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1741 1742 1743
            return;
        }
        if (result) {
H
Hollokin 已提交
1744
            console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
1745
        } else {
H
Hollokin 已提交
1746
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1747 1748 1749
        }
    });
} catch (err) {
H
Hollokin 已提交
1750
    console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1751 1752 1753 1754
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1755 1756 1757

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

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

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

1762
**参数:**
W
wz 已提交
1763 1764 1765 1766 1767

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

1768 1769
**返回值:**  

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

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

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

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

1783 1784
**示例:**

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

H
Hollokin 已提交
1802
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1803 1804 1805

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

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

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

H
Hollokin 已提交
1810
**参数:**
Z
zhouyongfei 已提交
1811

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

H
Hollokin 已提交
1817 1818
**错误码:**

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

1821
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1822 1823 1824 1825 1826
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | Input method client error. |

**示例:**
1827

W
wz 已提交
1828
```js
H
Hollokin 已提交
1829 1830
let length = 1;
try {
H
Hollokin 已提交
1831 1832 1833
    inputClient.deleteBackward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1834 1835 1836
            return;
        }
        if (result) {
H
Hollokin 已提交
1837
            console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
1838
        } else {
H
Hollokin 已提交
1839
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1840 1841 1842 1843 1844
        }
    });
} catch (err) {
    console.error('deleteBackward err: ' + JSON.stringify(err));
}
W
wz 已提交
1845
```
Z
zhouyongfei 已提交
1846

H
Hollokin 已提交
1847
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1848 1849

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

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

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

1855
**参数:**
B
bmeangel 已提交
1856

W
wz 已提交
1857 1858 1859
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1860

1861 1862
**返回值:** 

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

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

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

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

1876
**示例:**
Z
zhouyongfei 已提交
1877

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

H
Hollokin 已提交
1891
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1892 1893 1894

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

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

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

1899
**参数:**
Z
zhouyongfei 已提交
1900

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

H
Hollokin 已提交
1906 1907
**错误码:**

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

1910
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1911 1912 1913 1914
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | Input method client error. |

1915 1916
**示例:**

W
wz 已提交
1917
```js
H
Hollokin 已提交
1918 1919 1920
inputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
1921 1922 1923
        return;
    }
    if (result) {
H
Hollokin 已提交
1924
        console.info('Succeeded in inserting text. ');
1925
    } else {
H
Hollokin 已提交
1926
        console.error('Failed to insertText. ');
1927
    }
W
wz 已提交
1928 1929
});
```
Z
zhouyongfei 已提交
1930

H
Hollokin 已提交
1931
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1932 1933

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

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

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

1939 1940
**参数:**

W
wz 已提交
1941 1942 1943
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
1944

1945
**返回值:**  
W
wz 已提交
1946 1947 1948

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

H
Hollokin 已提交
1951 1952
**错误码:**

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

1955
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1956 1957 1958 1959
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
| 12800003 | Input method client error. |

1960
**示例:**
Z
zhouyongfei 已提交
1961

H
Hollokin 已提交
1962
```js
1963
try {
H
Hollokin 已提交
1964
    inputClient.insertText('test').then((result) => {
1965
        if (result) {
H
Hollokin 已提交
1966
            console.info('Succeeded in inserting text. ');
1967 1968 1969 1970
        } else {
            console.error('Failed to insertText. ');
        }
    }).catch((err) => {
H
Hollokin 已提交
1971
        console.error('Failed to insertText: ' + JSON.stringify(err));
1972 1973
    });
} catch (err) {
H
Hollokin 已提交
1974
    console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
1975 1976
}
```
W
wz 已提交
1977

H
Hollokin 已提交
1978
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
1979 1980 1981

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

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

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

1986 1987
**参数:**

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

H
Hollokin 已提交
1992 1993
**错误码:**

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

1996
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1997 1998 1999
| -------- | -------------------------- |
| 12800003 | Input method client error. |

2000 2001
**示例:**

H
Hollokin 已提交
2002
```js
H
Hollokin 已提交
2003 2004 2005
inputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
2006 2007
        return;
    }
H
Hollokin 已提交
2008 2009
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2010 2011
});
```
Z
zhouyongfei 已提交
2012

H
Hollokin 已提交
2013
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
2014

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

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

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

2021 2022
**返回值:**

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

H
Hollokin 已提交
2027 2028
**错误码:**

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

2031
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2032 2033 2034
| -------- | -------------------------- |
| 12800003 | Input method client error. |

2035 2036
**示例:**

H
Hollokin 已提交
2037
```js
H
Hollokin 已提交
2038
inputClient.getEditorAttribute().then((editorAttribute) => {
2039 2040 2041
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
2042
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
2043
});
H
Hollokin 已提交
2044
```
Z
zhaolinglan 已提交
2045

H
Hollokin 已提交
2046
### moveCursor<sup>9+</sup>
2047

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

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

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

H
Hollokin 已提交
2054
**参数:**
Z
zhaolinglan 已提交
2055

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

H
Hollokin 已提交
2061 2062
**错误码:**

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

2065
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2066 2067 2068
| -------- | -------------------------- |
| 12800003 | Input method client error. |

H
Hollokin 已提交
2069
**示例:**
2070

H
Hollokin 已提交
2071
```js
H
Hollokin 已提交
2072
try {
H
Hollokin 已提交
2073 2074 2075
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
        if (err !== undefined) {
            console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2076 2077
            return;
        }
H
Hollokin 已提交
2078
        console.info('Succeeded in moving cursor.');
H
Hollokin 已提交
2079 2080
    });
} catch (err) {
H
Hollokin 已提交
2081
    console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2082
}
2083 2084
```

H
Hollokin 已提交
2085
### moveCursor<sup>9+</sup>
2086

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

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

H
update  
Hollokin 已提交
2091
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2092 2093 2094

**参数:**

H
Hollokin 已提交
2095 2096 2097
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
2098

H
Hollokin 已提交
2099
**返回值:**  
2100

H
Hollokin 已提交
2101 2102
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
2103
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2104

H
Hollokin 已提交
2105 2106
**错误码:**

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

2109
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
2110 2111 2112
| -------- | -------------------------- |
| 12800003 | Input method client error. |

2113 2114
**示例:**

H
Hollokin 已提交
2115
```js
2116
try {
H
Hollokin 已提交
2117 2118
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
        console.log('Succeeded in moving cursor.');
2119
    }).catch((err) => {
H
Hollokin 已提交
2120
        console.error('Failed to moveCursor: ' + JSON.stringify(err));
2121 2122
    });
} catch (err) {
H
Hollokin 已提交
2123
    console.log('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
2124
}
H
Hollokin 已提交
2125
```
2126

Z
add doc  
zhaolinglan 已提交
2127 2128 2129 2130 2131 2132 2133 2134 2135 2136
### selectByRange<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2137 2138 2139 2140
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| range    | [Range](./js-apis-inputmethod-InputMethodCommon.md#range) | 是   | 选中文本的范围。                                             |
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | Input method client error. |

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2157
            console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2158 2159 2160 2161 2162
            return;
        }
        console.info('Succeeded in selecting by range.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2163
    console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176
}
```

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2177 2178 2179
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
| range  | [Range](./js-apis-inputmethod-InputMethodCommon.md#range) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | Input method client error. |

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end:1}).then(() => {
        console.log('Succeeded in selecting by range.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
2203
        console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2204 2205
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2206
    console.log('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219
}
```

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2220 2221 2222 2223
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| movement | [Movement](./js-apis-inputmethod-InputMethodCommon.md#movement) | 是   | 选中时光标移动的方向。                                       |
| callback | AsyncCallback&lt;void&gt;                                    | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | Input method client error. |

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2240
            console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2241 2242 2243 2244 2245
            return;
        }
        console.info('Succeeded in selecting by movement.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2246
    console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259
}
```

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2260 2261 2262
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
| movement | [Movement](./js-apis-inputmethod-InputMethodCommon.md#movement) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
| 12800003 | Input method client error. |

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}).then(() => {
        console.log('Succeeded in selecting by movement.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
2286
        console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2287 2288
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
2289
    console.log('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2290 2291 2292
}
```

Z
add doc  
zhaolinglan 已提交
2293 2294 2295 2296 2297 2298 2299 2300 2301 2302
### getTextIndexAtCursor<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
2303 2304 2305
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321

**错误码:**

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

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

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
    if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
2322
        console.error('Failed to getTextIndexAtCursor: ${err.message}');
Z
add doc  
zhaolinglan 已提交
2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338
        return;
    }
    console.info('Succeeded in getTextIndexAtCursor: ' + index);
});
```

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

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

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

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

**返回值:**

Z
add doc  
zhaolinglan 已提交
2339 2340 2341
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357

**错误码:**

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

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

**示例:**

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

H
Hollokin 已提交
2362
## EditorAttribute
2363

H
Hollokin 已提交
2364
编辑框属性值。
2365

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

2368
| 名称         | 类型 | 可读 | 可写 | 说明               |
H
Hollokin 已提交
2369 2370 2371 2372
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

H
Hollokin 已提交
2373
## KeyEvent
H
Hollokin 已提交
2374 2375 2376

按键属性值。

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

2379
| 名称      | 类型 | 可读 | 可写 | 说明         |
H
Hollokin 已提交
2380 2381 2382 2383
| --------- | -------- | ---- | ---- | ------------ |
| keyCode   | number   | 是   | 否   | 按键的键值。 |
| keyAction | number   | 是   | 否   | 按键的状态。 |

2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414
## PanelFlag<sup>10</sup>

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

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

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

## PanelType<sup>10</sup>

输入法面板类型枚举。

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

| 名称         | 值 | 说明               |
| ------------ | -- | ------------------ |
| SOFT_KEYBOARD | 0 | 软键盘类型。 |
| SOFT_KEYBOARD | 1 | 状态栏类型。 |

## PanelInfo<sup>10</sup>

输入法面板属性。

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

H
Hollokin 已提交
2415 2416
## TextInputClient<sup>(deprecated)</sup>

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

H
Hollokin 已提交
2421
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
2422 2423 2424 2425 2426

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

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

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

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

H
update  
Hollokin 已提交
2433
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2434 2435 2436 2437 2438 2439

**参数:**

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

**示例:**

H
Hollokin 已提交
2444 2445
```js
let length = 1;
H
Hollokin 已提交
2446 2447 2448
textInputClient.getForward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
2449 2450
        return;
    }
H
Hollokin 已提交
2451
    console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
2452 2453
});
```
2454

H
Hollokin 已提交
2455
### getForward<sup>(deprecated)</sup>
2456 2457 2458

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

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

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

H
update  
Hollokin 已提交
2465
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2481
```js
2482
let length = 1;
H
Hollokin 已提交
2483 2484
textInputClient.getForward(length).then((text) => {
    console.info('Succeeded in getting forward, text: ' + text);
2485
}).catch((err) => {
H
Hollokin 已提交
2486
    console.error('Failed to getForward: ' + JSON.stringify(err));
2487
});
H
Hollokin 已提交
2488
```
2489

H
Hollokin 已提交
2490
### getBackward<sup>(deprecated)</sup>
2491 2492 2493

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

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

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

H
update  
Hollokin 已提交
2500
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2501 2502 2503 2504 2505 2506

**参数:**

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

**示例:**

H
Hollokin 已提交
2511 2512
```js
let length = 1;
H
Hollokin 已提交
2513 2514 2515
textInputClient.getBackward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getBackward: ' + JSON.stringify(err));
H
Hollokin 已提交
2516 2517
        return;
    }
H
Hollokin 已提交
2518
    console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
2519 2520
});
```
2521

H
Hollokin 已提交
2522
### getBackward<sup>(deprecated)</sup>
2523 2524 2525

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

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

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

H
update  
Hollokin 已提交
2532
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
2548
```js
2549
let length = 1;
H
Hollokin 已提交
2550 2551
textInputClient.getBackward(length).then((text) => {
    console.info('Succeeded in getting backward: ' + JSON.stringify(text));
2552
}).catch((err) => {
H
Hollokin 已提交
2553
    console.error('Failed to getBackward: ' + JSON.stringify(err));
2554
});
H
Hollokin 已提交
2555
```
2556

H
Hollokin 已提交
2557
### deleteForward<sup>(deprecated)</sup>
2558 2559 2560

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
2578 2579
```js
let length = 1;
H
Hollokin 已提交
2580 2581 2582
textInputClient.deleteForward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to deleteForward: ' + JSON.stringify(err));
H
Hollokin 已提交
2583 2584 2585
        return;
    }
    if (result) {
H
Hollokin 已提交
2586
        console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
2587
    } else {
H
Hollokin 已提交
2588
        console.error('Failed to deleteForward. ');
H
Hollokin 已提交
2589 2590 2591
    }
});
```
H
Hollokin 已提交
2592

H
Hollokin 已提交
2593
### deleteForward<sup>(deprecated)</sup>
2594 2595 2596

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

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

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

H
update  
Hollokin 已提交
2603
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614

**参数:**

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

**返回值:**  

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

**示例:**

```js
2620
let length = 1;
H
Hollokin 已提交
2621
textInputClient.deleteForward(length).then((result) => {
2622
    if (result) {
H
Hollokin 已提交
2623
        console.info('Succeeded in deleting forward. ');
2624 2625 2626 2627
    } else {
        console.error('Failed to delete forward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2628
    console.error('Failed to delete forward: ' + JSON.stringify(err));
2629
});
2630 2631
```

H
Hollokin 已提交
2632
### deleteBackward<sup>(deprecated)</sup>
2633 2634 2635

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

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

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

H
update  
Hollokin 已提交
2642
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2643 2644 2645 2646 2647 2648

  **参数:**

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

  **示例:**

```js
H
Hollokin 已提交
2654
let length = 1;
H
Hollokin 已提交
2655 2656 2657
textInputClient.deleteBackward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to delete backward: ' + JSON.stringify(err));
H
Hollokin 已提交
2658 2659 2660
        return;
    }
    if (result) {
H
Hollokin 已提交
2661
        console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
2662
    } else {
H
Hollokin 已提交
2663
        console.error('Failed to deleteBackward. ');
H
Hollokin 已提交
2664 2665
    }
});
2666 2667
```

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

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

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

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

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

**参数:**

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

**返回值:** 

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

**示例:**

```js
2695
let length = 1;
H
Hollokin 已提交
2696
textInputClient.deleteBackward(length).then((result) => {
2697
    if (result) {
H
Hollokin 已提交
2698
        console.info('Succeeded in deleting backward. ');
2699 2700 2701 2702
    } else {
        console.error('Failed to deleteBackward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2703
    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
2704
});
2705
```
H
Hollokin 已提交
2706
### sendKeyFunction<sup>(deprecated)</sup>
2707

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

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

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

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

H
Hollokin 已提交
2718
  **参数:**
2719 2720 2721

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

H
Hollokin 已提交
2725
  **示例:**
2726 2727

```js
2728
let action = 1;
H
Hollokin 已提交
2729 2730 2731
textInputClient.sendKeyFunction(action, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
2732 2733 2734
        return;
    }
    if (result) {
H
Hollokin 已提交
2735
        console.info('Succeeded in sending key function. ');
2736
    } else {
H
Hollokin 已提交
2737
        console.error('Failed to sendKeyFunction. ');
2738 2739 2740 2741
    }
});
```

H
Hollokin 已提交
2742
### sendKeyFunction<sup>(deprecated)</sup>
2743

2744
sendKeyFunction(action: number): Promise&lt;boolean&gt;
2745

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

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

H
update  
Hollokin 已提交
2752
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2753 2754 2755 2756 2757

**参数:**

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

H
Hollokin 已提交
2760
**返回值:**
2761 2762 2763

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

**示例:**

H
Hollokin 已提交
2768
```js
2769
let action = 1;
H
Hollokin 已提交
2770
textInputClient.sendKeyFunction(action).then((result) => {
2771
    if (result) {
H
Hollokin 已提交
2772
        console.info('Succeeded in sending key function. ');
2773 2774 2775 2776
    } else {
        console.error('Failed to sendKeyFunction. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2777
    console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
2778
});
H
Hollokin 已提交
2779
```
2780

H
Hollokin 已提交
2781
### insertText<sup>(deprecated)</sup>
2782

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

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

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

H
update  
Hollokin 已提交
2791
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2792 2793 2794

**参数:**

H
Hollokin 已提交
2795 2796 2797
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
2798
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
2799 2800 2801

**示例:**

H
Hollokin 已提交
2802
```js
H
Hollokin 已提交
2803 2804 2805
textInputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
2806 2807 2808
        return;
    }
    if (result) {
H
Hollokin 已提交
2809
        console.info('Succeeded in inserting text. ');
H
Hollokin 已提交
2810
    } else {
H
Hollokin 已提交
2811
        console.error('Failed to insertText. ');
H
Hollokin 已提交
2812 2813 2814
    }
});
```
2815

H
Hollokin 已提交
2816
### insertText<sup>(deprecated)</sup>
2817

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

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

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

H
update  
Hollokin 已提交
2826
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2827 2828 2829

**参数:**

H
Hollokin 已提交
2830 2831 2832 2833 2834 2835 2836 2837
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2838
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
2839 2840 2841 2842

**示例:**

```js
H
Hollokin 已提交
2843
textInputClient.insertText('test').then((result) => {
2844
    if (result) {
H
Hollokin 已提交
2845
        console.info('Succeeded in inserting text. ');
2846 2847 2848 2849
    } else {
        console.error('Failed to insertText. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2850
    console.error('Failed to insertText: ' + JSON.stringify(err));
2851
});
Z
zhaolinglan 已提交
2852 2853
```

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

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

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

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

H
update  
Hollokin 已提交
2864
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2865 2866 2867

**参数:**

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

**示例:**

H
Hollokin 已提交
2874
```js
H
Hollokin 已提交
2875 2876 2877
textInputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
2878
        return;
H
Hollokin 已提交
2879
    }
H
Hollokin 已提交
2880 2881
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2882 2883
});
```
Z
zhaolinglan 已提交
2884

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

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

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

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

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

H
Hollokin 已提交
2897
**返回值:**
Z
zhouyongfei 已提交
2898

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

H
Hollokin 已提交
2903
**示例:**
Z
zhouyongfei 已提交
2904

H
Hollokin 已提交
2905
```js
H
Hollokin 已提交
2906
textInputClient.getEditorAttribute().then((editorAttribute) => {
2907 2908 2909
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
2910
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
2911
});
2912
```