js-apis-inputmethod.md 102.9 KB
Newer Older
N
update  
ningning 已提交
1
# @ohos.inputMethod (输入法框架) 
Z
zhouyongfei 已提交
2

N
update  
ningning 已提交
3
本模块主要面向普通前台应用(备忘录、信息、设置等系统应用与三方应用),提供对输入法(输入法应用)的控制、管理能力,包括显示/隐藏输入法软键盘、切换输入法、获取所有输入法列表等等。
T
explain  
tianyu 已提交
4

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


## 导入模块

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

H
Hollokin 已提交
16
## 常量<sup>8+</sup>
Z
zhouyongfei 已提交
17 18 19

常量值。

H
update  
Hollokin 已提交
20
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
21

22
| 参数名 | 类型 | 常量值 | 说明 |
H
Hollokin 已提交
23 24
| -------- | -------- | -------- | -------- |
| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 |
Z
zhouyongfei 已提交
25

26
## InputMethodProperty<sup>8+</sup>
Z
zhouyongfei 已提交
27 28 29

输入法应用属性。

H
update  
Hollokin 已提交
30
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
31

32
| 名称 | 类型 | 可读 | 可写 | 说明 |
Z
zhouyongfei 已提交
33
| -------- | -------- | -------- | -------- | -------- |
H
Hollokin 已提交
34 35 36 37
| name<sup>9+</sup>  | string | 是 | 否 | 必填。输入法内部名称。|
| id<sup>9+</sup>    | string | 是 | 否 | 必填。输入法唯一标识。|
| label<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称。|
| labelId<sup>10+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称资源号。|
C
mod  
cy7717 已提交
38
| icon<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法图标数据,可以通过iconId查询获取。预留字段,暂不支持使用。|
H
Hollokin 已提交
39
| iconId<sup>9+</sup>    | number | 是 | 否 | 非必填。输入法图标资源号。 |
C
mod  
cy7717 已提交
40
| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。预留字段,当前无具体含义,暂不支持使用。<br/>- API version 10起:非必填;<br/>- API version 9:必填。|
N
update  
ningning 已提交
41 42
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。必填。<br/>说明:从API version 8开始支持,从API version 9开始废弃,建议使用name替代。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。必填。<br/>说明:从API version 8开始支持,从API version 9开始废弃,建议使用id替代。 |
Z
zhouyongfei 已提交
43

44 45 46 47 48 49
## inputMethod.getController<sup>9+</sup>

getController(): InputMethodController

获取客户端实例[InputMethodController](#inputmethodcontroller)

H
update  
Hollokin 已提交
50
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
51 52 53 54 55 56 57

**返回值:**

| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |

H
Hollokin 已提交
58 59
**错误码:**

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

62
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
63
| -------- | ------------------------------ |
64
| 12800006 | input method controller error. |
H
Hollokin 已提交
65

66 67
**示例:**

68
```ts
69
let inputMethodController = inputMethod.getController();
70
```
71 72 73 74 75 76 77

## inputMethod.getSetting<sup>9+</sup>

getSetting(): InputMethodSetting

获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)

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

**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |

H
Hollokin 已提交
86 87
**错误码:**

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

90
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
91
| -------- | -------------------------------------- |
92
| 12800007 |  settings extension error. |
H
Hollokin 已提交
93

94 95
**示例:**

96
```ts
H
Hollokin 已提交
97
let inputMethodSetting = inputMethod.getSetting();
98 99
```

G
gaoxiang 已提交
100
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhouyongfei 已提交
101

Z
zhaolinglan 已提交
102
switchInputMethod(target: InputMethodProperty, callback: AsyncCallback&lt;boolean&gt;): void
G
gaoxiang 已提交
103

N
update  
ningning 已提交
104
切换输入法,仅系统应用可用。使用callback异步回调。
105

N
update  
ningning 已提交
106
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
107

H
update  
Hollokin 已提交
108
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
109 110 111

**参数:**

