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

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

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


## 导入模块

12
```js
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 38 39
| name<sup>9+</sup>  | string | 是 | 否 | 必填。输入法内部名称。|
| id<sup>9+</sup>    | string | 是 | 否 | 必填。输入法唯一标识。|
| label<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称。|
| labelId<sup>10+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称资源号。|
| icon<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法图标数据。|
| iconId<sup>9+</sup>    | number | 是 | 否 | 非必填。输入法图标资源号。 |
H
update  
Hollokin 已提交
40
| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。<br/>- API version 10起:非必填;<br/>- API version 9:必填。|
H
Hollokin 已提交
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
**示例:**

H
Hollokin 已提交
68
```js
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
**示例:**

H
Hollokin 已提交
96
```js
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

H
Hollokin 已提交
104
切换输入法。使用callback异步回调。
105

H
Hollokin 已提交
106
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
107

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

**参数:**

H
Hollokin 已提交
112 113 114 115
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| target | [InputMethodProperty](#inputmethodproperty8) | 是 | 传入要切换的目标输入法。 |
| 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
**示例:**

H
Hollokin 已提交
128
```js
H
Hollokin 已提交
129
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
130
try{
H
Hollokin 已提交
131
  inputMethod.switchInputMethod(currentIme, (err, result) => {
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

H
Hollokin 已提交
149
切换输入法。使用promise异步回调。
G
gaoxiang 已提交
150

H
Hollokin 已提交
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

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

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

G
gaoxiang 已提交
163 164
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
H
Hollokin 已提交
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
**示例:**

H
Hollokin 已提交
178
```js
H
Hollokin 已提交
179
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
180
try {
H
Hollokin 已提交
181
  inputMethod.switchInputMethod(currentIme).then((result) => {
182
    if (result) {
H
Hollokin 已提交
183
      console.log('Succeeded in switching inputmethod.');
184 185 186 187
    } else {
      console.error('Failed to switchInputMethod.');
    }
  }).catch((err) => {
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

H
Hollokin 已提交
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

**示例:**

H
Hollokin 已提交
211
```js
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

H
Hollokin 已提交
219
在当前输入法应用内切换子类型。使用callback异步回调。
220

H
update  
Hollokin 已提交
221
**需要权限:** ohos.permission.CONNECT_IME_ABILITY<br/>**说明:** <br/>- API version 10起,允许系统应用及当前输入法应用调用;<br/>- API version 9,仅系统应用可用。
222

H
update  
Hollokin 已提交
223
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
224 225 226 227 228

**参数:**

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

H
Hollokin 已提交
232 233
**错误码:**

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

236
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
237
| -------- | -------------------------------------- |
238 239
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
240

241 242
**示例:**

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

H
update  
Hollokin 已提交
271
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
272 273 274

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

H
Hollokin 已提交
275
在当前输入法应用内切换子类型。使用promise异步回调。
276

H
update  
Hollokin 已提交
277
**需要权限:** ohos.permission.CONNECT_IME_ABILITY<br/>**说明:** <br/>- API version 10起,允许系统应用及当前输入法应用调用;<br/>- API version 9,仅系统应用可用。
278

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
285
|target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
286

H
Hollokin 已提交
287 288 289 290 291 292
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
| Promise\<boolean> | Promise对象。返回true表示在当前输入法应用内切换子类型成功;返回false表示在当前输入法应用内切换子类型失败。 |

H
Hollokin 已提交
293 294
**错误码:**

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

297
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
298
| -------- | -------------------------------------- |
299 300
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
301

302 303
**示例:**

H
Hollokin 已提交
304
```js
H
Hollokin 已提交
305
try {
306 307 308 309 310 311 312 313 314 315 316 317
  inputMethod.switchCurrentInputMethodSubtype({
    id: "ServiceExtAbility",
    label: "",
    name: "com.example.kikakeyboard",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
    extra: {}
  }).then((result) => {
    if (result) {
H
Hollokin 已提交
318
      console.log('Succeeded in switching currentInputMethodSubtype.');
319 320 321 322
    } else {
      console.error('Failed to switchCurrentInputMethodSubtype.');
    }
  }).catch((err) => {
H
Hollokin 已提交
323
    console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
324 325
  })
} catch(err) {
H
Hollokin 已提交
326
  console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
327
}
328 329 330 331 332 333 334 335
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
update  
Hollokin 已提交
336
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
337 338 339 340 341

**返回值:**

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

**示例:**

H
Hollokin 已提交
346
```js
H
Hollokin 已提交
347
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
348 349 350 351
```

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

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

H
Hollokin 已提交
354
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用callback异步回调。
355

H
Hollokin 已提交
356
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
357

H
update  
Hollokin 已提交
358
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
359 360 361 362 363

**参数:**

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

H
Hollokin 已提交
368 369
**错误码:**

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

372
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
373
| -------- | -------------------------------------- |
374 375
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
376

377 378
**示例:**

H
Hollokin 已提交
379
```js
H
Hollokin 已提交
380
let currentIme = inputMethod.getCurrentInputMethod();
381
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
382
try {
H
Hollokin 已提交
383
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType, (err,result) => {
384
    if (err) {
H
Hollokin 已提交
385
      console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
386 387 388
      return;
    }
    if (result) {
H
Hollokin 已提交
389
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
390 391 392 393
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
  });
H
Hollokin 已提交
394
} catch (err) {
H
Hollokin 已提交
395
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
396
}
397 398 399 400
```

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

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

H
Hollokin 已提交
403
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用promise异步回调。
404

H
Hollokin 已提交
405
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
406

H
update  
Hollokin 已提交
407
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
408 409 410 411 412

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
413
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
H
update  
Hollokin 已提交
414
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
415

H
Hollokin 已提交
416 417 418 419 420 421
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
| Promise\<boolean> | Promise对象。返回true表示切换至指定输入法应用的指定子类型成功;返回false表示切换至指定输入法应用的指定子类型失败。 |

H
Hollokin 已提交
422 423
**错误码:**

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

426
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
427
| -------- | -------------------------------------- |
428 429
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
430

431 432
**示例:**

H
Hollokin 已提交
433
```js
H
Hollokin 已提交
434
let currentIme = inputMethod.getCurrentInputMethod();
435
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
436
try {
H
Hollokin 已提交
437
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType).then((result) => {
438
    if (result) {
H
Hollokin 已提交
439
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
440 441 442 443
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
  }).catch((err) => {
H
Hollokin 已提交
444
    console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
445 446
  })
} catch(err) {
H
Hollokin 已提交
447
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
448
}
449 450
```

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

H
Hollokin 已提交
453
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
454

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

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

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

H
Hollokin 已提交
463
**返回值:**
Z
zhouyongfei 已提交
464

H
Hollokin 已提交
465 466 467
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
468

469
**示例:**
Z
zhouyongfei 已提交
470

471
```js
472
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
473 474
```

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

H
Hollokin 已提交
477
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
478

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

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

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

487
**返回值:**
Z
zhouyongfei 已提交
488

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

493
**示例:**
Z
zhouyongfei 已提交
494

495
```js
H
Hollokin 已提交
496
let inputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
497 498
```

499 500
## TextInputType<sup>10+</sup>

H
update  
Hollokin 已提交
501
文本输入类型。
502

H
Hollokin 已提交
503
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
504 505 506 507 508

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| NONE  | -1 |NONE。 |
| TEXT  | 0 |文本类型。 |
509 510 511 512 513 514 515
| MULTILINE  | 1 |多行类型。 |
| NUMBER  | 2 |数字类型。 |
| PHONE  | 3 |电话号码类型。 |
| DATETIME  | 4 |日期类型。 |
| EMAIL_ADDRESS  | 5 |邮箱地址类型。 |
| URL  | 6 |链接类型。 |
| VISIBLE_PASSWORD  | 7 |密码类型。 |
516 517 518 519 520

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

输入法Enter键所代表的功能类型。

H
Hollokin 已提交
521
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
522 523 524 525

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| UNSPECIFIED  | 0 |未指定。 |
526 527 528 529 530 531 532
| NONE  | 1 |NONE。 |
| GO  | 2 |前往。 |
| SEARCH  | 3 |查找。 |
| SEND  | 4 |发送。 |
| NEXT  | 5 |下一步。 |
| DONE  | 6 |完成。 |
| PREVIOUS  | 7 |上一步。 |
533 534 535 536 537

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

输入法软键盘状态。

H
Hollokin 已提交
538
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
539 540 541 542 543 544 545 546 547 548 549

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

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

光标移动方向。

H
Hollokin 已提交
550
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
551 552 553 554

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
555 556 557
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |
558 559 560 561 562

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

对编辑框中文本的扩展编辑操作类型。

H
Hollokin 已提交
563
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| 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>

编辑框属性,包含文本输入类型,Enter键功能类型。

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

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

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

H
update  
Hollokin 已提交
595
编辑控件配置信息。编辑控件请求绑定输入法应用时传入,将编辑控件相关属性配置信息保存到输入法框架内。
596 597 598

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

599
| 名称 | 类型 | 只读 | 必填 | 说明 |
600
| -------- | -------- | -------- | -------- | -------- |
601 602 603 604
| inputAttribute<sup>10+</sup>  | [InputAttribute](#inputattribute10) | 否 | 是 | 编辑框属性。|
| cursorInfo<sup>10+</sup>  | [CursorInfo](#cursorinfo10) | 否 | 否 | 光标信息。|
| selection<sup>10+</sup>  | [Range](#range10) | 否 | 否 | 文本选区范围。|
| windowId<sup>10+</sup>  | number | 否 | 否 | 编辑控件所在的窗口Id。|
605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639

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

光标信息。

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

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

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

描述选中文本的范围。

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

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

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

描述进行选中文本动作时光标移动的方向。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| direction  | [Direction](#direction10) | 是 | 是 | 进行选中文本动作时光标移动的方向。|

640 641 642 643 644 645 646 647
## InputWindowInfo<sup>10+</sup>

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

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

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

H
Hollokin 已提交
654 655
## InputMethodController

656 657 658 659 660 661
下列API示例中都需使用[getController](#inputmethodgetcontroller9)获取到InputMethodController实例,再通过此实例调用对应方法。

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

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

662
用于自绘控件绑定输入法应用。使用callback异步回调。
H
换行  
Hollokin 已提交
663

H
update  
Hollokin 已提交
664
必须先调用此接口完成自绘控件与输入法应用的绑定,才可以使用输入法框架的以下功能:显示、隐藏键盘;更新光标信息;更改编辑框选中范围;保存配置信息;监听处理由输入法应用发送的信息或命令等。
665 666 667 668 669 670 671 672

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| showKeyboard | boolean | 是 | 绑定输入法成功后是否拉起输入法键盘。 |
673
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑控件配置信息。 |
674 675 676 677 678 679 680 681
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当绑定输入法成功后,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
682 683
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
684 685 686 687 688

**示例:**

```js
try {
689 690 691 692 693 694 695 696 697 698 699
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
  inputMethodController.attach(true, textConfig, (err) => {
    if (err) {
      console.error(`Failed to attach: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
700
    console.log('Succeeded in attaching the inputMethod.');
701
  });
H
Hollokin 已提交
702 703
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
704 705 706 707 708 709 710
}
```

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

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

711
用于自绘控件绑定输入法应用。使用promise异步回调。
H
换行  
Hollokin 已提交
712

H
update  
Hollokin 已提交
713
必须先调用此接口完成自绘控件与输入法应用的绑定,才可以使用输入法框架的以下功能:显示、隐藏键盘;更新光标信息;更改编辑框选中范围;保存配置信息;监听处理由输入法应用发送的信息或命令等。
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| showKeyboard | boolean | 是 | 绑定输入法成功后是否拉起输入法键盘。 |
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑框属性。 |

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
736 737
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
738 739 740 741 742

**示例:**

```js
try {
743 744 745 746 747 748 749
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
  inputMethodController.attach(true, textConfig).then(() => {
H
Hollokin 已提交
750
    console.log('Succeeded in attaching inputMethod.');
751 752 753
  }).catch((err) => {
    console.error(`Failed to attach: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
754 755
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
756 757 758 759 760 761 762
}
```

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

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

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

H
update  
Hollokin 已提交
765
编辑控件与输入法应用绑定成功后,可调用该接口去拉起软键盘。
766 767 768 769 770 771 772 773 774 775 776 777 778 779 780

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
781 782 783
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
784 785 786 787 788

**示例:**

```js
inputMethodController.showTextInput((err) => {
789 790 791 792
  if (err) {
    console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
793
  console.log('Succeeded in showing the inputMethod.');
794 795 796 797 798 799 800
});
```

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

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

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

H
update  
Hollokin 已提交
803
编辑控件与输入法应用绑定成功后,可调用该接口去拉起软键盘。
804 805 806 807 808 809 810 811 812 813 814 815 816 817 818

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
819 820 821
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
822 823 824 825 826

**示例:**

```js
inputMethodController.showTextInput().then(() => {
H
Hollokin 已提交
827
  console.log('Succeeded in showing text input.');
828
}).catch((err) => {
829
  console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
830 831 832 833 834 835 836
});
```

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

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

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

H
update  
Hollokin 已提交
839
编辑控件可调用该接口退出编辑状态。若调用该接口时当前软键盘处于显示状态,则调用该接口后软键盘会被隐藏。
H
换行  
Hollokin 已提交
840

H
update  
Hollokin 已提交
841
调用该接口不解除与输入法应用的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入编辑状态。
842 843 844 845 846 847 848 849 850 851 852 853 854 855 856

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
857 858 859
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
860 861 862 863 864

**示例:**

```js
inputMethodController.hideTextInput((err) => {
865 866 867 868
  if (err) {
    console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
869
  console.log('Succeeded in hiding text input.');
870 871 872 873 874 875 876
});
```

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

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

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

H
update  
Hollokin 已提交
879
编辑控件可调用该接口退出编辑状态。若调用该接口时当前软键盘处于显示状态,则调用该接口后软键盘会被隐藏。
H
换行  
Hollokin 已提交
880

H
update  
Hollokin 已提交
881
调用该接口不解除与输入法应用的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入编辑状态。
882 883 884 885 886 887 888 889 890 891 892 893 894 895 896

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
897 898 899
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
900 901 902 903

**示例:**

```js
H
Hollokin 已提交
904
inputMethodController.hideTextInput().then(() => {
H
Hollokin 已提交
905
  console.log('Succeeded in hiding inputMethod.');
H
Hollokin 已提交
906 907 908
}).catch((err) => {
  console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
})
909 910 911 912 913 914
```

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

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

H
--amend  
Hollokin 已提交
915
解除与输入法应用的绑定。使用callback异步回调。
916 917 918 919 920 921 922 923 924 925 926 927 928 929 930

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
931 932
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
933 934 935 936 937

**示例:**

```js
inputMethodController.detach((err) => {
938 939 940 941
  if (err) {
    console.error(`Failed to detach: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
942
  console.log('Succeeded in detaching inputMethod.');
943 944 945 946 947 948 949
});
```

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

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

H
--amend  
Hollokin 已提交
950
解除与输入法应用的绑定。使用promise异步回调。
951 952 953 954 955 956 957 958 959 960 961 962 963 964 965

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
966 967
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
968 969 970 971 972

**示例:**

```js
inputMethodController.detach().then(() => {
H
Hollokin 已提交
973
  console.log('Succeeded in detaching inputMethod.');
H
Hollokin 已提交
974 975
}).catch((err) => {
  console.error(`Failed to detach: ${JSON.stringify(err)}`);
976 977 978 979 980 981 982
});
```

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

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

H
Hollokin 已提交
983
设置要避让的窗口。使用callback异步回调。
H
换行  
Hollokin 已提交
984

985
比如:将当前绑定到输入法的应用程序的窗口ID通知系统,正确设置后,客户端所在的窗口可以避开输入法窗口。预留能力,当前暂不支持获取windowId。
986 987 988 989 990 991 992

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
993
| windowId | number | 是 | 要避让的窗口id。 |
994 995 996 997 998 999 1000 1001
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当设置成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1002 1003 1004
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1005 1006 1007 1008 1009

**示例:**

```js
try {
1010 1011 1012 1013 1014 1015
  let windowId: number = 2000;
  inputMethodController.setCallingWindow(windowId, (err) => {
    if (err) {
      console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1016
    console.log('Succeeded in setting callingWindow.');
1017
  });
H
Hollokin 已提交
1018 1019
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1020 1021 1022 1023 1024 1025 1026
}
```

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

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

H
Hollokin 已提交
1027
设置要避让的窗口。使用promise异步回调。
H
换行  
Hollokin 已提交
1028

1029
比如:将当前绑定到输入法的应用程序的窗口ID通知系统,正确设置后,客户端所在的窗口可以避开输入法窗口。预留能力,当前暂不支持获取windowId。
1030 1031 1032 1033 1034 1035 1036

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
1037
| windowId | number | 是 | 要避让的窗口id。 |
1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1051 1052 1053
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1054 1055 1056 1057 1058

**示例:**

```js
try {
1059 1060
  let windowId: number = 2000;
  inputMethodController.setCallingWindow(windowId).then(() => {
H
Hollokin 已提交
1061
    console.log('Succeeded in setting callingWindow.');
1062 1063 1064
  }).catch((err) => {
    console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1065 1066
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1067 1068 1069 1070 1071 1072 1073
}
```

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

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

H
Hollokin 已提交
1074
更新当前编辑框内光标信息。使用callback异步回调。
H
换行  
Hollokin 已提交
1075

H
Hollokin 已提交
1076
当光标信息发生变化时,可调用该接口更新光标信息,从而被输入法应用感知到光标变化。
1077 1078 1079 1080 1081 1082 1083 1084

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| cursorInfo | [CursorInfo](#cursorinfo10) | 是 | 光标信息。 |
H
update  
Hollokin 已提交
1085
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当光标信息更新成功时,err为undefined;否则为错误对象。 |
1086 1087 1088 1089 1090 1091 1092

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1093 1094 1095
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1096 1097 1098 1099 1100

**示例:**

```js
try {
1101 1102 1103 1104 1105
  inputMethodController.updateCursor({left: 0, top: 0, width: 600, height: 800}, (err) => {
    if (err) {
      console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1106
    console.log('Succeeded in updating cursorInfo.');
1107
  });
H
Hollokin 已提交
1108 1109
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1110 1111 1112 1113 1114 1115 1116
}
```

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

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

H
Hollokin 已提交
1117
更新当前编辑控件内的光标信息。使用promise异步回调。
H
换行  
Hollokin 已提交
1118

H
Hollokin 已提交
1119
当光标信息发生变化时,编辑控件可调用该接口更新光标信息,从而被输入法应用感知到光标变化。
1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140

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

**参数:**

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1141 1142 1143
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1144 1145 1146 1147 1148

**示例:**

```js
try {
1149
  inputMethodController.updateCursor({left: 0, top: 0, width: 600, height: 800}).then(() => {
H
Hollokin 已提交
1150
    console.log('Succeeded in updating cursorInfo.');
1151 1152 1153
  }).catch((err) => {
    console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1154 1155
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1156 1157 1158 1159 1160 1161 1162
}
```

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

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

H
update  
Hollokin 已提交
1163
向输入法应用更新当前编辑框内被选中的文本信息,当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息。使用callback异步回调。
1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 整个输入文本。 |
| start | number | 是 | 所选文本的起始位置。 |
| end | number | 是 | 所选文本的结束位置。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当隐藏输入法成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1182 1183 1184
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1185 1186 1187 1188 1189

**示例:**

```js
try {
1190 1191 1192 1193 1194
  inputMethodController.changeSelection('text', 0, 5, (err) => {
    if (err) {
      console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1195
    console.log('Succeeded in changing selection.');
1196
  });
H
Hollokin 已提交
1197 1198
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1199 1200 1201 1202 1203 1204 1205
}
```

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

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

H
update  
Hollokin 已提交
1206
向输入法应用更新当前编辑框内被选中的文本信息,当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息。使用promise异步回调。
1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229

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

**参数:**

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1230 1231 1232
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1233 1234 1235 1236 1237

**示例:**

```js
try {
1238
  inputMethodController.changeSelection('test', 0, 5).then(() => {
H
Hollokin 已提交
1239
    console.log('Succeeded in changing selection.');
1240 1241 1242
  }).catch((err) => {
    console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1243 1244
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1245 1246 1247 1248 1249 1250 1251
}
```

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

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

H
update  
Hollokin 已提交
1252
更新编辑框属性配置信息。使用callback异步回调。
1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| attribute | [InputAttribute](#inputattribute10) | 是 | InputAttribute对象,包含的额外信息。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当隐藏输入法成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1269 1270 1271
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1272 1273 1274 1275 1276

**示例:**

```js
try {
1277 1278 1279 1280 1281
  inputMethodController.updateAttribute({textInputType: 0, enterKeyType: 1}, (err) => {
    if (err) {
      console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1282
    console.log('Succeeded in updating attribute.');
1283
  });
H
Hollokin 已提交
1284 1285
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1286 1287 1288 1289 1290 1291 1292
}
```

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

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

H
update  
Hollokin 已提交
1293
更新编辑框属性配置信息。使用promise异步回调。
1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| attribute | [InputAttribute](#inputattribute10) | 是 | InputAttribute对象,包含的额外信息。 |

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1315 1316 1317
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1318 1319 1320 1321 1322

**示例:**

```js
try {
1323
  inputMethodController.updateAttribute({textInputType: 0, enterKeyType: 1}).then(() => {
H
Hollokin 已提交
1324
    console.log('Succeeded in updating attribute.');
1325 1326 1327
  }).catch((err) => {
    console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1328 1329
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1330 1331 1332 1333 1334 1335 1336
}
```

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

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

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

H
Hollokin 已提交
1339
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口结束输入会话。
1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1355 1356
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1357 1358 1359 1360 1361

**示例:**

```js
try {
H
Hollokin 已提交
1362 1363 1364
  inputMethodController.stopInputSession((err, result) => {
    if (err) {
      console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1365 1366 1367
      return;
    }
    if (result) {
H
Hollokin 已提交
1368
      console.log('Succeeded in stopping inputSession.');
1369 1370 1371 1372
    } else {
      console.error('Failed to stopInputSession.');
    }
  });
H
Hollokin 已提交
1373 1374
} catch(err) {
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1375 1376 1377 1378 1379 1380 1381
}
```

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

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

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

H
Hollokin 已提交
1384
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口结束输入会话。
1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示结束输入会话成功;返回false表示结束输入会话失败。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1400 1401
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1402 1403 1404 1405 1406

**示例:**

```js
try {
1407 1408
  inputMethodController.stopInputSession().then((result) => {
    if (result) {
H
Hollokin 已提交
1409
      console.log('Succeeded in stopping inputSession.');
1410 1411 1412 1413
    } else {
      console.error('Failed to stopInputSession.');
    }
  }).catch((err) => {
H
Hollokin 已提交
1414
    console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1415 1416
  })
} catch(err) {
H
Hollokin 已提交
1417
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1418 1419 1420 1421 1422 1423 1424
}
```

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

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

H
Hollokin 已提交
1425
显示软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1426

H
Hollokin 已提交
1427
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过该接口的调用显示出当前输入法的软键盘。
1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444

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

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1445 1446
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1447 1448 1449 1450 1451

**示例:**

```js
inputMethodController.showSoftKeyboard((err) => {
1452
  if (!err) {
H
Hollokin 已提交
1453
    console.log('Succeeded in showing softKeyboard.');
1454
  } else {
H
Hollokin 已提交
1455
    console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1456
  }
1457 1458 1459 1460 1461 1462 1463
})
```

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

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

H
Hollokin 已提交
1464
显示软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1465

H
Hollokin 已提交
1466
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过该接口的调用显示出当前输入法的软键盘。
1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483

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

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1484 1485
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1486 1487 1488 1489 1490

**示例:**

```js
inputMethodController.showSoftKeyboard().then(() => {
1491
  console.log('Succeeded in showing softKeyboard.');
1492
}).catch((err) => {
H
Hollokin 已提交
1493
  console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1494 1495 1496 1497 1498 1499 1500
});
```

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

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

H
Hollokin 已提交
1501
隐藏软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1502

H
Hollokin 已提交
1503
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口隐藏当前输入法的软键盘。
1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520

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

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1521 1522
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1523 1524 1525 1526 1527

**示例:**

```js
inputMethodController.hideSoftKeyboard((err) => {
1528
  if (!err) {
H
Hollokin 已提交
1529
    console.log('Succeeded in hiding softKeyboard.');
1530
  } else {
H
Hollokin 已提交
1531
    console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1532
  }
1533 1534 1535 1536 1537 1538 1539
})
```

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

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

H
Hollokin 已提交
1540
隐藏软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1541

H
Hollokin 已提交
1542
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口隐藏当前输入法的软键盘。
1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559

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

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

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1560 1561
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1562 1563 1564 1565 1566

**示例:**

```js
inputMethodController.hideSoftKeyboard().then(() => {
1567
  console.log('Succeeded in hiding softKeyboard.');
1568
}).catch((err) => {
H
Hollokin 已提交
1569
  console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1570 1571 1572 1573 1574 1575 1576
});
```

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

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

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

H
Hollokin 已提交
1579
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口结束输入会话。
1580 1581 1582

> **说明:** 
>
1583
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595

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

**参数:**

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

**示例:**

```js
H
Hollokin 已提交
1596 1597 1598
inputMethodController.stopInput((err, result) => {
  if (err) {
    console.error(`Failed to stopInput: ${JSON.stringify(err)}`);
1599 1600 1601
    return;
  }
  if (result) {
H
Hollokin 已提交
1602
    console.log('Succeeded in stopping input.');
1603 1604 1605
  } else {
    console.error('Failed to stopInput.');
  }
1606 1607 1608 1609 1610 1611 1612
});
```

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

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

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

H
Hollokin 已提交
1615
需要与编辑控件(如:输入框)绑定使用。当点击编辑控件后,才可通过调用该接口结束输入会话。
1616 1617 1618

> **说明:** 
>
1619
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |

**示例:**

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

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

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

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

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

**参数:**

| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1655
| type     | string                                                       | 是   | 设置监听类型。<br/>- type为‘insertText’时表示订阅输入法应用插入文本事件监听。 |
1656 1657 1658 1659 1660 1661 1662 1663
| callback | (text: string) => void | 是   | 回调函数,返回需要插入的文本内容。<br/>开发者需要在回调函数中根据传入的文本内容操作编辑框中的内容。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1664
| 12800009 | input method client is detached. |
1665 1666 1667 1668 1669

**示例:**

```js
try {
1670
  inputMethodController.on('insertText', (text) => {
H
Hollokin 已提交
1671
    console.log(`Succeeded in subscribing insertText: ${text}`);
1672
  });
H
Hollokin 已提交
1673 1674
} catch(err) {
  console.error(`Failed to subscribe insertText: ${JSON.stringify(err)}`);
1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689
}
```

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

off(type: 'insertText'): void

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

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
1690
| type   | string | 是   | 设置监听类型。<br/>- type为‘insertText’时表示取消订阅输入法应用插入文本事件监听。 |
1691 1692 1693 1694

**示例:**

```js
H
Hollokin 已提交
1695
inputMethodController.off('insertText');
1696 1697
```

1698
### on('deleteLeft')<sup>10+</sup>
1699

1700
on(type: 'deleteLeft', callback: (length: number) => void): void
1701

1702
订阅输入法应用向左删除事件。使用callback异步回调。
1703 1704 1705 1706 1707

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

**参数:**

H
update  
Hollokin 已提交
1708 1709
| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
1710 1711
| type     | string  | 是   | 设置监听类型。<br/>- type为`deleteLeft`表示订阅输入法应用向左删除事件监听。 |
| callback | (length: number) => void | 是   | 回调函数,返回需要向左删除的文本的长度。<br/>开发者需要在回调函数中根据传入的删除长度操作编辑框中相应文本。 |
1712 1713 1714 1715 1716 1717 1718

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1719
| 12800009 | input method client is detached. |
1720 1721 1722 1723 1724

**示例:**

```js
try {
1725
  inputMethodController.on('deleteLeft', (length) => {
H
Hollokin 已提交
1726
    console.log(`Succeeded in subscribing deleteLeft, length: ${length}`);
1727
  });
H
Hollokin 已提交
1728 1729
} catch(err) {
  console.error(`Failed to subscribe deleteLeft: ${JSON.stringify(err)}`);
1730
}
1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754
```

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

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

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

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
| type     | string  | 是   | 设置监听类型。<br/>- type为`deleteRight`表示订阅输入法应用向右删除事件监听。|
| callback | (length: number) => void | 是   | 回调函数,返回需要向右删除的文本的长度。<br/>开发者需要在回调函数中根据传入的删除长度操作编辑框中相应文本。 |

**错误码:**

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

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

1756 1757 1758
**示例:**

```js
1759
try {
1760
  inputMethodController.on('deleteRight', (length) => {
H
Hollokin 已提交
1761
    console.log(`Succeeded in subscribing deleteRight, length: ${length}`);
1762
  });
H
Hollokin 已提交
1763 1764
} catch(err) {
  console.error(`Failed to subscribe deleteRight: ${JSON.stringify(err)}`);
1765 1766
}
```
1767
### off('deleteLeft')<sup>10+</sup>
1768

1769
off(type: 'deleteLeft'): void
1770

1771
取消订阅输入法应用向左删除文本事件。
1772 1773 1774 1775 1776 1777 1778

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
1779
| type   | string | 是   | 设置监听类型。<br/>- type为`deleteLeft`表示取消订阅输入法应用向左删除的事件监听。|
1780 1781

**示例:**
1782

1783
```js
H
Hollokin 已提交
1784
inputMethodController.off('deleteLeft');
1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
```

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

off(type: 'deleteRight'): void

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

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>- type为`deleteRight`表示取消订阅输入法应用向右删除的事件监听。|

**示例:**

```js
H
Hollokin 已提交
1804
inputMethodController.off('deleteRight');
1805 1806 1807 1808 1809 1810 1811
```

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

on(type: 'sendKeyboardStatus', callback: (keyBoardStatus: KeyboardStatus) => void): void

订阅输入法应用发送键盘状态事件。使用callback异步回调。
1812

H
update  
Hollokin 已提交
1813
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1814 1815 1816

**参数:**

H
update  
Hollokin 已提交
1817 1818
| 参数名   | 类型  | 必填 | 说明    |
| -------- | ------ | ---- | ---- |
1819
| type     | string  | 是   | 设置监听类型。<br/>- type为‘sendKeyboardStatus’时表示订阅输入法应用发送键盘状态事件监听。 |
1820
| callback | (keyBoardStatus: [KeyboardStatus](#keyboardstatus10)) => void | 是   | 回调函数,返回键盘状态。<br/>开发者需要在回调函数中根据传入的键盘状态做相应动作。 |
1821

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

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

1826
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1827
| -------- | -------------------------------------- |
1828
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1829

1830 1831 1832
**示例:**

```js
H
Hollokin 已提交
1833
try {
1834
  inputMethodController.on('sendKeyboardStatus', (keyBoardStatus) => {
H
Hollokin 已提交
1835
    console.log(`Succeeded in subscribing sendKeyboardStatus, keyBoardStatus: ${keyBoardStatus}`);
1836
  });
H
Hollokin 已提交
1837 1838
} catch(err) {
  console.error(`Failed to subscribe sendKeyboardStatus: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1839
}
1840 1841
```

1842
### off('sendKeyboardStatus')<sup>10+</sup>
1843

1844
off(type: 'sendKeyboardStatus'): void
1845

1846
取消订阅输入法应用发送键盘状态事件。
1847

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

1850
**参数:**
1851

1852 1853
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
1854
| type   | string | 是   | 设置监听类型。<br/>- type为‘sendKeyboardStatus’时表示取消订阅输入法应用发送键盘状态事件监听。 |
1855 1856 1857 1858

**示例:**

```js
H
Hollokin 已提交
1859
inputMethodController.off('sendKeyboardStatus');
1860 1861
```

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

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

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

1868
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1869 1870 1871

**参数:**

H
update  
Hollokin 已提交
1872 1873
| 参数名   | 类型  | 必填 | 说明     |
| -------- | -------- | ---- | ----- |
1874
| type     | string  | 是   | 设置监听类型。<br/>- type为‘sendFunctionKey’时表示订阅输入法应用发送功能键事件监听。 |
H
update  
Hollokin 已提交
1875
| callback | (functionKey: [FunctionKey](#functionkey10)) => void | 是   | 回调函数,返回输入法应用发送的功能键信息。<br/>开发者需要根据返回的功能键做相应的操作。 |
Z
zhaolinglan 已提交
1876

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

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

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

Z
zhaolinglan 已提交
1885 1886 1887
**示例:**

```js
1888
try {
1889
  inputMethodController.on('sendFunctionKey', (functionKey) => {
H
Hollokin 已提交
1890
    console.log(`Succeeded in subscribing sendFunctionKey, functionKey.enterKeyType: ${functionKey.enterKeyType}`);
1891
  });
H
Hollokin 已提交
1892 1893
} catch(err) {
  console.error(`Failed to subscribe sendFunctionKey: ${JSON.stringify(err)}`);
1894
}
Z
zhaolinglan 已提交
1895 1896
```

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

1899
off(type: 'sendFunctionKey'): void
Z
zhaolinglan 已提交
1900

1901
取消订阅输入法应用发送FunctionKey事件。
H
Hollokin 已提交
1902

1903
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1904

1905
**参数:**
Z
zhaolinglan 已提交
1906

1907 1908
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
1909
| type   | string | 是   | 设置监听类型。<br/>- type为‘sendFunctionKey’时表示取消订阅输入法应用发送FunctionKey事件监听。 |
Z
zhaolinglan 已提交
1910 1911 1912 1913

**示例:**

```js
H
Hollokin 已提交
1914
inputMethodController.off('sendFunctionKey');
Z
zhaolinglan 已提交
1915 1916
```

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

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

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

1923
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1924 1925 1926

**参数:**

H
update  
Hollokin 已提交
1927 1928
| 参数名   | 类型 | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
1929
| type     | string | 是   | 设置监听类型。<br/>- type为‘moveCursor’时表示订阅输入法应用移动光标事件监听。 |
H
update  
Hollokin 已提交
1930
| callback | callback: (direction: [Direction<sup>10+</sup>](#direction10)) => void | 是   | 回调函数,返回光标信息。<br/>开发者需要根据返回的光标移动方向改变光标位置。 |
Z
zhaolinglan 已提交
1931

H
Hollokin 已提交
1932 1933
**错误码:**

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

H
Hollokin 已提交
1936 1937
| 错误码ID | 错误信息                           |
| -------- | -------------------------------- |
1938
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1939

Z
zhaolinglan 已提交
1940 1941 1942
**示例:**

```js
1943
try {
1944
  inputMethodController.on('moveCursor', (direction) => {
H
Hollokin 已提交
1945
    console.log(`Succeeded in subscribing moveCursor, direction: ${direction}`);
1946
  });
H
Hollokin 已提交
1947 1948
} catch(err) {
  console.error(`Failed to subscribe moveCursor: ${JSON.stringify(err)}`);
1949
}
Z
zhaolinglan 已提交
1950 1951
```

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

1954
off(type: 'moveCursor'): void
Z
zhaolinglan 已提交
1955

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

1958
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1959

1960
**参数:**
Z
zhaolinglan 已提交
1961

H
Hollokin 已提交
1962 1963
| 参数名  | 类型    | 必填 | 说明  |
| ------ | ------ | ---- | ---- |
1964
| type   | string | 是   | 设置监听类型。<br/>- type为‘moveCursor’时表示取消订阅输入法应用发送移动光标事件监听。 |
Z
zhaolinglan 已提交
1965 1966 1967 1968

**示例:**

```js
H
Hollokin 已提交
1969
inputMethodController.off('moveCursor');
Z
zhaolinglan 已提交
1970 1971
```

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

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

1976
订阅输入法应用发送扩展操作事件。使用callback异步回调。
H
Hollokin 已提交
1977

H
update  
Hollokin 已提交
1978
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1979 1980 1981

**参数:**

H
update  
Hollokin 已提交
1982 1983
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | -------- |
1984
| type     | string    | 是   | 设置监听类型。<br/>- type为‘handleExtendAction’时表示订阅输入法应用发送扩展操作代码事件监听。 |
H
update  
Hollokin 已提交
1985
| callback | callback: (action: [ExtendAction](#extendaction10)) => void | 是   | 回调函数,返回扩展操作类型。<br/>开发者需要在回调函数中根据传入的扩展操作类型做相应的操作。 |
1986 1987 1988 1989 1990 1991 1992

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1993
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1994 1995 1996 1997

**示例:**

```js
1998
try {
1999
  inputMethodController.on('handleExtendAction', (action) => {
H
Hollokin 已提交
2000
    console.log(`Succeeded in subscribing handleExtendAction, action: ${action}`);
2001
  });
H
Hollokin 已提交
2002 2003
} catch(err) {
  console.error(`Failed to subscribe handleExtendAction: ${JSON.stringify(err)}`);
2004
}
H
Hollokin 已提交
2005 2006
```

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

2009
off(type: 'handleExtendAction'): void
H
Hollokin 已提交
2010

H
update  
Hollokin 已提交
2011
取消订阅输入法应用发送扩展操作事件。
H
Hollokin 已提交
2012

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

2015
**参数:**
H
Hollokin 已提交
2016

H
update  
Hollokin 已提交
2017 2018
| 参数名 | 类型   | 必填 | 说明  |
| ------ | ------ | ---- | ------- |
2019
| type   | string | 是   | 设置监听类型。<br/>- type为‘handleExtendAction’时表示取消订阅输入法应用发送扩展代码事件监听。 |
2020

H
Hollokin 已提交
2021 2022 2023
**示例:**

```js
H
Hollokin 已提交
2024
inputMethodController.off('handleExtendAction');
H
Hollokin 已提交
2025 2026
```

Z
add doc  
zhaolinglan 已提交
2027 2028 2029 2030 2031 2032 2033 2034 2035 2036
### on('selectByRange')<sup>10+</sup>

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

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

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

**参数:**

H
update  
Hollokin 已提交
2037 2038
| 参数名   | 类型     | 必填 | 说明     |
| -------- | ---- | ---- | ------- |
2039
| type     | string  | 是   | 设置监听类型。<br/>- type为‘selectByRange’时表示订阅输入法应用按范围选中文本事件监听。 |
2040
| callback | Callback&lt;[Range](#range10)&gt; | 是   | 回调函数,返回需要选中的文本的范围。<br/>开发者需要在回调函数中根据传入的范围选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
2041 2042 2043 2044 2045

**示例:**

```js
inputMethodController.on('selectByRange', (range) => {
H
Hollokin 已提交
2046
  console.log(`Succeeded in subscribing selectByRange: start: ${range.start} , end: ${range.end}`);
Z
add doc  
zhaolinglan 已提交
2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061
});
```

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

off(type: 'selectByRange'): void

取消订阅输入法应用按范围选中文本事件。

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
2062
| type   | string | 是   | 设置监听类型。<br/>- type为‘selectByRange’时表示取消订阅输入法应用按范围选中文本事件监听。 |
Z
add doc  
zhaolinglan 已提交
2063 2064 2065 2066 2067 2068 2069 2070 2071

**示例:**

```js
inputMethodController.off('selectByRange');
```

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

2072
on(type: 'selectByMovement', callback: Callback&lt;Movement&gt;): void
Z
add doc  
zhaolinglan 已提交
2073 2074 2075 2076 2077 2078 2079

订阅输入法应用按光标动作选中文本事件。使用callback异步回调。

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

**参数:**

H
update  
Hollokin 已提交
2080 2081
| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
2082
| type     | string  | 是   | 设置监听类型。<br/>- type为‘selectByMovement’时表示订阅输入法应用按光标移动动作选中文本事件监听。 |
2083
| callback | Callback&lt;[Movement](#movement10)&gt; | 是   | 回调函数,返回需要选中的文本的范围。<br/>开发者需要在回调函数中根据传入的光标动作选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
2084 2085 2086 2087 2088

**示例:**

```js
inputMethodController.on('selectByMovement', (movement) => {
H
Hollokin 已提交
2089
  console.log('Succeeded in subscribing selectByMovement: direction: ' + movement.direction);
Z
add doc  
zhaolinglan 已提交
2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104
});
```

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

off(type: 'selectByMovement'): void

取消订阅输入法应用按光标动作选中文本事件。

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
2105
| type   | string | 是   | 设置监听类型。<br/>- type为‘selectByMovement’时表示取消订阅输入法应用按范围选中文本事件监听。 |
Z
add doc  
zhaolinglan 已提交
2106 2107 2108 2109 2110 2111 2112

**示例:**

```js
inputMethodController.off('selectByMovement');
```

C
cy7717 已提交
2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125
### on('getLeftTextOfCursor')<sup>10+</sup>

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

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

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
| type     | string  | 是   | 设置监听类型。<br/>- type为‘getLeftTextOfCursor’时表示订阅输入法应用获取光标左侧指定长度文本事件监听。 |
C
mod  
cy7717 已提交
2126
| callback | (length: number) => string | 是   | 回调函数,获取光标左侧指定长度文本内容。<br/>开发者需要在该函数中,获取编辑框最新状态下光标左侧指定length长度的文本内容并返回。 |
C
cy7717 已提交
2127

C
cy7717 已提交
2128 2129 2130 2131 2132 2133 2134 2135
**错误码:**

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

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

C
cy7717 已提交
2136 2137 2138 2139 2140
**示例:**

```js
try {
  inputMethodController.on('getLeftTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2141
    console.info(`Succeeded in subscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2142
    let text:string = "";
C
mod  
cy7717 已提交
2143
    return text;
C
cy7717 已提交
2144 2145
  });
} catch(err) {
C
mod  
cy7717 已提交
2146
  console.error(`Failed to subscribe getLeftTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2147 2148 2149 2150 2151 2152 2153
}
```

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

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

C
cy7717 已提交
2154
取消订阅输入法应用获取光标左侧指定长度文本事件。
C
cy7717 已提交
2155 2156 2157 2158 2159 2160 2161 2162

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>- type为‘getLeftTextOfCursor’时表示取消订阅输入法应用获取光标左侧指定长度文本事件监听。 |
C
mod  
cy7717 已提交
2163
| callback | (length: number) => string | 否  | 回调函数,获取光标左侧指定长度文本内容。需要与on接口传入的保持一致。|
C
cy7717 已提交
2164 2165 2166 2167 2168 2169

**示例:**

```js
try {
  inputMethodController.off('getLeftTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2170
    console.info(`Succeeded in unsubscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2171
    let text:string = "";
C
mod  
cy7717 已提交
2172
    return text;
C
cy7717 已提交
2173 2174
  });
} catch(err) {
C
mod  
cy7717 已提交
2175
  console.error(`Failed to unsubscribing getLeftTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191
}
```

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

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

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

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
| type     | string  | 是   | 设置监听类型。<br/>- type为‘getRightTextOfCursor’时表示订阅输入法应用获取光标右侧指定长度文本事件监听。 |
C
mod  
cy7717 已提交
2192
| callback | (length: number) => string | 是   | 回调函数,获取光标右侧指定长度文本内容。<br/>开发者需要在该函数中,获取编辑框最新状态下光标右侧指定length长度的文本内容并返回。 |
C
cy7717 已提交
2193

C
cy7717 已提交
2194 2195 2196 2197 2198 2199 2200 2201
**错误码:**

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

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

C
cy7717 已提交
2202 2203 2204 2205 2206
**示例:**

```js
try {
  inputMethodController.on('getRightTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2207
    console.info(`Succeeded in subscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2208
    let text:string = "";
C
mod  
cy7717 已提交
2209
    return text;
C
cy7717 已提交
2210 2211
  });
} catch(err) {
C
mod  
cy7717 已提交
2212
  console.error(`Failed to subscribe getRightTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2213 2214 2215 2216 2217 2218 2219
}
```

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

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

C
cy7717 已提交
2220
取消订阅输入法应用获取光标右侧指定长度文本事件。
C
cy7717 已提交
2221 2222 2223 2224 2225 2226 2227 2228

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>- type为‘getRightTextOfCursor’时表示取消订阅输入法应用获取光标右侧指定长度文本事件监听。 |
C
mod  
cy7717 已提交
2229
| callback | (length: number) => string | 否  | 回调函数,获取光标右侧指定长度文本内容。需要与on接口传入的保持一致。|
C
cy7717 已提交
2230 2231 2232 2233 2234 2235

**示例:**

```js
try {
  inputMethodController.off('getRightTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2236
    console.info(`Succeeded in unsubscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2237
    let text:string = "";
C
mod  
cy7717 已提交
2238
    return text;
C
cy7717 已提交
2239 2240
  });
} catch(err) {
C
mod  
cy7717 已提交
2241
  console.error(`Failed to unsubscribing getRightTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257
}
```

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

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

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

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
| type     | string  | 是   | 设置监听类型。<br/>- type为‘getTextIndexAtCursor’时表示订阅输入法应用获取光标处文本索引事件监听。 |
C
mod  
cy7717 已提交
2258
| callback | () => number | 是   | 回调函数,获取光标处文本索引。<br/>开发者需要在该函数中,获取编辑框最新状态下光标处文本索引并返回。 |
C
cy7717 已提交
2259

C
cy7717 已提交
2260 2261 2262 2263 2264 2265 2266 2267
**错误码:**

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

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

C
cy7717 已提交
2268 2269 2270 2271 2272
**示例:**

```js
try {
  inputMethodController.on('getTextIndexAtCursor', () => {
C
mod  
cy7717 已提交
2273
    console.info(`Succeeded in subscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2274
    let index:number = 0;
C
mod  
cy7717 已提交
2275
    return index;
C
cy7717 已提交
2276 2277
  });
} catch(err) {
C
mod  
cy7717 已提交
2278
  console.error(`Failed to subscribe getTextIndexAtCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2279 2280 2281 2282 2283 2284 2285
}
```

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

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

C
cy7717 已提交
2286
取消订阅输入法应用获取光标处文本索引事件。
C
cy7717 已提交
2287 2288 2289 2290 2291 2292 2293 2294

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>- type为‘getTextIndexAtCursor’时表示取消订阅输入法应用获取光标处文本索引事件监听。 |
C
mod  
cy7717 已提交
2295
| callback | () => number | 否  | 回调函数,获取光标处文本索引。需要与on接口传入的保持一致。|
C
cy7717 已提交
2296 2297 2298 2299 2300 2301

**示例:**

```js
try {
  inputMethodController.off('getTextIndexAtCursor', () => {
C
mod  
cy7717 已提交
2302
    console.info(`Succeeded in unsubscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2303
    let index:number = 0;
C
mod  
cy7717 已提交
2304
    return index;
C
cy7717 已提交
2305 2306
  });
} catch(err) {
C
mod  
cy7717 已提交
2307
  console.error(`Failed to unsubscribing getTextIndexAtCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2308 2309 2310
}
```

2311
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
2312

2313
下列API示例中都需使用[getSetting](#inputmethodgetsetting9)获取到InputMethodSetting实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
2314

H
Hollokin 已提交
2315
### on('imeChange')<sup>9+</sup>
2316 2317 2318

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

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

H
update  
Hollokin 已提交
2321
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2322 2323 2324 2325 2326

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
2327
| type     | string                        | 是   | 设置监听类型。<br/>- type为‘imeChange’时表示订阅输入法及子类型变化监听事件。 |
2328
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 是 | 回调函数,返回输入法属性对象及输入法子类型对象。 |
2329 2330 2331

**示例:**

H
Hollokin 已提交
2332
```js
H
Hollokin 已提交
2333
inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
H
Hollokin 已提交
2334
  console.log('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
2335 2336
});
```
2337

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

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

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

H
update  
Hollokin 已提交
2344
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2345 2346 2347

**参数:**

H
update  
Hollokin 已提交
2348 2349
| 参数名   | 类型    | 必填 | 说明          |
| -------- | --------- | ---- | --------------- |
2350
| type     | string    | 是   | 设置监听类型。<br/>- type为‘imeChange’时表示取消订阅输入法及子类型变化监听事件。 |
2351
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 否 | 回调函数,返回取消订阅的输入法属性对象及输入法子类型对象。 |
2352 2353 2354

**示例:**

H
Hollokin 已提交
2355
```js
H
Hollokin 已提交
2356
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
2357
```
2358

2359
### on('imeShow')<sup>10+</sup>
2360

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

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

H
update  
Hollokin 已提交
2365 2366
**系统接口**:此接口为系统接口。

2367 2368 2369 2370 2371 2372
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
2373
| type     | string | 是 | 设置监听类型。<br/>- type为`imeShow`表示订阅输入法软键盘显示事件。 |
2374 2375 2376 2377 2378 2379 2380 2381 2382 2383
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

```js
inputMethodSetting.on('imeShow', (info) => {
    console.info('Succeeded in subscribing imeShow event.');
});
```

2384
### on('imeHide')<sup>10+</sup>
2385

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

2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413
订阅输入法软键盘隐藏事件。使用callback异步回调。

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

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
| type     | string | 是 | 设置监听类型。<br/>- type为`imeHide`表示订阅输入法软键盘隐藏事件。 |
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

```js
inputMethodSetting.on('imeHide', (info) => {
    console.info('Succeeded in subscribing imeHide event.');
});
```

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

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

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

H
update  
Hollokin 已提交
2415 2416
**系统接口**:此接口为系统接口。

2417 2418 2419 2420 2421 2422
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
2423
| type     | string | 是 | 设置监听类型。<br/>- type为`imeShow`表示取消订阅输入法软键盘显示事件。 |
H
update  
Hollokin 已提交
2424
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。当该参数不填写时,取消订阅type对应的所有回调事件。 |
2425 2426 2427 2428 2429 2430 2431

**示例:**

```js
inputMethodSetting.off('imeShow');
```

2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454
### off('imeHide')<sup>10+</sup>

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

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

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

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

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
| type     | string | 是 | 设置监听类型。<br/>- type为`imeHide`表示取消订阅输入法软键盘隐藏事件。 |
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。当该参数不填写时,取消订阅type对应的所有回调事件。 |

**示例:**

```js
inputMethodSetting.off('imeHide');
```

2455 2456 2457 2458
### listInputMethodSubtype<sup>9+</sup>

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

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

H
update  
Hollokin 已提交
2461
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2462 2463 2464 2465 2466

**参数:**

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

H
Hollokin 已提交
2470 2471
**错误码:**

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

2474
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2475
| -------- | -------------------------------------- |
2476 2477
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2478

2479 2480
**示例:**

H
Hollokin 已提交
2481
```js
H
update  
Hollokin 已提交
2482
let inputMethodProperty = {
2483
  name: 'com.example.kikakeyboard',
2484
  id: 'propertyId',
H
Hollokin 已提交
2485 2486
}
try {
2487
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err, data) => {
2488
    if (err) {
H
Hollokin 已提交
2489
      console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2490 2491 2492 2493
      return;
    }
    console.log('Succeeded in listing inputMethodSubtype.');
  });
H
Hollokin 已提交
2494
} catch (err) {
H
Hollokin 已提交
2495
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2496
}
2497 2498 2499 2500 2501 2502
```

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

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

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

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

H
Hollokin 已提交
2507 2508 2509 2510
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
H
Hollokin 已提交
2511
| inputMethodProperty | [InputMethodProperty](#inputmethodproperty8)| 是 | 子类型所属的输入法应用。 |
H
Hollokin 已提交
2512

2513 2514 2515 2516
**返回值:**

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

H
Hollokin 已提交
2519 2520
**错误码:**

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

2523
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2524
| -------- | -------------------------------------- |
2525 2526
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2527

2528 2529
**示例:**

H
Hollokin 已提交
2530
```js
H
Hollokin 已提交
2531
let inputMethodProperty = {
2532
  name: 'com.example.kikakeyboard',
2533
  id: 'propertyId',
H
Hollokin 已提交
2534 2535
}
try {
2536
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
2537
    console.log('Succeeded in listing inputMethodSubtype.');
2538
  }).catch((err) => {
H
Hollokin 已提交
2539
    console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2540 2541
  })
} catch(err) {
H
Hollokin 已提交
2542
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2543
}
2544 2545 2546 2547 2548
```

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

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

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

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

**参数:**

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

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

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

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

2569 2570
**示例:**

H
Hollokin 已提交
2571
```js
H
Hollokin 已提交
2572
try {
2573 2574
  inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
    if (err) {
H
Hollokin 已提交
2575
      console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2576 2577 2578 2579
      return;
    }
    console.log('Succeeded in listing currentInputMethodSubtype.');
  });
H
Hollokin 已提交
2580
} catch(err) {
H
Hollokin 已提交
2581
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2582
}
2583 2584 2585 2586 2587 2588
```

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

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

H
Hollokin 已提交
2589
查询当前输入法的子类型列表。使用promise异步回调。
2590

H
update  
Hollokin 已提交
2591
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2592 2593 2594 2595 2596

**返回值:**

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

H
Hollokin 已提交
2599 2600
**错误码:**

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

2603
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2604
| -------- | -------------------------------------- |
2605 2606
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2607

2608 2609
**示例:**

H
Hollokin 已提交
2610
```js
H
Hollokin 已提交
2611
try {
2612
  inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
H
Hollokin 已提交
2613
    console.log('Succeeded in listing currentInputMethodSubtype.');
2614
  }).catch((err) => {
H
Hollokin 已提交
2615
    console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2616 2617
  })
} catch(err) {
H
Hollokin 已提交
2618
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2619
}
2620 2621 2622 2623 2624
```

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

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

2626 2627 2628
获取已激活/未激活输入法列表。使用callback异步回调。

参数enable取true,返回已激活输入法列表;取false返回未激活输入法列表。已激活/未激活为预留概念,当前暂未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
Z
zhaolinglan 已提交
2629

H
update  
Hollokin 已提交
2630
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2631 2632 2633 2634 2635 2636

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                          |
| -------- | --------------------------------------------------- | ---- | ----------------------------- |
| enable   | boolean                                             | 是   | 指定返回已激活/未激活。       |
2637
| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2638

H
Hollokin 已提交
2639 2640
**错误码:**

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

2643
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2644
| -------- | -------------------------------------- |
2645 2646
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2647

Z
zhaolinglan 已提交
2648 2649
**示例:**

H
Hollokin 已提交
2650
```js
H
Hollokin 已提交
2651
try {
2652
  inputMethodSetting.getInputMethods(true, (err, data) => {
2653
    if (err) {
H
Hollokin 已提交
2654
      console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2655 2656 2657 2658
      return;
    }
    console.log('Succeeded in getting inputMethods.');
  });
H
Hollokin 已提交
2659
} catch (err) {
H
Hollokin 已提交
2660
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2661
}
Z
zhaolinglan 已提交
2662 2663
```

2664
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
2665

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

2668 2669 2670
获取已激活/未激活输入法列表。使用promise异步回调。

参数enable取true,返回已激活输入法列表;取false返回未激活输入法列表。已激活/未激活为预留概念,当前暂未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
Z
zhaolinglan 已提交
2671

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

**参数:**

| 参数名 | 类型    | 必填 | 说明                    |
| ------ | ------- | ---- | ----------------------- |
| enable | boolean | 是   | 指定返回已激活/未激活。 |

H
Hollokin 已提交
2680 2681
**错误码:**

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

2684
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2685
| -------- | -------------------------------------- |
2686 2687
| 12800001 | package manager error.                 |
| 12800008 |input method manager service error. |
H
Hollokin 已提交
2688

Z
zhaolinglan 已提交
2689 2690 2691 2692
**返回值:**

| 类型                                                         | 说明                          |
| ------------------------------------------------------------ | ----------------------------- |
H
Hollokin 已提交
2693
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2694 2695 2696

**示例:**

H
Hollokin 已提交
2697
```js
H
Hollokin 已提交
2698
try {
2699
  inputMethodSetting.getInputMethods(true).then((data) => {
H
Hollokin 已提交
2700
    console.log('Succeeded in getting inputMethods.');
2701
  }).catch((err) => {
H
Hollokin 已提交
2702
    console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2703 2704
  })
} catch(err) {
H
Hollokin 已提交
2705
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2706
}
Z
zhaolinglan 已提交
2707 2708
```

H
Hollokin 已提交
2709 2710
### showOptionalInputMethods<sup>9+</sup>

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

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

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

**参数:**

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

H
Hollokin 已提交
2723 2724
**错误码:**

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

2727
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2728
| -------- | -------------------------------------- |
2729
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2730

H
Hollokin 已提交
2731 2732
**示例:**

H
Hollokin 已提交
2733
```js
H
Hollokin 已提交
2734
try {
2735 2736
  inputMethodSetting.showOptionalInputMethods((err, data) => {
    if (err) {
H
Hollokin 已提交
2737
      console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
2738 2739
      return;
    }
H
Hollokin 已提交
2740
    console.log('Succeeded in showing optionalInputMethods.');
2741
  });
H
Hollokin 已提交
2742
} catch (err) {
H
Hollokin 已提交
2743
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2744 2745 2746 2747 2748
}
```

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

H
Hollokin 已提交
2749
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
2750

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

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

**返回值:**

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

H
Hollokin 已提交
2761 2762
**错误码:**

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

2765
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2766
| -------- | -------------------------------------- |
2767
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2768

H
Hollokin 已提交
2769 2770
**示例:**

H
Hollokin 已提交
2771
```js
H
Hollokin 已提交
2772
inputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
2773
  console.log('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
2774
}).catch((err) => {
H
Hollokin 已提交
2775
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2776 2777 2778
})
```

H
Hollokin 已提交
2779
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2780 2781 2782

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

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

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

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

2791
**参数:**
B
bmeangel 已提交
2792

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

2797
**示例:**
T
explain  
tianyu 已提交
2798

2799
```js
2800
inputMethodSetting.listInputMethod((err, data) => {
2801
  if (err) {
H
Hollokin 已提交
2802
    console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
2803 2804 2805
    return;
  }
  console.log('Succeeded in listing inputMethod.');
2806
 });
2807
```
Z
zhouyongfei 已提交
2808

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

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

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

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

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

2821
**返回值:**
B
bmeangel 已提交
2822

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

2827
**示例:**
2828 2829

```js
H
Hollokin 已提交
2830
inputMethodSetting.listInputMethod().then((data) => {
H
Hollokin 已提交
2831
  console.log('Succeeded in listing inputMethod.');
Z
zhaolinglan 已提交
2832
}).catch((err) => {
H
Hollokin 已提交
2833
  console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
Z
zhaolinglan 已提交
2834
})
2835
```
Z
zhouyongfei 已提交
2836

H
Hollokin 已提交
2837
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2838 2839 2840

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

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

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

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

2849
**参数:**
Z
zhouyongfei 已提交
2850 2851 2852

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

2855
**示例:**
2856 2857

```js
H
Hollokin 已提交
2858
inputMethodSetting.displayOptionalInputMethod((err) => {
2859
  if (err) {
H
Hollokin 已提交
2860
    console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2861 2862
    return;
  }
H
Hollokin 已提交
2863
  console.log('Succeeded in displaying optionalInputMethod.');
2864
});
2865
```
Z
zhouyongfei 已提交
2866

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

2869 2870
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
2883
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2884 2885 2886 2887

**示例:**

```js
H
Hollokin 已提交
2888
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
2889
  console.log('Succeeded in displaying optionalInputMethod.');
2890
}).catch((err) => {
H
Hollokin 已提交
2891
  console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2892 2893
})
```