H
Hollokin 已提交
112 113
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
114
| target | [InputMethodProperty](#inputmethodproperty8) | 是 | 目标输入法。 |
H
Hollokin 已提交
115
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法切换成功,err为undefined,data为true;否则为错误对象。 |
G
gaoxiang 已提交
116

H
Hollokin 已提交
117 118
**错误码:**

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

121
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
122
| -------- | -------------------------------------- |
123 124
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
125

G
gaoxiang 已提交
126 127
**示例:**

128
```ts
H
Hollokin 已提交
129
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
130
try{
131
  inputMethod.switchInputMethod(currentIme, (err: Error, result: boolean) => {
132
    if (err) {
H
Hollokin 已提交
133
      console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
134 135 136
      return;
    }
    if (result) {
H
Hollokin 已提交
137
      console.log('Succeeded in switching inputmethod.');
138 139 140 141
    } else {
      console.error('Failed to switchInputMethod.');
    }
  });
H
Hollokin 已提交
142
} catch(err) {
H
Hollokin 已提交
143
  console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
H
Hollokin 已提交
144
}
G
gaoxiang 已提交
145
```
G
gaoxiang 已提交
146
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
147
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
148

N
update  
ningning 已提交
149
切换输入法,仅系统应用可用。使用promise异步回调。
G
gaoxiang 已提交
150

N
update  
ningning 已提交
151
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
152

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

G
gaoxiang 已提交
155
**参数:**
G
gaoxiang 已提交
156 157 158

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
159
  |target |  [InputMethodProperty](#inputmethodproperty8)| 是 | 目标输入法。 |
G
gaoxiang 已提交
160

G
gaoxiang 已提交
161
**返回值:**
B
bmeangel 已提交
162

G
gaoxiang 已提交
163 164
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
165
  | Promise\<boolean> | Promise对象。返回true表示切换输入法成功,返回false表示切换输入法失败。 |
G
gaoxiang 已提交
166

H
Hollokin 已提交
167 168
**错误码:**

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

171
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
172
| -------- | -------------------------------------- |
173 174
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
175

G
gaoxiang 已提交
176 177
**示例:**

178
```ts
H
Hollokin 已提交
179
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
180
try {
181
  inputMethod.switchInputMethod(currentIme).then((result: boolean) => {
182
    if (result) {
H
Hollokin 已提交
183
      console.log('Succeeded in switching inputmethod.');
184 185 186
    } else {
      console.error('Failed to switchInputMethod.');
    }
187
  }).catch((err: Error) => {
H
Hollokin 已提交
188
    console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
189
  })
190
} catch (err) {
H
Hollokin 已提交
191
  console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
H
Hollokin 已提交
192
}
G
gaoxiang 已提交
193
```
194

Z
zhaolinglan 已提交
195 196 197 198
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

N
update  
ningning 已提交
199
使用同步方法获取当前输入法。
Z
zhaolinglan 已提交
200

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

**返回值:**

Z
zhaolinglan 已提交
205 206
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
207
| [InputMethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
208 209 210

**示例:**

211
```ts
H
Hollokin 已提交
212
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
213 214
```

H
update  
Hollokin 已提交
215
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
216

H
Hollokin 已提交
217
switchCurrentInputMethodSubtype(target: InputMethodSubtype, callback: AsyncCallback\<boolean>): void
218

N
update  
ningning 已提交
219 220 221 222 223
切换当前输入法的子类型。使用callback异步回调。

> **说明:**
>
> 在API version 9版本,仅支持系统应用调用;API version 10版本起,支持系统应用和当前输入法应用调用。
224

N
update  
ningning 已提交
225
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
226

H
update  
Hollokin 已提交
227
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
228 229 230 231 232

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
233
| target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
H
Hollokin 已提交
234
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法子类型切换成功,err为undefined,data为true;否则为错误对象。|
235

H
Hollokin 已提交
236 237
**错误码:**

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

240
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
241
| -------- | -------------------------------------- |
242 243
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
244

245 246
**示例:**

247
```ts
H
Hollokin 已提交
248
try {
249
  let extra: Record<string, string> = {}
250 251 252 253 254 255 256 257 258
  inputMethod.switchCurrentInputMethodSubtype({
    id: "ServiceExtAbility",
    label: "",
    name: "com.example.kikakeyboard",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
259 260
    extra: extra
  }, (err: Error, result: boolean) => {
261
    if (err) {
H
Hollokin 已提交
262
      console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
263 264 265
      return;
    }
    if (result) {
H
Hollokin 已提交
266
      console.log('Succeeded in switching currentInputMethodSubtype.');
267 268 269 270
    } else {
      console.error('Failed to switchCurrentInputMethodSubtype');
    }
  });
H
Hollokin 已提交
271
} catch(err) {
H
Hollokin 已提交
272
  console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
273
}
274 275
```

H
update  
Hollokin 已提交
276
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
277 278 279

switchCurrentInputMethodSubtype(target: InputMethodSubtype): Promise&lt;boolean&gt;

N
update  
ningning 已提交
280
切换当前输入法的子类型。使用promise异步回调。
281

N
update  
ningning 已提交
282 283 284 285 286
> **说明:**
>
> 在API version 9版本,仅支持系统应用调用;API version 10版本起,支持系统应用和当前输入法应用调用。

**需要权限:** ohos.permission.CONNECT_IME_ABILITY
287

H
update  
Hollokin 已提交
288
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
289 290 291 292 293

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
294
|target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
295

H
Hollokin 已提交
296 297 298 299
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
300
| Promise\<boolean> | Promise对象。返回true表示当前输入法切换子类型成功,返回false表示当前输入法切换子类型成功失败。 |
H
Hollokin 已提交
301

H
Hollokin 已提交
302 303
**错误码:**

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

306
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
307
| -------- | -------------------------------------- |
308 309
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
310

311 312
**示例:**

313
```ts
H
Hollokin 已提交
314
try {
315
  let extra: Record<string, string> = {}
316 317 318 319 320 321 322 323 324
  inputMethod.switchCurrentInputMethodSubtype({
    id: "ServiceExtAbility",
    label: "",
    name: "com.example.kikakeyboard",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
325 326
    extra: extra
  }).then((result: boolean) => {
327
    if (result) {
H
Hollokin 已提交
328
      console.log('Succeeded in switching currentInputMethodSubtype.');
329 330 331
    } else {
      console.error('Failed to switchCurrentInputMethodSubtype.');
    }
332
  }).catch((err: Error) => {
H
Hollokin 已提交
333
    console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
334 335
  })
} catch(err) {
H
Hollokin 已提交
336
  console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
337
}
338 339 340 341 342 343
```

## inputMethod.getCurrentInputMethodSubtype<sup>9+</sup>

getCurrentInputMethodSubtype(): InputMethodSubtype

N
update  
ningning 已提交
344
获取当前输入法的子类型。
345

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

**返回值:**

| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
H
update  
Hollokin 已提交
352
| [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype) | 返回当前输入法子类型对象。 |
353 354 355

**示例:**

356
```ts
H
Hollokin 已提交
357
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
358 359 360 361
```

## inputMethod.switchCurrentInputMethodAndSubtype<sup>9+</sup>

H
Hollokin 已提交
362
switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype, callback: AsyncCallback\<boolean>): void
363

N
update  
ningning 已提交
364
切换至指定输入法的指定子类型,适用于跨输入法切换子类型,仅系统应用可用。使用callback异步回调。
365

N
update  
ningning 已提交
366
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
367

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
374 375
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
H
Hollokin 已提交
376
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法和子类型切换成功,err为undefined,data为获取到的切换子类型结果true;否则为错误对象。 |
377

H
Hollokin 已提交
378 379
**错误码:**

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

382
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
383
| -------- | -------------------------------------- |
384 385
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
386

387 388
**示例:**

389
```ts
H
Hollokin 已提交
390
let currentIme = inputMethod.getCurrentInputMethod();
391
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
392
try {
393
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType, (err: Error, result: boolean) => {
394
    if (err) {
H
Hollokin 已提交
395
      console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
396 397 398
      return;
    }
    if (result) {
H
Hollokin 已提交
399
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
400 401 402 403
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
  });
H
Hollokin 已提交
404
} catch (err) {
H
Hollokin 已提交
405
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
406
}
407 408 409 410
```

## inputMethod.switchCurrentInputMethodAndSubtype<sup>9+</sup>

H
Hollokin 已提交
411
switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype): Promise&lt;boolean&gt;
412

N
update  
ningning 已提交
413
切换至指定输入法的指定子类型,适用于跨输入法切换子类型,仅系统应用可用。使用promise异步回调。
414

N
update  
ningning 已提交
415
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
416

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
423 424
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
425

H
Hollokin 已提交
426 427 428 429
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
430
| Promise\<boolean> | Promise对象。返回true表示切换至指定输入法的指定子类型成功,返回false表示切换至指定输入法的指定子类型失败。 |
H
Hollokin 已提交
431

H
Hollokin 已提交
432 433
**错误码:**

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

436
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
437
| -------- | -------------------------------------- |
438 439
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
440

441 442
**示例:**

443
```ts
H
Hollokin 已提交
444
let currentIme = inputMethod.getCurrentInputMethod();
445
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
446
try {
447
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType).then((result: boolean) => {
448
    if (result) {
H
Hollokin 已提交
449
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
450 451 452
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
453
  }).catch((err: Error) => {
H
Hollokin 已提交
454
    console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
455 456
  })
} catch(err) {
H
Hollokin 已提交
457
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
458
}
459 460
```

H
Hollokin 已提交
461
## inputMethod.getInputMethodController<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
462

H
Hollokin 已提交
463
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
464

H
Hollokin 已提交
465
获取客户端实例[InputMethodController](#inputmethodcontroller)
Z
zhouyongfei 已提交
466

H
update  
Hollokin 已提交
467 468
> **说明:** 
>
469
> 从API version 6开始支持,从API version 9开始废弃,建议使用[getController()](#inputmethodgetcontroller9)替代。
H
Hollokin 已提交
470

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

H
Hollokin 已提交
473
**返回值:**
Z
zhouyongfei 已提交
474

H
Hollokin 已提交
475 476 477
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
478

479
**示例:**
Z
zhouyongfei 已提交
480

481
```ts
482
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
483 484
```

H
Hollokin 已提交
485
## inputMethod.getInputMethodSetting<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
486

H
Hollokin 已提交
487
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
488

H
Hollokin 已提交
489
获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)
Z
zhouyongfei 已提交
490

491 492
> **说明:**
>
493
> 从API version 6开始支持,从API version 9开始废弃,建议使用[getSetting()](#inputmethodgetsetting9)替代。
H
Hollokin 已提交
494

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

497
**返回值:**
Z
zhouyongfei 已提交
498

H
Hollokin 已提交
499 500 501
| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |
Z
zhouyongfei 已提交
502

503
**示例:**
Z
zhouyongfei 已提交
504

505
```ts
H
Hollokin 已提交
506
let inputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
507 508
```

509 510
## TextInputType<sup>10+</sup>

H
update  
Hollokin 已提交
511
文本输入类型。
512

H
Hollokin 已提交
513
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
514 515 516 517 518

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| NONE  | -1 |NONE。 |
| TEXT  | 0 |文本类型。 |
519 520 521 522 523 524 525
| MULTILINE  | 1 |多行类型。 |
| NUMBER  | 2 |数字类型。 |
| PHONE  | 3 |电话号码类型。 |
| DATETIME  | 4 |日期类型。 |
| EMAIL_ADDRESS  | 5 |邮箱地址类型。 |
| URL  | 6 |链接类型。 |
| VISIBLE_PASSWORD  | 7 |密码类型。 |
526 527 528

## EnterKeyType<sup>10+</sup>

N
update  
ningning 已提交
529
Enter键的功能类型。
530

H
Hollokin 已提交
531
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
532 533 534 535

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| UNSPECIFIED  | 0 |未指定。 |
536 537 538 539 540 541 542
| NONE  | 1 |NONE。 |
| GO  | 2 |前往。 |
| SEARCH  | 3 |查找。 |
| SEND  | 4 |发送。 |
| NEXT  | 5 |下一步。 |
| DONE  | 6 |完成。 |
| PREVIOUS  | 7 |上一步。 |
543 544 545 546 547

## KeyboardStatus<sup>10+</sup>

输入法软键盘状态。

H
Hollokin 已提交
548
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
549 550 551 552 553 554 555 556 557 558 559

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| NONE  | 0 |NONE。 |
| HIDE  | 1 |隐藏状态。 |
| SHOW  | 2 |显示状态。 |

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

光标移动方向。

H
Hollokin 已提交
560
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
561 562 563 564

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
565 566 567
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |
568 569 570

## ExtendAction<sup>10+</sup>

N
update  
ningning 已提交
571
编辑框中文本的扩展编辑操作类型,如剪切、复制等。
572

H
Hollokin 已提交
573
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593

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

## FunctionKey<sup>10+</sup>

输入法功能键类型。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| enterKeyType<sup>10+</sup>  | [EnterKeyType](#enterkeytype10) | 是 | 是 | 输入法enter键类型。|

## InputAttribute<sup>10+</sup>

N
update  
ningning 已提交
594
编辑框属性,包含文本输入类型和Enter键功能类型。
595 596 597 598 599 600

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| textInputType<sup>10+</sup>  | [TextInputType](#textinputtype10) | 是 | 是 | 文本输入类型。|
H
update  
Hollokin 已提交
601
| enterKeyType<sup>10+</sup>  | [EnterKeyType](#enterkeytype10) | 是 | 是 | Enter键功能类型。|
602 603 604

## TextConfig<sup>10+</sup>

N
update  
ningning 已提交
605
编辑框的配置信息。
606 607 608

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

609
| 名称 | 类型 | 只读 | 必填 | 说明 |
610
| -------- | -------- | -------- | -------- | -------- |
611 612
| inputAttribute<sup>10+</sup>  | [InputAttribute](#inputattribute10) | 否 | 是 | 编辑框属性。|
| cursorInfo<sup>10+</sup>  | [CursorInfo](#cursorinfo10) | 否 | 否 | 光标信息。|
N
update  
ningning 已提交
613 614
| selection<sup>10+</sup>  | [Range](#range10) | 否 | 否 | 文本选中的范围。|
| windowId<sup>10+</sup>  | number | 否 | 否 | 编辑框所在的窗口Id。|
615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630

## CursorInfo<sup>10+</sup>

光标信息。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| left  | number | 是 | 是 | 光标的left坐标。|
| top  | number | 是 | 是 | 光标的top坐标。|
| width  | number | 是 | 是 | 光标的宽度。|
| height  | number | 是 | 是 | 光标的高度。|

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

N
update  
ningning 已提交
631
文本的选中范围。
632 633 634 635 636 637 638 639 640 641

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

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

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

N
update  
ningning 已提交
642
选中文本时,光标移动的方向。
643 644 645 646 647

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
648
| direction  | [Direction](#direction10) | 是 | 是 | 选中文本时,光标的移动方向。|
649

650 651 652 653 654 655 656 657
## InputWindowInfo<sup>10+</sup>

输入法软键盘的窗口信息。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
658
| name  | string | 是 | 是 | 输入法窗口的名称。|
H
Hollokin 已提交
659 660 661 662
| left  | number | 是 | 是 | 输入法窗口左上顶点的横坐标,单位为px。|
| top  | number | 是 | 是 | 输入法窗口左上顶点的纵坐标,单位为px。|
| width  | number | 是 | 是 | 输入法窗口的宽度,单位为px。|
| height  | number | 是 | 是 | 输入法窗口的高度,单位为px。|
663

H
Hollokin 已提交
664 665
## InputMethodController

N
update  
ningning 已提交
666
下列API示例中都需使用[getController](#inputmethodgetcontroller9)获取到InputMethodController实例,再通过实例调用对应方法。
667 668 669 670 671

### attach<sup>10+</sup>

attach(showKeyboard: boolean, textConfig: TextConfig, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
672
自绘控件绑定输入法。使用callback异步回调。
H
换行  
Hollokin 已提交
673

N
update  
ningning 已提交
674 675 676
> **说明**
>
> 需要先调用此接口,完成自绘控件与输入法的绑定,才能使用以下功能:显示/隐藏键盘、更新光标信息、更改编辑框选中范围、保存配置信息、监听处理由输入法应用发送的信息或命令等。
677 678 679 680 681 682 683

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
684 685
| showKeyboard | boolean | 是 | 绑定输入法成功后,是否拉起输入法键盘。<br>- ture表示拉起,false表示不拉起。 |
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑框的配置信息。 |
686 687 688 689 690 691 692 693
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当绑定输入法成功后,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
694 695
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
696 697 698

**示例:**

699
```ts
700
try {
701 702 703 704 705 706
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
707
  inputMethodController.attach(true, textConfig, (err: Error) => {
708 709 710 711
    if (err) {
      console.error(`Failed to attach: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
712
    console.log('Succeeded in attaching the inputMethod.');
713
  });
H
Hollokin 已提交
714 715
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
716 717 718 719 720 721 722
}
```

### attach<sup>10+</sup>

attach(showKeyboard: boolean, textConfig: TextConfig): Promise&lt;void&gt;

N
update  
ningning 已提交
723
自绘控件绑定输入法。使用promise异步回调。
H
换行  
Hollokin 已提交
724

N
update  
ningning 已提交
725 726 727
> **说明**
>
> 需要先调用此接口,完成自绘控件与输入法的绑定,才能使用以下功能:显示/隐藏键盘、更新光标信息、更改编辑框选中范围、保存配置信息、监听处理由输入法应用发送的信息或命令等。
728 729 730 731 732 733 734

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
735 736
| showKeyboard | boolean | 是 | 绑定输入法成功后,是否拉起输入法键盘。<br>- ture表示拉起,false表示不拉起。|
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑框的配置信息。 |
737 738 739 740 741 742 743 744 745 746 747 748 749

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
750 751
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
752 753 754

**示例:**

755
```ts
756
try {
757 758 759 760 761 762 763
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
  inputMethodController.attach(true, textConfig).then(() => {
H
Hollokin 已提交
764
    console.log('Succeeded in attaching inputMethod.');
765
  }).catch((err: Error) => {
766 767
    console.error(`Failed to attach: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
768 769
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
770 771 772 773 774 775 776
}
```

### showTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
777
进入文本编辑状态。使用callback异步回调。
H
换行  
Hollokin 已提交
778

N
update  
ningning 已提交
779 780 781
> **说明**
>
> 编辑框与输入法绑定成功后,可调用该接口拉起软键盘,进入文本编辑状态。
782 783 784 785 786 787 788 789 790 791 792 793 794 795 796

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。若成功进入编辑状态,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
797 798 799
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
800 801 802

**示例:**

803 804
```ts
inputMethodController.showTextInput((err: Error) => {
805 806 807 808
  if (err) {
    console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
809
  console.log('Succeeded in showing the inputMethod.');
810 811 812 813 814 815 816
});
```

### showTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
817
进入文本编辑状态。使用promise异步回调。
H
换行  
Hollokin 已提交
818

N
update  
ningning 已提交
819 820 821
> **说明**
>
> 编辑框与输入法绑定成功后,可调用该接口拉起软键盘,进入文本编辑状态。
822 823 824 825 826 827 828 829 830 831 832 833 834 835 836

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
837 838 839
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
840 841 842

**示例:**

843
```ts
844
inputMethodController.showTextInput().then(() => {
H
Hollokin 已提交
845
  console.log('Succeeded in showing text input.');
846
}).catch((err: Error) => {
847
  console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
848 849 850 851 852 853 854
});
```

### hideTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
855
退出文本编辑状态。使用callback异步回调。
H
换行  
Hollokin 已提交
856

N
update  
ningning 已提交
857 858 859 860 861
> **说明**
>
> 调用接口时,若软键盘处于显示状态,调用接口后软键盘会被隐藏。
>
> 调用该接口不会解除与输入法的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入文本编辑状态。
862 863 864 865 866 867 868 869 870 871 872 873 874 875 876

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功退出编辑状态时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
877 878 879
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
880 881 882

**示例:**

883 884
```ts
inputMethodController.hideTextInput((err: Error) => {
885 886 887 888
  if (err) {
    console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
889
  console.log('Succeeded in hiding text input.');
890 891 892 893 894 895 896
});
```

### hideTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
897
退出文本编辑状态。使用promise异步回调。
H
换行  
Hollokin 已提交
898

N
update  
ningning 已提交
899 900 901 902 903
> **说明**
>
> 调用接口时,若软键盘处于显示状态,调用接口后软键盘会被隐藏。
>
> 调用该接口不会解除与输入法的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入文本编辑状态。
904 905 906 907 908 909 910 911 912 913 914 915 916 917 918

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
919 920 921
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
922 923 924

**示例:**

925
```ts
H
Hollokin 已提交
926
inputMethodController.hideTextInput().then(() => {
H
Hollokin 已提交
927
  console.log('Succeeded in hiding inputMethod.');
928
}).catch((err: Error) => {
H
Hollokin 已提交
929 930
  console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
})
931 932 933 934 935 936
```

### detach<sup>10+</sup>

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

N
update  
ningning 已提交
937
自绘控件解除与输入法的绑定。使用callback异步回调。
938 939 940 941 942 943 944 945 946 947 948 949 950 951 952

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当解绑定输入法成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
953 954
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
955 956 957

**示例:**

958 959
```ts
inputMethodController.detach((err: Error) => {
960 961 962 963
  if (err) {
    console.error(`Failed to detach: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
964
  console.log('Succeeded in detaching inputMethod.');
965 966 967 968 969 970 971
});
```

### detach<sup>10+</sup>

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

N
update  
ningning 已提交
972
自绘控件解除与输入法的绑定。使用promise异步回调。
973 974 975 976 977 978 979 980 981 982 983 984 985 986 987

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
988 989
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
990 991 992

**示例:**

993
```ts
994
inputMethodController.detach().then(() => {
H
Hollokin 已提交
995
  console.log('Succeeded in detaching inputMethod.');
996
}).catch((err: Error) => {
H
Hollokin 已提交
997
  console.error(`Failed to detach: ${JSON.stringify(err)}`);
998 999 1000 1001 1002 1003 1004
});
```

### setCallingWindow<sup>10+</sup>

setCallingWindow(windowId: number, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1005
设置要避让软键盘的窗口。使用callback异步回调。
H
换行  
Hollokin 已提交
1006

N
update  
ningning 已提交
1007 1008 1009
> **说明**
>
> 将绑定到输入法的应用程序所在的窗口Id传入,此窗口可以避让输入法窗口。
1010 1011 1012 1013 1014 1015 1016

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1017
| windowId | number | 是 | 绑定输入法应用的应用程序所在的窗口Id。 |
1018 1019 1020 1021 1022 1023 1024 1025
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当设置成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1026 1027 1028
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1029 1030 1031

**示例:**

1032
```ts
1033
try {
1034
  let windowId: number = 2000;
1035
  inputMethodController.setCallingWindow(windowId, (err: Error) => {
1036 1037 1038 1039
    if (err) {
      console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1040
    console.log('Succeeded in setting callingWindow.');
1041
  });
H
Hollokin 已提交
1042 1043
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1044 1045 1046 1047 1048 1049 1050
}
```

### setCallingWindow<sup>10+</sup>

setCallingWindow(windowId: number): Promise&lt;void&gt;

N
update  
ningning 已提交
1051
设置要避让软键盘的窗口。使用promise异步回调。
H
换行  
Hollokin 已提交
1052

N
update  
ningning 已提交
1053 1054 1055
> **说明**
>
> 将绑定到输入法的应用程序所在的窗口Id传入,此窗口可以避让输入法窗口。
1056 1057 1058 1059 1060 1061 1062

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1063
| windowId | number | 是 | 绑定输入法应用的应用程序所在的窗口Id。 |
1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1077 1078 1079
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1080 1081 1082

**示例:**

1083
```ts
1084
try {
1085 1086
  let windowId: number = 2000;
  inputMethodController.setCallingWindow(windowId).then(() => {
H
Hollokin 已提交
1087
    console.log('Succeeded in setting callingWindow.');
1088
  }).catch((err: Error) => {
1089 1090
    console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1091 1092
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1093 1094 1095 1096 1097 1098 1099
}
```

### updateCursor<sup>10+</sup>

updateCursor(cursorInfo: CursorInfo, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1100
更新当前编辑框内的光标信息。当光标信息发生变化时,调用该接口使输入法感知到光标变化。使用callback异步回调。
1101 1102 1103 1104 1105 1106 1107 1108

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| cursorInfo | [CursorInfo](#cursorinfo10) | 是 | 光标信息。 |
H
update  
Hollokin 已提交
1109
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当光标信息更新成功时,err为undefined;否则为错误对象。 |
1110 1111 1112 1113 1114 1115 1116

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1117 1118 1119
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1120 1121 1122

**示例:**

1123
```ts
1124
try {
1125 1126
  let cursorInfo: inputMethod.CursorInfo = { left: 0, top: 0, width: 600, height: 800 };
  inputMethodController.updateCursor(cursorInfo, (err: Error) => {
1127 1128 1129 1130
    if (err) {
      console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1131
    console.log('Succeeded in updating cursorInfo.');
1132
  });
H
Hollokin 已提交
1133 1134
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1135 1136 1137 1138 1139 1140 1141
}
```

### updateCursor<sup>10+</sup>

updateCursor(cursorInfo: CursorInfo): Promise&lt;void&gt;

N
update  
ningning 已提交
1142
更新当前编辑框内的光标信息。当光标信息发生变化时,调用该接口使输入法感知到光标变化。使用promise异步回调。
1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| cursorInfo | [CursorInfo](#cursorinfo10) | 是 | 光标信息。 |

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1164 1165 1166
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1167 1168 1169

**示例:**

1170
```ts
1171
try {
1172 1173
  let cursorInfo: inputMethod.CursorInfo = { left: 0, top: 0, width: 600, height: 800 };
  inputMethodController.updateCursor(cursorInfo).then(() => {
H
Hollokin 已提交
1174
    console.log('Succeeded in updating cursorInfo.');
1175
  }).catch((err: Error) => {
1176 1177
    console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1178 1179
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1180 1181 1182 1183 1184 1185 1186
}
```

### changeSelection<sup>10+</sup>

changeSelection(text: string, start: number, end: number, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1187
更新当前编辑框内被选中的文本信息。当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息,使输入法应用感知到变化。使用callback异步回调。
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 整个输入文本。 |
| start | number | 是 | 所选文本的起始位置。 |
| end | number | 是 | 所选文本的结束位置。 |
N
update  
ningning 已提交
1198
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当文本信息更新成功时,err为undefined;否则为错误对象。 |
1199 1200 1201 1202 1203 1204 1205

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1206 1207 1208
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1209 1210 1211

**示例:**

1212
```ts
1213
try {
1214
  inputMethodController.changeSelection('text', 0, 5, (err: Error) => {
1215 1216 1217 1218
    if (err) {
      console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1219
    console.log('Succeeded in changing selection.');
1220
  });
H
Hollokin 已提交
1221 1222
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1223 1224 1225 1226 1227 1228 1229
}
```

### changeSelection<sup>10+</sup>

changeSelection(text: string, start: number, end: number): Promise&lt;void&gt;

N
update  
ningning 已提交
1230
更新当前编辑框内被选中的文本信息。当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息,使输入法应用感知到变化。使用promise异步回调。
1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 整个输入文本。 |
| start | number | 是 | 所选文本的起始位置。 |
| end | number | 是 | 所选文本的结束位置。 |

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1254 1255 1256
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1257 1258 1259

**示例:**

1260
```ts
1261
try {
1262
  inputMethodController.changeSelection('test', 0, 5).then(() => {
H
Hollokin 已提交
1263
    console.log('Succeeded in changing selection.');
1264
  }).catch((err: Error) => {
1265 1266
    console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1267 1268
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1269 1270 1271 1272 1273 1274 1275
}
```

### updateAttribute<sup>10+</sup>

updateAttribute(attribute: InputAttribute, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1276
更新编辑框属性信息。使用callback异步回调。
1277 1278 1279 1280 1281 1282 1283

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1284 1285
| attribute | [InputAttribute](#inputattribute10) | 是 | 编辑框属性对象。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当编辑框属性信息更新成功时,err为undefined;否则为错误对象。 |
1286 1287 1288 1289 1290 1291 1292

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1293 1294 1295
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1296 1297 1298

**示例:**

1299
```ts
1300
try {
1301 1302
  let inputAttribute: inputMethod.InputAttribute = { textInputType: 0, enterKeyType: 1 };
  inputMethodController.updateAttribute(inputAttribute, (err: Error) => {
1303 1304 1305 1306
    if (err) {
      console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1307
    console.log('Succeeded in updating attribute.');
1308
  });
H
Hollokin 已提交
1309 1310
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1311 1312 1313 1314 1315 1316 1317
}
```

### updateAttribute<sup>10+</sup>

updateAttribute(attribute: InputAttribute): Promise&lt;void&gt;

N
update  
ningning 已提交
1318
更新编辑框属性信息。使用promise异步回调。
1319 1320 1321 1322 1323 1324 1325

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1326
| attribute | [InputAttribute](#inputattribute10) | 是 |  编辑框属性对象。 |
1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1340 1341 1342
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1343 1344 1345

**示例:**

1346
```ts
1347
try {
1348 1349
  let inputAttribute: inputMethod.InputAttribute = { textInputType: 0, enterKeyType: 1 };
  inputMethodController.updateAttribute(inputAttribute).then(() => {
H
Hollokin 已提交
1350
    console.log('Succeeded in updating attribute.');
1351
  }).catch((err: Error) => {
1352 1353
    console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1354 1355
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1356 1357 1358 1359 1360 1361 1362
}
```

### stopInputSession<sup>9+</sup>

stopInputSession(callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1363
结束输入会话。使用callback异步回调。
H
换行  
Hollokin 已提交
1364

N
update  
ningning 已提交
1365 1366 1367
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当结束输入会话成功时,err为undefined,data为true;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1383 1384
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1385 1386 1387

**示例:**

1388
```ts
1389
try {
1390
  inputMethodController.stopInputSession((err: Error, result: boolean) => {
H
Hollokin 已提交
1391 1392
    if (err) {
      console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1393 1394 1395
      return;
    }
    if (result) {
H
Hollokin 已提交
1396
      console.log('Succeeded in stopping inputSession.');
1397 1398 1399 1400
    } else {
      console.error('Failed to stopInputSession.');
    }
  });
H
Hollokin 已提交
1401 1402
} catch(err) {
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1403 1404 1405 1406 1407 1408 1409
}
```

### stopInputSession<sup>9+</sup>

stopInputSession(): Promise&lt;boolean&gt;

H
Hollokin 已提交
1410
结束输入会话。使用promise异步回调。
H
换行  
Hollokin 已提交
1411

N
update  
ningning 已提交
1412 1413 1414
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
1415 1416 1417 1418 1419 1420 1421

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
N
update  
ningning 已提交
1422
| Promise&lt;boolean&gt; | Promise对象。返回true表示结束输入会话成功,返回false表示结束输入会话失败。 |
1423 1424 1425 1426 1427 1428 1429

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1430 1431
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1432 1433 1434

**示例:**

1435
```ts
1436
try {
1437
  inputMethodController.stopInputSession().then((result: boolean) => {
1438
    if (result) {
H
Hollokin 已提交
1439
      console.log('Succeeded in stopping inputSession.');
1440 1441 1442
    } else {
      console.error('Failed to stopInputSession.');
    }
1443
  }).catch((err: Error) => {
H
Hollokin 已提交
1444
    console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1445 1446
  })
} catch(err) {
H
Hollokin 已提交
1447
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1448 1449 1450 1451 1452 1453 1454
}
```

### showSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1455
显示输入法软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1456

N
update  
ningning 已提交
1457 1458 1459
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用显示当前输入法的软键盘。
1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**参数:**

| 参数名   | 类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘显示成功。err为undefined,否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1477 1478
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1479 1480 1481

**示例:**

1482 1483
```ts
inputMethodController.showSoftKeyboard((err: Error) => {
1484
  if (!err) {
H
Hollokin 已提交
1485
    console.log('Succeeded in showing softKeyboard.');
1486
  } else {
H
Hollokin 已提交
1487
    console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1488
  }
1489 1490 1491 1492 1493 1494 1495
})
```

### showSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1496
显示输入法软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1497

N
update  
ningning 已提交
1498 1499 1500
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用显示当前输入法的软键盘。
1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1518 1519
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1520 1521 1522

**示例:**

1523
```ts
1524
inputMethodController.showSoftKeyboard().then(() => {
1525
  console.log('Succeeded in showing softKeyboard.');
1526
}).catch((err: Error) => {
H
Hollokin 已提交
1527
  console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1528 1529 1530 1531 1532 1533 1534
});
```

### hideSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1535
隐藏输入法软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1536

N
update  
ningning 已提交
1537 1538 1539
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用隐藏当前输入法的软键盘。
1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**参数:**

| 参数名   | 类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘隐藏成功。err为undefined,否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1557 1558
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1559 1560 1561

**示例:**

1562 1563
```ts
inputMethodController.hideSoftKeyboard((err: Error) => {
1564
  if (!err) {
H
Hollokin 已提交
1565
    console.log('Succeeded in hiding softKeyboard.');
1566
  } else {
H
Hollokin 已提交
1567
    console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1568
  }
1569 1570 1571 1572 1573 1574 1575
})
```

### hideSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1576
隐藏输入法软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1577

N
update  
ningning 已提交
1578 1579 1580
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用隐藏当前输入法的软键盘。
1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1598 1599
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1600 1601 1602

**示例:**

1603
```ts
1604
inputMethodController.hideSoftKeyboard().then(() => {
1605
  console.log('Succeeded in hiding softKeyboard.');
1606
}).catch((err: Error) => {
H
Hollokin 已提交
1607
  console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1608 1609 1610 1611 1612 1613 1614
});
```

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

stopInput(callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1615
结束输入会话。使用callback异步回调。
H
换行  
Hollokin 已提交
1616

1617
> **说明:** 
N
update  
ningning 已提交
1618 1619 1620
> 
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
> 
1621
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1622 1623 1624 1625 1626 1627 1628

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1629
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当会话结束成功,err为undefined,data为true;否则为错误对象。 |
1630 1631 1632

**示例:**

1633 1634
```ts
inputMethodController.stopInput((err: Error, result: boolean) => {
H
Hollokin 已提交
1635 1636
  if (err) {
    console.error(`Failed to stopInput: ${JSON.stringify(err)}`);
1637 1638 1639
    return;
  }
  if (result) {
H
Hollokin 已提交
1640
    console.log('Succeeded in stopping input.');
1641 1642 1643
  } else {
    console.error('Failed to stopInput.');
  }
1644 1645 1646 1647 1648 1649 1650
});
```

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

stopInput(): Promise&lt;boolean&gt;

H
Hollokin 已提交
1651
结束输入会话。使用promise异步回调。
H
换行  
Hollokin 已提交
1652

1653
> **说明:** 
N
update  
ningning 已提交
1654 1655 1656
> 
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
> 
1657
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1658 1659 1660 1661 1662 1663 1664

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
N
update  
ningning 已提交
1665
| Promise&lt;boolean&gt; | Promise对象。返回true表示会话结束成功;返回false表示会话结束失败。 |
1666 1667 1668

**示例:**

1669 1670
```ts
inputMethodController.stopInput().then((result: boolean) => {
1671
  if (result) {
H
Hollokin 已提交
1672
    console.log('Succeeded in stopping input.');
1673 1674 1675
  } else {
    console.error('Failed to stopInput.');
  }
1676
}).catch((err: Error) => {
H
Hollokin 已提交
1677
  console.error(`Failed to stopInput: ${JSON.stringify(err)}`);
1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692
})
```

### on('insertText')<sup>10+</sup>

on(type: 'insertText', callback: (text: string) => void): void;

订阅输入法应用插入文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1693 1694
| type     | string                                                       | 是   | 设置监听类型,固定取值为'insertText'。 |
| callback | (text: string) => void | 是   | 回调函数,返回需要插入的文本内容。<br/>根据传入的文本,在回调函数中操作编辑框中的内容。 |
1695 1696 1697 1698 1699 1700 1701

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1702
| 12800009 | input method client is detached. |
1703 1704 1705

**示例:**

1706
```ts
1707
try {
1708
  inputMethodController.on('insertText', (text: string) => {
H
Hollokin 已提交
1709
    console.log(`Succeeded in subscribing insertText: ${text}`);
1710
  });
H
Hollokin 已提交
1711 1712
} catch(err) {
  console.error(`Failed to subscribe insertText: ${JSON.stringify(err)}`);
1713 1714 1715 1716 1717
}
```

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

G
guojin31 已提交
1718
off(type: 'insertText', callback?: (text: string) => void): void
1719 1720 1721 1722 1723 1724 1725

取消订阅输入法应用插入文本事件。

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

**参数:**

G
guojin31 已提交
1726 1727
| 参数名   | 类型                   | 必填 | 说明                                                         |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1728 1729
| type     | string                 | 是   | 设置监听类型,固定取值为'insertText'。 |
| callback | (text: string) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br/>参数不填写时,取消订阅type对应的所有回调事件。 |
1730 1731 1732

**示例:**

1733
```ts
G
guojin31 已提交
1734 1735 1736 1737
let onInsertTextCallback = (text: string) => {
    console.log(`Succeeded in subscribing insertText: ${text}`);
};
inputMethodController.off('insertText', onInsertTextCallback);
H
Hollokin 已提交
1738
inputMethodController.off('insertText');
1739 1740
```

1741
### on('deleteLeft')<sup>10+</sup>
1742

1743
on(type: 'deleteLeft', callback: (length: number) => void): void
1744

1745
订阅输入法应用向左删除事件。使用callback异步回调。
1746 1747 1748 1749 1750

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

**参数:**

H
update  
Hollokin 已提交
1751 1752
| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
N
update  
ningning 已提交
1753 1754
| type     | string  | 是   | 设置监听类型,固定取值为'deleteLeft'。|
| callback | (length: number) => void | 是   | 回调函数,返回需要向左删除的文本长度。<br/>根据传入的删除长度,在回调函数中操作编辑框中的文本。 |
1755 1756 1757 1758 1759 1760 1761

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1762
| 12800009 | input method client is detached. |
1763 1764 1765

**示例:**

1766
```ts
1767
try {
1768
  inputMethodController.on('deleteLeft', (length: number) => {
H
Hollokin 已提交
1769
    console.log(`Succeeded in subscribing deleteLeft, length: ${length}`);
1770
  });
H
Hollokin 已提交
1771 1772
} catch(err) {
  console.error(`Failed to subscribe deleteLeft: ${JSON.stringify(err)}`);
1773
}
1774 1775
```

N
update  
ningning 已提交
1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792
### off('deleteLeft')<sup>10+</sup>

off(type: 'deleteLeft', callback?: (length: number) => void): void

取消订阅输入法应用向左删除文本事件。

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

**参数:**

| 参数名   | 类型                     | 必填 | 说明                                                         |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                   | 是   | 设置监听,固定取值为'deleteLeft'。 |
| callback | (length: number) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |

**示例:**

1793
```ts
N
update  
ningning 已提交
1794 1795 1796 1797 1798 1799 1800
let onDeleteLeftCallback = (length: number) => {
    console.log(`Succeeded in subscribing deleteLeft, length: ${length}`);
};
inputMethodController.off('deleteLeft', onDeleteLeftCallback);
inputMethodController.off('deleteLeft');
```

1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812
### on('deleteRight')<sup>10+</sup>

on(type: 'deleteRight', callback: (length: number) => void): void

订阅输入法应用向右删除事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
N
update  
ningning 已提交
1813 1814
| type     | string  | 是   | 设置监听类型,固定取值为'deleteRight'。|
| callback | (length: number) => void | 是   | 回调函数,返回需要向右删除的文本长度。<br/>根据传入的删除长度,在回调函数中操作编辑框中的文本。 |
1815 1816 1817 1818 1819 1820 1821 1822

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |
1823

1824 1825
**示例:**

1826
```ts
1827
try {
1828
  inputMethodController.on('deleteRight', (length: number) => {
H
Hollokin 已提交
1829
    console.log(`Succeeded in subscribing deleteRight, length: ${length}`);
1830
  });
H
Hollokin 已提交
1831 1832
} catch(err) {
  console.error(`Failed to subscribe deleteRight: ${JSON.stringify(err)}`);
1833 1834
}
```
1835 1836 1837

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

G
guojin31 已提交
1838
off(type: 'deleteRight', callback?: (length: number) => void): void
1839 1840 1841 1842 1843 1844 1845

取消订阅输入法应用向右删除文本事件。

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

**参数:**

G
guojin31 已提交
1846 1847
| 参数名   | 类型                     | 必填 | 说明                                                         |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1848 1849
| type     | string                   | 是   | 设置监听类型,固定取值为`deleteRight`。 |
| callback | (length: number) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
1850 1851 1852

**示例:**

1853
```ts
G
guojin31 已提交
1854 1855 1856 1857
let onDeleteRightCallback = (length: number) => {
    console.log(`Succeeded in subscribing deleteRight, length: ${length}`);
};
inputMethodController.off('deleteRight', onDeleteRightCallback);
H
Hollokin 已提交
1858
inputMethodController.off('deleteRight');
1859 1860 1861 1862
```

### on('sendKeyboardStatus')<sup>10+</sup>

G
guojin31 已提交
1863
on(type: 'sendKeyboardStatus', callback: (keyboardStatus: KeyboardStatus) => void): void
1864

N
update  
ningning 已提交
1865
订阅输入法应用发送输入法软键盘状态事件。使用callback异步回调。
1866

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

**参数:**

H
update  
Hollokin 已提交
1871 1872
| 参数名   | 类型  | 必填 | 说明    |
| -------- | ------ | ---- | ---- |
N
update  
ningning 已提交
1873 1874
| type     | string  | 是   | 设置监听类型,固定取值为'sendKeyboardStatus'。 |
| callback | (keyboardStatus: [KeyboardStatus](#keyboardstatus10)) => void | 是   | 回调函数,返回软键盘状态。<br/>根据传入的软键盘状态,在回调函数中做相应操作。 |
1875

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

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

1880
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1881
| -------- | -------------------------------------- |
1882
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1883

1884 1885
**示例:**

1886
```ts
H
Hollokin 已提交
1887
try {
1888
  inputMethodController.on('sendKeyboardStatus', (keyboardStatus: inputMethod.KeyboardStatus) => {
G
guojin31 已提交
1889
    console.log(`Succeeded in subscribing sendKeyboardStatus, keyboardStatus: ${keyboardStatus}`);
1890
  });
H
Hollokin 已提交
1891 1892
} catch(err) {
  console.error(`Failed to subscribe sendKeyboardStatus: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1893
}
1894 1895
```

1896
### off('sendKeyboardStatus')<sup>10+</sup>
1897

G
guojin31 已提交
1898
off(type: 'sendKeyboardStatus', callback?: (keyboardStatus: KeyboardStatus) => void): void
1899

N
update  
ningning 已提交
1900
取消订阅输入法应用发送软键盘状态事件。
1901

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

1904
**参数:**
1905

G
guojin31 已提交
1906 1907
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1908 1909
| type     | string                                                       | 是   | 设置监听类型,固定取值为'sendKeyboardStatus'。 |
| callback | (keyboardStatus: [KeyboardStatus](#keyboardstatus10)) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1910 1911 1912

**示例:**

1913 1914
```ts
let onSendKeyboardStatus = (keyboardStatus: inputMethod.KeyboardStatus) => {
G
guojin31 已提交
1915
    console.log(`Succeeded in subscribing sendKeyboardStatus, keyboardStatus: ${keyboardStatus}`);
G
guojin31 已提交
1916 1917
};
inputMethodController.off('sendKeyboardStatus', onSendKeyboardStatus);
H
Hollokin 已提交
1918
inputMethodController.off('sendKeyboardStatus');
1919 1920
```

1921
### on('sendFunctionKey')<sup>10+</sup>
Z
zhaolinglan 已提交
1922

1923
on(type: 'sendFunctionKey', callback: (functionKey: FunctionKey) => void): void
Z
zhaolinglan 已提交
1924

1925
订阅输入法应用发送功能键事件。使用callback异步回调。
H
Hollokin 已提交
1926

1927
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1928 1929 1930

**参数:**

H
update  
Hollokin 已提交
1931 1932
| 参数名   | 类型  | 必填 | 说明     |
| -------- | -------- | ---- | ----- |
N
update  
ningning 已提交
1933 1934
| type     | string  | 是   | 设置监听类型,固定取值为'sendFunctionKey'。|
| callback | (functionKey: [FunctionKey](#functionkey10)) => void | 是   | 回调函数,返回输入法应用发送的功能键信息。<br/>根据返回的功能键信息,做相应操作。 |
Z
zhaolinglan 已提交
1935

H
Hollokin 已提交
1936 1937
**错误码:**

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

1940
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1941
| -------- | -------------------------------------- |
1942
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1943

Z
zhaolinglan 已提交
1944 1945
**示例:**

1946
```ts
1947
try {
1948
  inputMethodController.on('sendFunctionKey', (functionKey: inputMethod.FunctionKey) => {
H
Hollokin 已提交
1949
    console.log(`Succeeded in subscribing sendFunctionKey, functionKey.enterKeyType: ${functionKey.enterKeyType}`);
1950
  });
H
Hollokin 已提交
1951 1952
} catch(err) {
  console.error(`Failed to subscribe sendFunctionKey: ${JSON.stringify(err)}`);
1953
}
Z
zhaolinglan 已提交
1954 1955
```

1956
### off('sendFunctionKey')<sup>10+</sup>
H
Hollokin 已提交
1957

G
guojin31 已提交
1958
off(type: 'sendFunctionKey', callback?: (functionKey: FunctionKey) => void): void
Z
zhaolinglan 已提交
1959

N
update  
ningning 已提交
1960
取消订阅输入法应用发送功能键事件。
H
Hollokin 已提交
1961

1962
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1963

1964
**参数:**
Z
zhaolinglan 已提交
1965

G
guojin31 已提交
1966 1967
| 参数名   | 类型                                                 | 必填 | 说明                                                         |
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1968 1969
| type     | string                                               | 是   | 设置监听类型,固定取值为'sendFunctionKey'。 |
| callback | (functionKey: [FunctionKey](#functionkey10)) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhaolinglan 已提交
1970 1971 1972

**示例:**

1973 1974
```ts
let onSendFunctionKey = (functionKey: inputMethod.FunctionKey) => {
G
guojin31 已提交
1975 1976 1977
    console.log(`Succeeded in subscribing sendFunctionKey, functionKey: ${functionKey.enterKeyType}`);
};
inputMethodController.off('sendFunctionKey', onSendFunctionKey);
H
Hollokin 已提交
1978
inputMethodController.off('sendFunctionKey');
Z
zhaolinglan 已提交
1979 1980
```

1981
### on('moveCursor')<sup>10+</sup>
Z
zhaolinglan 已提交
1982

1983
on(type: 'moveCursor', callback: (direction: Direction) => void): void
Z
zhaolinglan 已提交
1984

1985
订阅输入法应用移动光标事件。使用callback异步回调。
H
Hollokin 已提交
1986

1987
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1988 1989 1990

**参数:**

H
update  
Hollokin 已提交
1991 1992
| 参数名   | 类型 | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
N
update  
ningning 已提交
1993 1994
| type     | string | 是   | 设置监听类型,固定取值为'moveCursor'。 |
| callback | callback: (direction: [Direction<sup>10+</sup>](#direction10)) => void | 是   | 回调函数,返回光标信息。<br/>根据返回的光标移动方向,改变光标位置,如光标向上或向下。  |
Z
zhaolinglan 已提交
1995

H
Hollokin 已提交
1996 1997
**错误码:**

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

H
Hollokin 已提交
2000 2001
| 错误码ID | 错误信息                           |
| -------- | -------------------------------- |
2002
| 12800009 | input method client is detached. |
H
Hollokin 已提交
2003

Z
zhaolinglan 已提交
2004 2005
**示例:**

2006
```ts
2007
try {
2008
  inputMethodController.on('moveCursor', (direction: inputMethod.Direction) => {
H
Hollokin 已提交
2009
    console.log(`Succeeded in subscribing moveCursor, direction: ${direction}`);
2010
  });
H
Hollokin 已提交
2011 2012
} catch(err) {
  console.error(`Failed to subscribe moveCursor: ${JSON.stringify(err)}`);
2013
}
Z
zhaolinglan 已提交
2014 2015
```

2016
### off('moveCursor')<sup>10+</sup>
Z
zhaolinglan 已提交
2017

G
guojin31 已提交
2018
off(type: 'moveCursor', callback?: (direction: Direction) => void): void
Z
zhaolinglan 已提交
2019

2020
取消订阅输入法应用移动光标事件。
H
Hollokin 已提交
2021

2022
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2023

2024
**参数:**
Z
zhaolinglan 已提交
2025

H
Hollokin 已提交
2026 2027
| 参数名  | 类型    | 必填 | 说明  |
| ------ | ------ | ---- | ---- |
N
update  
ningning 已提交
2028 2029
| type   | string | 是   | 设置监听类型,固定取值为'moveCursor'。 |
| callback | (direction: [Direction<sup>10+</sup>](#direction10)) => void | 否 | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhaolinglan 已提交
2030 2031 2032

**示例:**

2033 2034
```ts
let onMoveCursorCallback = (direction: inputMethod.Direction) => {
G
guojin31 已提交
2035 2036 2037
    console.log(`Succeeded in subscribing moveCursor, direction: ${direction}`);
};
inputMethodController.off('moveCursor', onMoveCursorCallback);
H
Hollokin 已提交
2038
inputMethodController.off('moveCursor');
Z
zhaolinglan 已提交
2039 2040
```

2041
### on('handleExtendAction')<sup>10+</sup>
H
Hollokin 已提交
2042

2043
on(type: 'handleExtendAction', callback: (action: ExtendAction) => void): void
H
Hollokin 已提交
2044

N
update  
ningning 已提交
2045
订阅输入法应用发送扩展编辑操作事件。使用callback异步回调。
H
Hollokin 已提交
2046

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

**参数:**

H
update  
Hollokin 已提交
2051 2052
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | -------- |
N
update  
ningning 已提交
2053 2054
| type     | string    | 是   | 设置监听类型,固定取值为'handleExtendAction'。 |
| callback | callback: (action: [ExtendAction](#extendaction10)) => void | 是   | 回调函数,返回扩展编辑操作类型。<br/>根据传入的扩展编辑操作类型,做相应的操作,如剪切、复制等。|
2055 2056 2057 2058 2059 2060 2061

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
2062
| 12800009 | input method client is detached. |
H
Hollokin 已提交
2063 2064 2065

**示例:**

2066
```ts
2067
try {
2068
  inputMethodController.on('handleExtendAction', (action: inputMethod.ExtendAction) => {
H
Hollokin 已提交
2069
    console.log(`Succeeded in subscribing handleExtendAction, action: ${action}`);
2070
  });
H
Hollokin 已提交
2071 2072
} catch(err) {
  console.error(`Failed to subscribe handleExtendAction: ${JSON.stringify(err)}`);
2073
}
H
Hollokin 已提交
2074 2075
```

2076
### off('handleExtendAction')<sup>10+</sup>
H
Hollokin 已提交
2077

G
guojin31 已提交
2078
off(type: 'handleExtendAction', callback?: (action: ExtendAction) => void): void
H
Hollokin 已提交
2079

N
update  
ningning 已提交
2080
取消订阅输入法应用发送扩展编辑操作事件。使用callback异步回调。
H
Hollokin 已提交
2081

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

2084
**参数:**
H
Hollokin 已提交
2085

H
update  
Hollokin 已提交
2086 2087
| 参数名 | 类型   | 必填 | 说明  |
| ------ | ------ | ---- | ------- |
N
update  
ningning 已提交
2088 2089
| type   | string | 是   | 设置监听类型,固定取值为'handleExtendAction'。 |
| callback | (action: [ExtendAction](#extendaction10)) => void | 否 | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2090

H
Hollokin 已提交
2091 2092
**示例:**

2093 2094
```ts
let onHandleExtendActionCallback = (action: inputMethod.ExtendAction) => {
G
guojin31 已提交
2095 2096 2097
    console.log(`Succeeded in subscribing handleExtendAction, action: ${action}`);
};
inputMethodController.off('handleExtendAction', onHandleExtendActionCallback);
H
Hollokin 已提交
2098
inputMethodController.off('handleExtendAction');
H
Hollokin 已提交
2099 2100
```

Z
add doc  
zhaolinglan 已提交
2101 2102 2103 2104 2105 2106 2107 2108 2109 2110
### on('selectByRange')<sup>10+</sup>

on(type: 'selectByRange', callback: Callback&lt;Range&gt;): void

订阅输入法应用按范围选中文本事件。使用callback异步回调。

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

**参数:**

H
update  
Hollokin 已提交
2111 2112
| 参数名   | 类型     | 必填 | 说明     |
| -------- | ---- | ---- | ------- |
N
update  
ningning 已提交
2113 2114
| type     | string  | 是   | 设置监听类型,固定取值为'selectByRange'。 |
| callback | Callback&lt;[Range](#range10)&gt; | 是   | 回调函数,返回需要选中的文本范围。<br/>根据传入的文本范围,开发者在回调函数中编辑框中相应文本。|
Z
add doc  
zhaolinglan 已提交
2115 2116 2117

**示例:**

2118 2119
```ts
inputMethodController.on('selectByRange', (range: inputMethod.Range) => {
H
Hollokin 已提交
2120
  console.log(`Succeeded in subscribing selectByRange: start: ${range.start} , end: ${range.end}`);
Z
add doc  
zhaolinglan 已提交
2121 2122 2123 2124 2125
});
```

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

G
guojin31 已提交
2126
off(type: 'selectByRange', callback?:  Callback&lt;Range&gt;): void
Z
add doc  
zhaolinglan 已提交
2127

N
update  
ningning 已提交
2128
取消订阅输入法应用按范围选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2129 2130 2131 2132 2133

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

**参数:**

G
guojin31 已提交
2134 2135
| 参数名   | 类型                              | 必填 | 说明                                                         |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2136 2137
| type     | string                            | 是   | 设置监听类型,固定取值为'selectByRange'。 |
| callback | Callback&lt;[Range](#range10)&gt; | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
add doc  
zhaolinglan 已提交
2138 2139 2140

**示例:**

2141 2142
```ts
let onSelectByRangeCallback = (range: inputMethod.Range) => {
G
guojin31 已提交
2143 2144 2145
    console.log(`Succeeded in subscribing selectByRange, range: ${JSON.stringify(range)}`);
};
inputMethodController.off('selectByRange', onSelectByRangeCallback);
Z
add doc  
zhaolinglan 已提交
2146 2147 2148 2149 2150
inputMethodController.off('selectByRange');
```

### on('selectByMovement')<sup>10+</sup>

2151
on(type: 'selectByMovement', callback: Callback&lt;Movement&gt;): void
Z
add doc  
zhaolinglan 已提交
2152

N
update  
ningning 已提交
2153
订阅输入法应用按光标移动方向,选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2154 2155 2156 2157 2158

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

**参数:**

H
update  
Hollokin 已提交
2159 2160
| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2161 2162
| type     | string  | 是   | 设置监听类型,固定取值为'selectByMovement'。 |
| callback | Callback&lt;[Movement](#movement10)&gt; | 是   | 回调函数,返回光标移动的方向。<br/>根据传入的光标移动方向,选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
2163 2164 2165

**示例:**

2166 2167
```ts
inputMethodController.on('selectByMovement', (movement: inputMethod.Movement) => {
H
Hollokin 已提交
2168
  console.log('Succeeded in subscribing selectByMovement: direction: ' + movement.direction);
Z
add doc  
zhaolinglan 已提交
2169 2170 2171 2172 2173
});
```

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

G
guojin31 已提交
2174
off(type: 'selectByMovement', callback?: Callback&lt;Movement&gt;): void
Z
add doc  
zhaolinglan 已提交
2175

N
update  
ningning 已提交
2176
取消订阅输入法应用按光标移动方向,选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2177 2178 2179 2180 2181

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

**参数:**

G
guojin31 已提交
2182 2183
| 参数名   | 类型                                 | 必填 | 说明                                                         |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2184 2185
| type     | string                               | 是   | 设置监听类型,固定取值为'selectByMovement'。 |
| callback | Callback&lt;[Movement](#movement10)> | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
add doc  
zhaolinglan 已提交
2186 2187 2188

**示例:**

2189 2190
```ts
let onSelectByMovementCallback = (movement: inputMethod.Movement) => {
G
guojin31 已提交
2191 2192 2193
    console.log(`Succeeded in subscribing selectByMovement, movement.direction: ${movement.direction}`);
};
inputMethodController.off('selectByMovement', onSelectByMovementCallback);
Z
add doc  
zhaolinglan 已提交
2194 2195 2196
inputMethodController.off('selectByMovement');
```

C
cy7717 已提交
2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208
### on('getLeftTextOfCursor')<sup>10+</sup>

on(type: 'getLeftTextOfCursor', callback: (length: number) => string): void;

订阅输入法应用获取光标左侧指定长度文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2209 2210
| type     | string  | 是   | 设置监听类型,固定取值为'getLeftTextOfCursor'。 |
| callback | (length: number) => string | 是   | 回调函数,获取编辑框最新状态下光标左侧指定长度的文本内容并返回。 |
C
cy7717 已提交
2211

C
cy7717 已提交
2212 2213 2214 2215 2216 2217 2218 2219
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2220 2221
**示例:**

2222
```ts
C
cy7717 已提交
2223
try {
2224
  inputMethodController.on('getLeftTextOfCursor', (length: number) => {
C
mod  
cy7717 已提交
2225
    console.info(`Succeeded in subscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2226
    let text:string = "";
C
mod  
cy7717 已提交
2227
    return text;
C
cy7717 已提交
2228 2229
  });
} catch(err) {
2230
  console.error(`Failed to subscribe getLeftTextOfCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2231 2232 2233 2234 2235 2236 2237
}
```

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

off(type: 'getLeftTextOfCursor', callback?: (length: number) => string): void;

N
update  
ningning 已提交
2238
取消订阅输入法应用获取光标左侧指定长度文本事件。使用callback异步回调。
C
cy7717 已提交
2239 2240 2241 2242 2243 2244 2245

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2246 2247
| type   | string | 是   | 设置监听类型,固定取值为'getLeftTextOfCursor'。 |
| callback | (length: number) => string | 否  | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2248 2249 2250

**示例:**

2251
```ts
C
cy7717 已提交
2252
try {
2253
  let getLeftTextOfCursorCallback = (length: number) => {
C
mod  
cy7717 已提交
2254
    console.info(`Succeeded in unsubscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2255
    let text:string = "";
C
mod  
cy7717 已提交
2256
    return text;
2257 2258 2259
  };
  inputMethodController.off('getLeftTextOfCursor', getLeftTextOfCursorCallback);
  inputMethodController.off('getLeftTextOfCursor');
C
cy7717 已提交
2260
} catch(err) {
2261
  console.error(`Failed to unsubscribing getLeftTextOfCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276
}
```

### on('getRightTextOfCursor')<sup>10+</sup>

on(type: 'getRightTextOfCursor', callback: (length: number) => string): void;

订阅输入法应用获取光标右侧指定长度文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2277 2278
| type     | string  | 是   | 设置监听类型,固定取值为'getRightTextOfCursor'。 |
| callback | (length: number) => string | 是   | 回调函数,获取编辑框最新状态下光标右侧指定长度的文本内容并返回。 |
C
cy7717 已提交
2279

C
cy7717 已提交
2280 2281 2282 2283 2284 2285 2286 2287
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2288 2289
**示例:**

2290
```ts
C
cy7717 已提交
2291
try {
2292
  inputMethodController.on('getRightTextOfCursor', (length: number) => {
C
mod  
cy7717 已提交
2293
    console.info(`Succeeded in subscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2294
    let text:string = "";
C
mod  
cy7717 已提交
2295
    return text;
C
cy7717 已提交
2296 2297
  });
} catch(err) {
2298
  console.error(`Failed to subscribe getRightTextOfCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2299 2300 2301 2302 2303 2304 2305
}
```

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

off(type: 'getRightTextOfCursor', callback?: (length: number) => string): void;

N
update  
ningning 已提交
2306
取消订阅输入法应用获取光标右侧指定长度文本事件。使用callback异步回调。
C
cy7717 已提交
2307 2308 2309 2310 2311 2312 2313

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2314 2315
| type   | string | 是   | 设置监听类型,固定取值为'getRightTextOfCursor'。 |
| callback | (length: number) => string | 否  |取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2316 2317 2318

**示例:**

2319
```ts
C
cy7717 已提交
2320
try {
2321
  let getRightTextOfCursorCallback = (length: number) => {
C
mod  
cy7717 已提交
2322
    console.info(`Succeeded in unsubscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2323
    let text:string = "";
C
mod  
cy7717 已提交
2324
    return text;
2325 2326 2327
  };
  inputMethodController.off('getRightTextOfCursor', getRightTextOfCursorCallback);
  inputMethodController.off('getRightTextOfCursor');
C
cy7717 已提交
2328
} catch(err) {
2329
  console.error(`Failed to unsubscribing getRightTextOfCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344
}
```

### on('getTextIndexAtCursor')<sup>10+</sup>

on(type: 'getTextIndexAtCursor', callback: () => number): void;

订阅输入法应用获取光标处文本索引事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2345 2346
| type     | string  | 是   | 设置监听类型,固定取值为'getTextIndexAtCursor'。 |
| callback | () => number | 是   | 回调函数,获取编辑框最新状态下光标处文本索引并返回。 |
C
cy7717 已提交
2347

C
cy7717 已提交
2348 2349 2350 2351 2352 2353 2354 2355
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2356 2357
**示例:**

2358
```ts
C
cy7717 已提交
2359 2360
try {
  inputMethodController.on('getTextIndexAtCursor', () => {
C
mod  
cy7717 已提交
2361
    console.info(`Succeeded in subscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2362
    let index:number = 0;
C
mod  
cy7717 已提交
2363
    return index;
C
cy7717 已提交
2364 2365
  });
} catch(err) {
2366
  console.error(`Failed to subscribe getTextIndexAtCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2367 2368 2369 2370 2371 2372 2373
}
```

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

off(type: 'getTextIndexAtCursor', callback?: () => number): void;

N
update  
ningning 已提交
2374
取消订阅输入法应用获取光标处文本索引事件。使用callback异步回调。
C
cy7717 已提交
2375 2376 2377 2378 2379 2380 2381

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2382 2383
| type   | string | 是   | 设置监听类型,固定取值为'getTextIndexAtCursor'。 |
| callback | () => number | 否  | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2384 2385 2386

**示例:**

2387
```ts
C
cy7717 已提交
2388
try {
2389
  let getTextIndexAtCursorCallback = () => {
C
mod  
cy7717 已提交
2390
    console.info(`Succeeded in unsubscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2391
    let index:number = 0;
C
mod  
cy7717 已提交
2392
    return index;
2393 2394 2395
  };
  inputMethodController.off('getTextIndexAtCursor', getTextIndexAtCursorCallback);
  inputMethodController.off('getTextIndexAtCursor');
C
cy7717 已提交
2396
} catch(err) {
2397
  console.error(`Failed to unsubscribing getTextIndexAtCursor. err: ${JSON.stringify(err)}`);
C
cy7717 已提交
2398 2399 2400
}
```

2401
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
2402

N
update  
ningning 已提交
2403
下列API均需使用[getSetting](#inputmethodgetsetting9)获取到InputMethodSetting实例后,通过实例调用。
Z
zhouyongfei 已提交
2404

H
Hollokin 已提交
2405
### on('imeChange')<sup>9+</sup>
2406 2407 2408

on(type: 'imeChange', callback: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void

H
Hollokin 已提交
2409
订阅输入法及子类型变化监听事件。使用callback异步回调。
2410

H
update  
Hollokin 已提交
2411
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2412 2413 2414 2415 2416

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2417 2418
| type     | string                        | 是   | 设置监听类型,固定取值为'imeChange'。 |
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 是 | 回调函数,返回输入法属性对象及子类型对象。 |
2419 2420 2421

**示例:**

2422 2423 2424
```ts
import InputMethodSubtype from '@ohos.InputMethodSubtype';
inputMethodSetting.on('imeChange', (inputMethodProperty: inputMethod.InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => {
H
Hollokin 已提交
2425
  console.log('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
2426 2427
});
```
2428

H
Hollokin 已提交
2429
### off('imeChange')<sup>9+</sup>
2430

H
Hollokin 已提交
2431
off(type: 'imeChange', callback?: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void
2432

H
Hollokin 已提交
2433
取消订阅输入法及子类型变化监听事件。使用callback异步回调。
2434

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

**参数:**

H
update  
Hollokin 已提交
2439 2440
| 参数名   | 类型    | 必填 | 说明          |
| -------- | --------- | ---- | --------------- |
N
update  
ningning 已提交
2441 2442
| type     | string    | 是   | 设置监听类型,固定取值为'imeChange'。 |
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 否 | 回调函数,返回取消订阅的输入法属性对象及子类型对象。 |
2443 2444 2445

**示例:**

2446
```ts
H
Hollokin 已提交
2447
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
2448
```
2449

2450
### on('imeShow')<sup>10+</sup>
2451

2452
on(type: 'imeShow', callback: (info: Array\<InputWindowInfo>) => void): void
2453

2454
订阅输入法软键盘显示事件。使用callback异步回调。
2455

H
update  
Hollokin 已提交
2456 2457
**系统接口**:此接口为系统接口。

2458 2459 2460 2461 2462 2463
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
N
update  
ningning 已提交
2464
| type     | string | 是 | 设置监听类型,固定取值为'imeShow'。 |
2465 2466 2467 2468
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

2469 2470
```ts
inputMethodSetting.on('imeShow', (info: Array<inputMethod.InputWindowInfo>) => {
2471 2472 2473 2474
    console.info('Succeeded in subscribing imeShow event.');
});
```

2475
### on('imeHide')<sup>10+</sup>
2476

2477
on(type: 'imeHide', callback: (info: Array\<InputWindowInfo>) => void): void
2478

2479 2480 2481 2482 2483 2484 2485 2486 2487 2488
订阅输入法软键盘隐藏事件。使用callback异步回调。

**系统接口**:此接口为系统接口。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
N
update  
ningning 已提交
2489
| type     | string | 是 | 设置监听类型,固定取值为'imeHide'。 |
2490 2491 2492 2493
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

2494 2495
```ts
inputMethodSetting.on('imeHide', (info: Array<inputMethod.InputWindowInfo>) => {
2496 2497 2498 2499 2500 2501 2502 2503 2504
    console.info('Succeeded in subscribing imeHide event.');
});
```

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

off(type: 'imeShow', callback?: (info: Array\<InputWindowInfo>) => void): void

取消订阅输入法软键盘显示事件。
2505

H
update  
Hollokin 已提交
2506 2507
**系统接口**:此接口为系统接口。

2508 2509 2510 2511 2512 2513
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
N
update  
ningning 已提交
2514 2515
| type     | string | 是 | 设置监听类型,固定取值`imeShow`。 |
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2516 2517 2518

**示例:**

2519
```ts
2520 2521 2522
inputMethodSetting.off('imeShow');
```

2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536
### off('imeHide')<sup>10+</sup>

off(type: 'imeHide', callback?: (info: Array\<InputWindowInfo>) => void): void

取消订阅输入法软键盘隐藏事件。

**系统接口**:此接口为系统接口。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
N
update  
ningning 已提交
2537 2538
| type     | string | 是 | 设置监听类型,固定取值'imeHide'。 |
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2539 2540 2541

**示例:**

2542
```ts
2543 2544 2545
inputMethodSetting.off('imeHide');
```

2546 2547 2548 2549
### listInputMethodSubtype<sup>9+</sup>

listInputMethodSubtype(inputMethodProperty: InputMethodProperty, callback: AsyncCallback&lt;Array&lt;InputMethodSubtype&gt;&gt;): void

H
Hollokin 已提交
2550
获取指定输入法应用的所有子类型。使用callback异步回调。
2551

H
update  
Hollokin 已提交
2552
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2553 2554 2555 2556 2557

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
N
update  
ningning 已提交
2558
| inputMethodProperty | [InputMethodProperty](#inputmethodproperty8)| 是 | 输入法应用。 |
2559
| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是 | 回调函数,返回指定输入法应用的所有子类型。 |
2560

H
Hollokin 已提交
2561 2562
**错误码:**

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

2565
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2566
| -------- | -------------------------------------- |
2567 2568
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2569

2570 2571
**示例:**

2572 2573 2574 2575 2576
```ts
let inputMethodProperty: inputMethod.InputMethodProperty = {
  packageName: 'com.example.kikakeyboard',
  name: 'InputMethodExAbility',
  methodId: '',
2577
  id: 'propertyId',
H
Hollokin 已提交
2578 2579
}
try {
2580
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err: Error, data: Array<InputMethodSubtype>) => {
2581
    if (err) {
H
Hollokin 已提交
2582
      console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2583 2584 2585 2586
      return;
    }
    console.log('Succeeded in listing inputMethodSubtype.');
  });
H
Hollokin 已提交
2587
} catch (err) {
H
Hollokin 已提交
2588
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2589
}
2590 2591 2592 2593 2594 2595
```

### listInputMethodSubtype<sup>9+</sup>

listInputMethodSubtype(inputMethodProperty: InputMethodProperty): Promise&lt;Array&lt;InputMethodSubtype&gt;&gt;

H
Hollokin 已提交
2596
获取指定输入法应用的所有子类型。使用promise异步回调。
2597

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

H
Hollokin 已提交
2600 2601 2602 2603
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
N
update  
ningning 已提交
2604
| inputMethodProperty | [InputMethodProperty](#inputmethodproperty8)| 是 | 输入法应用。 |
H
Hollokin 已提交
2605

2606 2607 2608 2609
**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
2610
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回指定输入法应用的所有子类型。 |
2611

H
Hollokin 已提交
2612 2613
**错误码:**

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

2616
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2617
| -------- | -------------------------------------- |
2618 2619
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2620

2621 2622
**示例:**

2623 2624 2625 2626 2627
```ts
let inputMethodProperty: inputMethod.InputMethodProperty = {
  packageName: 'com.example.kikakeyboard',
  name: 'InputMethodExAbility',
  methodId: '',
2628
  id: 'propertyId',
H
Hollokin 已提交
2629 2630
}
try {
2631
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data: Array<InputMethodSubtype>) => {
H
Hollokin 已提交
2632
    console.log('Succeeded in listing inputMethodSubtype.');
2633
  }).catch((err: Error) => {
H
Hollokin 已提交
2634
    console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2635 2636
  })
} catch(err) {
H
Hollokin 已提交
2637
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2638
}
2639 2640 2641 2642 2643
```

### listCurrentInputMethodSubtype<sup>9+</sup>

listCurrentInputMethodSubtype(callback: AsyncCallback&lt;Array&lt;InputMethodSubtype&gt;&gt;): void
Z
zhaolinglan 已提交
2644

H
Hollokin 已提交
2645
查询当前输入法应用的所有子类型。使用callback异步回调。
2646

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

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
2653
| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是   | 回调函数,返回当前输入法应用的所有子类型。 |
2654

H
Hollokin 已提交
2655 2656
**错误码:**

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

2659
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2660
| -------- | -------------------------------------- |
2661 2662
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2663

2664 2665
**示例:**

2666
```ts
H
Hollokin 已提交
2667
try {
2668
  inputMethodSetting.listCurrentInputMethodSubtype((err: Error, data: Array<InputMethodSubtype>) => {
2669
    if (err) {
H
Hollokin 已提交
2670
      console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2671 2672 2673 2674
      return;
    }
    console.log('Succeeded in listing currentInputMethodSubtype.');
  });
H
Hollokin 已提交
2675
} catch(err) {
H
Hollokin 已提交
2676
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2677
}
2678 2679 2680 2681 2682 2683
```

### listCurrentInputMethodSubtype<sup>9+</sup>

listCurrentInputMethodSubtype(): Promise&lt;Array&lt;InputMethodSubtype&gt;&gt;

N
update  
ningning 已提交
2684
查询当前输入法应用的所有子类型。使用promise异步回调。
2685

H
update  
Hollokin 已提交
2686
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2687 2688 2689 2690 2691

**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
2692
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回当前输入法应用的所有子类型。 |
2693

H
Hollokin 已提交
2694 2695
**错误码:**

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

2698
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2699
| -------- | -------------------------------------- |
2700 2701
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2702

2703 2704
**示例:**

2705
```ts
H
Hollokin 已提交
2706
try {
2707
  inputMethodSetting.listCurrentInputMethodSubtype().then((data: Array<InputMethodSubtype>) => {
H
Hollokin 已提交
2708
    console.log('Succeeded in listing currentInputMethodSubtype.');
2709
  }).catch((err: Error) => {
H
Hollokin 已提交
2710
    console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2711 2712
  })
} catch(err) {
H
Hollokin 已提交
2713
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2714
}
2715 2716 2717 2718 2719
```

### getInputMethods<sup>9+</sup>

getInputMethods(enable: boolean, callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;): void
Z
zhaolinglan 已提交
2720

N
update  
ningning 已提交
2721
获取已激活/未激活的输入法应用列表。使用callback异步回调。
2722

N
update  
ningning 已提交
2723 2724 2725 2726 2727
> **说明**
> 
> 已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
> 
> 已激活/未激活为预留概念,暂不支持。
Z
zhaolinglan 已提交
2728

H
update  
Hollokin 已提交
2729
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2730 2731 2732 2733 2734

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                          |
| -------- | --------------------------------------------------- | ---- | ----------------------------- |
N
update  
ningning 已提交
2735
| enable   | boolean                                             | 是   |true表示返回已激活输入法列表,false表示返回未激活输入法列表。 |
2736
| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2737

H
Hollokin 已提交
2738 2739
**错误码:**

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

2742
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2743
| -------- | -------------------------------------- |
2744 2745
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2746

Z
zhaolinglan 已提交
2747 2748
**示例:**

2749
```ts
H
Hollokin 已提交
2750
try {
2751
  inputMethodSetting.getInputMethods(true, (err: Error, data: Array<inputMethod.InputMethodProperty>) => {
2752
    if (err) {
H
Hollokin 已提交
2753
      console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2754 2755 2756 2757
      return;
    }
    console.log('Succeeded in getting inputMethods.');
  });
H
Hollokin 已提交
2758
} catch (err) {
H
Hollokin 已提交
2759
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2760
}
Z
zhaolinglan 已提交
2761 2762
```

2763
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
2764

2765
getInputMethods(enable: boolean): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
Z
zhaolinglan 已提交
2766

N
update  
ningning 已提交
2767
获取已激活/未激活的输入法应用列表。使用promise异步回调。
2768

N
update  
ningning 已提交
2769 2770 2771 2772 2773
> **说明**
> 
> 已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
> 
> 已激活/未激活为预留概念,暂不支持。
Z
zhaolinglan 已提交
2774

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

**参数:**

| 参数名 | 类型    | 必填 | 说明                    |
| ------ | ------- | ---- | ----------------------- |
N
update  
ningning 已提交
2781
| enable | boolean | 是   |- true表示返回已激活输入法列表,false表示返回未激活输入法列表。 |
Z
zhaolinglan 已提交
2782

H
Hollokin 已提交
2783 2784
**错误码:**

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

2787
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2788
| -------- | -------------------------------------- |
2789 2790
| 12800001 | package manager error.                 |
| 12800008 |input method manager service error. |
H
Hollokin 已提交
2791

Z
zhaolinglan 已提交
2792 2793 2794 2795
**返回值:**

| 类型                                                         | 说明                          |
| ------------------------------------------------------------ | ----------------------------- |
N
update  
ningning 已提交
2796
| Promise\<Array\<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2797 2798 2799

**示例:**

2800
```ts
H
Hollokin 已提交
2801
try {
2802
  inputMethodSetting.getInputMethods(true).then((data: Array<inputMethod.InputMethodProperty>) => {
H
Hollokin 已提交
2803
    console.log('Succeeded in getting inputMethods.');
2804
  }).catch((err: Error) => {
H
Hollokin 已提交
2805
    console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2806 2807
  })
} catch(err) {
H
Hollokin 已提交
2808
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2809
}
Z
zhaolinglan 已提交
2810 2811
```

H
Hollokin 已提交
2812 2813
### showOptionalInputMethods<sup>9+</sup>

H
Hollokin 已提交
2814
showOptionalInputMethods(callback: AsyncCallback&lt;boolean&gt;): void
H
Hollokin 已提交
2815

H
Hollokin 已提交
2816
显示输入法选择对话框。使用callback异步回调。
H
Hollokin 已提交
2817

H
update  
Hollokin 已提交
2818
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
2819 2820 2821 2822 2823

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
2824
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法选择对话框显示成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
2825

H
Hollokin 已提交
2826 2827
**错误码:**

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

2830
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2831
| -------- | -------------------------------------- |
2832
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2833

H
Hollokin 已提交
2834 2835
**示例:**

2836
```ts
H
Hollokin 已提交
2837
try {
2838
  inputMethodSetting.showOptionalInputMethods((err: Error, data: boolean) => {
2839
    if (err) {
H
Hollokin 已提交
2840
      console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
2841 2842
      return;
    }
H
Hollokin 已提交
2843
    console.log('Succeeded in showing optionalInputMethods.');
2844
  });
H
Hollokin 已提交
2845
} catch (err) {
H
Hollokin 已提交
2846
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2847 2848 2849 2850 2851
}
```

### showOptionalInputMethods<sup>9+</sup>

H
Hollokin 已提交
2852
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
2853

H
Hollokin 已提交
2854
显示输入法选择对话框。使用promise异步回调。
H
Hollokin 已提交
2855

H
update  
Hollokin 已提交
2856
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
2857 2858 2859 2860 2861

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
N
update  
ningning 已提交
2862
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法选择对话框显示成功,返回false表示输入法选择对话框显示失败。 |
H
Hollokin 已提交
2863

H
Hollokin 已提交
2864 2865
**错误码:**

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

2868
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2869
| -------- | -------------------------------------- |
2870
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2871

H
Hollokin 已提交
2872 2873
**示例:**

2874 2875
```ts
inputMethodSetting.showOptionalInputMethods().then((data: boolean) => {
H
Hollokin 已提交
2876
  console.log('Succeeded in showing optionalInputMethods.');
2877
}).catch((err: Error) => {
H
Hollokin 已提交
2878
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2879 2880 2881
})
```

H
Hollokin 已提交
2882
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2883 2884 2885

listInputMethod(callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;): void

H
Hollokin 已提交
2886
查询已安装的输入法列表。使用callback异步回调。
Z
zhouyongfei 已提交
2887

H
update  
Hollokin 已提交
2888 2889
> **说明:** 
>
2890
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getInputMethods](#getinputmethods9)替代。
H
Hollokin 已提交
2891

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

2894
**参数:**
B
bmeangel 已提交
2895

T
explain  
tianyu 已提交
2896 2897
| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
2898
| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已安装的输入法列表。 |
Z
zhouyongfei 已提交
2899

2900
**示例:**
T
explain  
tianyu 已提交
2901

2902 2903
```ts
inputMethodSetting.listInputMethod((err: Error, data: Array<inputMethod.InputMethodProperty>) => {
2904
  if (err) {
H
Hollokin 已提交
2905
    console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
2906 2907 2908
    return;
  }
  console.log('Succeeded in listing inputMethod.');
2909
 });
2910
```
Z
zhouyongfei 已提交
2911

H
Hollokin 已提交
2912
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2913

Z
zhaolinglan 已提交
2914
listInputMethod(): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
Z
zhouyongfei 已提交
2915

H
Hollokin 已提交
2916
查询已安装的输入法列表。使用promise异步回调。
Z
zhouyongfei 已提交
2917

H
update  
Hollokin 已提交
2918 2919
> **说明:**
>
2920
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getInputMethods](#getinputmethods9-1)替代。
H
Hollokin 已提交
2921

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

2924
**返回值:**
B
bmeangel 已提交
2925

T
explain  
tianyu 已提交
2926 2927
| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
H
Hollokin 已提交
2928
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已安装输入法列表。 |
Z
zhouyongfei 已提交
2929

2930
**示例:**
2931

2932 2933
```ts
inputMethodSetting.listInputMethod().then((data: Array<inputMethod.InputMethodProperty>) => {
H
Hollokin 已提交
2934
  console.log('Succeeded in listing inputMethod.');
2935
}).catch((err: Error) => {
H
Hollokin 已提交
2936
  console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
Z
zhaolinglan 已提交
2937
})
2938
```
Z
zhouyongfei 已提交
2939

H
Hollokin 已提交
2940
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2941 2942 2943

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

H
Hollokin 已提交
2944
显示输入法选择对话框。使用callback异步回调。
Z
zhouyongfei 已提交
2945

H
update  
Hollokin 已提交
2946 2947
> **说明:**
>
2948
> 从API version 8开始支持,从API version 9开始废弃,建议使用[showOptionalInputMethods()](#showoptionalinputmethods9)替代。
H
Hollokin 已提交
2949

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

2952
**参数:**
Z
zhouyongfei 已提交
2953 2954 2955

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
2956
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当输入法选择对话框显示成功。err为undefined,否则为错误对象。 |
Z
zhouyongfei 已提交
2957

2958
**示例:**
2959

2960 2961
```ts
inputMethodSetting.displayOptionalInputMethod((err: Error) => {
2962
  if (err) {
H
Hollokin 已提交
2963
    console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2964 2965
    return;
  }
H
Hollokin 已提交
2966
  console.log('Succeeded in displaying optionalInputMethod.');
2967
});
2968
```
Z
zhouyongfei 已提交
2969

H
Hollokin 已提交
2970
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2971

2972 2973
displayOptionalInputMethod(): Promise&lt;void&gt;

H
Hollokin 已提交
2974
显示输入法选择对话框。使用promise异步回调。
2975

H
update  
Hollokin 已提交
2976 2977
> **说明:**
>
2978
> 从API version 8开始支持,从API version 9开始废弃,建议使用[showOptionalInputMethods()](#showoptionalinputmethods9-1)替代。
H
Hollokin 已提交
2979

H
update  
Hollokin 已提交
2980
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2981 2982 2983 2984 2985

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
2986
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2987 2988 2989

**示例:**

2990
```ts
H
Hollokin 已提交
2991
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
2992
  console.log('Succeeded in displaying optionalInputMethod.');
2993
}).catch((err: Error) => {
H
Hollokin 已提交
2994
  console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2995
})
G
guojin31 已提交
2996
```