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

T
explain  
tianyu 已提交
3 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 40 41
| name<sup>9+</sup>  | string | 是 | 否 | 输入法内部名称。必填。|
| id<sup>9+</sup>    | string | 是 | 否 | 输入法唯一标识。必填。|
| label<sup>9+</sup>    | string | 是 | 否 | 输入法对外显示名称。 非必填。|
| icon<sup>9+</sup>    | string | 是 | 否 | 输入法图标数据。非必填。 |
| iconId<sup>9+</sup>    | number | 是 | 否 | 输入法图标资源号。非必填。 |
| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。 必填。|
| 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 已提交
42

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

getController(): InputMethodController

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

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

**返回值:**

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

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

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

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

65 66
**示例:**

H
Hollokin 已提交
67
```js
68
let inputMethodController = inputMethod.getController();
69
```
70 71 72 73 74 75 76

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

getSetting(): InputMethodSetting

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

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

**返回值:**

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

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

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

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

93 94
**示例:**

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

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

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

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

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

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

**参数:**

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

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

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

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

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

H
Hollokin 已提交
127
```js
H
Hollokin 已提交
128 129 130 131 132 133 134 135
let im = inputMethod.getCurrentInputMethod();
let prop = {
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
    extra: {}
}
H
Hollokin 已提交
136
try{
H
Hollokin 已提交
137 138 139
    inputMethod.switchInputMethod(prop, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
140 141 142
            return;
        }
        if (result) {
H
Hollokin 已提交
143
            console.info('Succeeded in switching inputmethod.');
H
Hollokin 已提交
144
        } else {
H
Hollokin 已提交
145
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
146 147 148
        }
    });
} catch(err) {
H
Hollokin 已提交
149
    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
150
}
G
gaoxiang 已提交
151
```
G
gaoxiang 已提交
152
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
153
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
154

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

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

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

G
gaoxiang 已提交
161
**参数:**
G
gaoxiang 已提交
162 163 164

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

G
gaoxiang 已提交
167
**返回值:**
B
bmeangel 已提交
168

G
gaoxiang 已提交
169 170
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
H
Hollokin 已提交
171
  | Promise\<boolean> | Promise对象。返回true表示切换输入法成功;返回false表示切换输入法失败。 |
G
gaoxiang 已提交
172

H
Hollokin 已提交
173 174
**错误码:**

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

177
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
178 179
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
180
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
181

G
gaoxiang 已提交
182 183
**示例:**

H
Hollokin 已提交
184
```js
H
Hollokin 已提交
185 186 187 188 189 190 191 192
let im = inputMethod.getCurrentInputMethod();
let prop = {
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
    extra: {}
}
H
Hollokin 已提交
193
try {
H
Hollokin 已提交
194
    inputMethod.switchInputMethod(prop).then((result) => {
H
Hollokin 已提交
195
        if (result) {
H
Hollokin 已提交
196
            console.info('Succeeded in switching inputmethod.');
H
Hollokin 已提交
197
        } else {
H
Hollokin 已提交
198
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
199 200
        }
    }).catch((err) => {
H
Hollokin 已提交
201
        console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
202 203
    })
} catch(err) {
H
Hollokin 已提交
204
    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
205
}
G
gaoxiang 已提交
206
```
207

Z
zhaolinglan 已提交
208 209 210 211
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

H
Hollokin 已提交
212
获取当前输入法扩展应用,提供同步接口,返回当前输入法属性。
Z
zhaolinglan 已提交
213

H
update  
Hollokin 已提交
214
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
215 216 217

**返回值:**

Z
zhaolinglan 已提交
218 219
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
220
| [InputMethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
221 222 223

**示例:**

H
Hollokin 已提交
224
```js
H
Hollokin 已提交
225
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
226 227
```

228 229
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>

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

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

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

H
update  
Hollokin 已提交
236
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
237 238 239 240 241

**参数:**

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

H
Hollokin 已提交
245 246
**错误码:**

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

249
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
250 251
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
252
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
253

254 255
**示例:**

H
Hollokin 已提交
256
```js
H
Hollokin 已提交
257
try {
H
Hollokin 已提交
258 259 260 261 262 263 264 265 266 267 268 269 270
    inputMethod.switchCurrentInputMethodSubtype({
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
271 272 273
            return;
        }
        if (result) {
H
Hollokin 已提交
274
            console.info('Succeeded in switching currentInputMethodSubtype.');
H
Hollokin 已提交
275
        } else {
H
Hollokin 已提交
276
            console.error('Failed to switchCurrentInputMethodSubtype');
H
Hollokin 已提交
277 278 279
        }
    });
} catch(err) {
H
Hollokin 已提交
280
    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
281
}
282 283 284 285 286 287
```

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

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

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

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

H
update  
Hollokin 已提交
292
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
293 294 295 296 297

**参数:**

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

H
Hollokin 已提交
300 301 302 303 304 305
**返回值:**

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

H
Hollokin 已提交
306 307
**错误码:**

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

310
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
311 312
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
313
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
314

315 316
**示例:**

H
Hollokin 已提交
317
```js
H
Hollokin 已提交
318
try {
H
Hollokin 已提交
319 320 321 322 323 324 325 326 327 328 329
    inputMethod.switchCurrentInputMethodSubtype({
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }).then((result) => {
H
Hollokin 已提交
330
        if (result) {
H
Hollokin 已提交
331
            console.info('Succeeded in switching currentInputMethodSubtype.');
H
Hollokin 已提交
332
        } else {
H
Hollokin 已提交
333
            console.error('Failed to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
334 335
        }
    }).catch((err) => {
H
Hollokin 已提交
336
        console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
337 338
    })
} catch(err) {
H
Hollokin 已提交
339
    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
340
}
341 342 343 344 345 346 347 348
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
update  
Hollokin 已提交
349
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
350 351 352 353 354

**返回值:**

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

**示例:**

H
Hollokin 已提交
359
```js
H
Hollokin 已提交
360
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
361 362 363 364
```

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

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

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

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

H
update  
Hollokin 已提交
371
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
372 373 374 375 376

**参数:**

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

H
Hollokin 已提交
381 382
**错误码:**

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

385
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
386 387
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
388
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
389

390 391
**示例:**

H
Hollokin 已提交
392
```js
H
Hollokin 已提交
393
let im = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
394
let inputMethodProperty = {
H
Hollokin 已提交
395 396 397 398
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
399
    extra: {}
H
Hollokin 已提交
400 401
}
try {
H
Hollokin 已提交
402 403 404 405 406 407 408 409 410 411 412 413 414
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, {
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }, (err,result) => {
        if (err !== undefined) {
            console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
415 416 417
            return;
        }
        if (result) {
H
Hollokin 已提交
418
            console.info('Succeeded in switching currentInputMethodAndSubtype.');
H
Hollokin 已提交
419
        } else {
H
Hollokin 已提交
420
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
421 422 423
        }
    });
} catch (err) {
H
Hollokin 已提交
424
    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
425
}
426 427 428 429
```

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

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

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

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

H
update  
Hollokin 已提交
436
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
437 438 439 440 441

**参数:**

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

H
Hollokin 已提交
445 446 447 448 449 450
**返回值:**

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

H
Hollokin 已提交
451 452
**错误码:**

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

455
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
456 457
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
458
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
459

460 461
**示例:**

H
Hollokin 已提交
462
```js
H
Hollokin 已提交
463
let im = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
464
let inputMethodProperty = {
H
Hollokin 已提交
465 466 467 468
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
H
Hollokin 已提交
469
    extra: {}
H
Hollokin 已提交
470 471
}
try {
H
Hollokin 已提交
472 473 474 475 476 477 478 479 480 481 482
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, {
      id: im.packageName,
      label: im.methodId,
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }).then((result) => {
H
Hollokin 已提交
483
        if (result) {
H
Hollokin 已提交
484
            console.info('Succeeded in switching currentInputMethodAndSubtype.');
H
Hollokin 已提交
485
        } else {
H
Hollokin 已提交
486
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
487 488
        }
    }).catch((err) => {
H
Hollokin 已提交
489
        console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
490 491
    })
} catch(err) {
H
Hollokin 已提交
492
    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
493
}
494 495
```

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

H
Hollokin 已提交
498
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
499

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

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

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

H
Hollokin 已提交
508
**返回值:**
Z
zhouyongfei 已提交
509

H
Hollokin 已提交
510 511 512
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
513

514
**示例:**
Z
zhouyongfei 已提交
515

516
```js
517
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
518 519
```

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

H
Hollokin 已提交
522
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
523

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

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

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

532
**返回值:**
Z
zhouyongfei 已提交
533

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

538
**示例:**
Z
zhouyongfei 已提交
539

540
```js
H
Hollokin 已提交
541
let inputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
542 543
```

H
Hollokin 已提交
544 545
## InputMethodController

546
下列API示例中都需使用[getController](#inputmethodgetcontroller9)获取到InputMethodController实例,再通过此实例调用对应方法。
H
Hollokin 已提交
547

548 549 550 551
### stopInputSession<sup>9+</sup>

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

552
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
553

H
update  
Hollokin 已提交
554
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
555 556 557 558 559

**参数:**

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

H
Hollokin 已提交
562 563
**错误码:**

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

566
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
567 568
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
569
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
570

571 572 573
**示例:**

```js
H
Hollokin 已提交
574
try {
H
Hollokin 已提交
575
    inputMethodController.stopInputSession((error, result) => {
H
Hollokin 已提交
576 577
        if (error !== undefined) {
            console.error('Failed to stopInputSession: ' + JSON.stringify(error));
H
Hollokin 已提交
578 579 580
            return;
        }
        if (result) {
H
Hollokin 已提交
581
            console.info('Succeeded in stopping inputSession.');
H
Hollokin 已提交
582
        } else {
H
Hollokin 已提交
583
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
584 585
        }
    });
H
Hollokin 已提交
586
} catch(error) {
H
Hollokin 已提交
587
    console.error('Failed to stopInputSession: ' + JSON.stringify(error));
H
Hollokin 已提交
588
}
589 590
```

H
Hollokin 已提交
591
### stopInputSession<sup>9+</sup>
592

H
Hollokin 已提交
593
stopInputSession(): Promise&lt;boolean&gt;
594

595
结束输入会话。通过点击输入框实现输入会话的开启之后此接口才可生效。使用promise异步回调。
596

H
update  
Hollokin 已提交
597
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
598 599 600 601 602

**返回值:**

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

H
Hollokin 已提交
605 606
**错误码:**

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

609
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
610 611
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
612
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
613

614 615 616
**示例:**

```js
H
Hollokin 已提交
617
try {
H
Hollokin 已提交
618
    inputMethodController.stopInputSession().then((result) => {
H
Hollokin 已提交
619
        if (result) {
H
Hollokin 已提交
620
            console.info('Succeeded in stopping inputSession.');
H
Hollokin 已提交
621
        } else {
H
Hollokin 已提交
622
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
623 624
        }
    }).catch((err) => {
H
Hollokin 已提交
625
        console.error('Failed to stopInputSession: ' + JSON.stringify(err));
H
Hollokin 已提交
626 627
    })
} catch(err) {
H
Hollokin 已提交
628
    console.error('Failed to stopInputSession: ' + JSON.stringify(err));
H
Hollokin 已提交
629
}
630 631
```

632
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
633

Z
zhaolinglan 已提交
634
showSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
Z
zhaolinglan 已提交
635

636
显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
637

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

Z
zhaolinglan 已提交
640
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
641 642 643

**参数:**

644
| 参数名   | 类型                  | 必填 | 说明       |
Z
zhaolinglan 已提交
645
| -------- | ------------------------- | ---- | ---------- |
H
Hollokin 已提交
646
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘显示成功。err为undefined,否则为错误对象。 |
Z
zhaolinglan 已提交
647

H
Hollokin 已提交
648 649
**错误码:**

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

652
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
653 654
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
655
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
656

Z
zhaolinglan 已提交
657 658 659
**示例:**

```js
H
Hollokin 已提交
660
inputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
661
    if (err === undefined) {
H
Hollokin 已提交
662
        console.info('Succeeded in showing softKeyboard.');
Z
zhaolinglan 已提交
663
    } else {
H
Hollokin 已提交
664
        console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
665 666 667 668
    }
})
```

669
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
670

H
Hollokin 已提交
671 672
showSoftKeyboard(): Promise&lt;void&gt;

673
显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用Promise异步回调。
Z
zhaolinglan 已提交
674

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

Z
zhaolinglan 已提交
677
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
678 679 680

**返回值:**

Z
zhaolinglan 已提交
681 682
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
683
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
684

H
Hollokin 已提交
685 686
**错误码:**

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

689
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
690 691
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
692
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
693

Z
zhaolinglan 已提交
694 695 696
**示例:**

```js
H
Hollokin 已提交
697 698
inputMethodController.showSoftKeyboard().then(() => {
    console.log('Succeeded in showing softKeyboard.');
Z
zhaolinglan 已提交
699
}).catch((err) => {
H
Hollokin 已提交
700
    console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
701 702 703
});
```

704
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
705

Z
zhaolinglan 已提交
706
hideSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
Z
zhaolinglan 已提交
707

708
隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
709

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

Z
zhaolinglan 已提交
712
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
713 714 715

**参数:**

716
| 参数名   | 类型                  | 必填 | 说明       |
Z
zhaolinglan 已提交
717
| -------- | ------------------------- | ---- | ---------- |
H
Hollokin 已提交
718
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘隐藏成功。err为undefined,否则为错误对象。 |
Z
zhaolinglan 已提交
719

H
Hollokin 已提交
720 721
**错误码:**

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

724
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
725 726
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
727
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
728

Z
zhaolinglan 已提交
729 730 731
**示例:**

```js
H
Hollokin 已提交
732
inputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
733
    if (err === undefined) {
H
Hollokin 已提交
734
        console.info('Succeeded in hiding softKeyboard.');
Z
zhaolinglan 已提交
735
    } else {
H
Hollokin 已提交
736
        console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
737 738 739 740
    }
})
```

741
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
742

Z
zhaolinglan 已提交
743
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
744

745
隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用Promise异步回调。
Z
zhaolinglan 已提交
746

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

Z
zhaolinglan 已提交
749
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
750 751 752

**返回值:**

Z
zhaolinglan 已提交
753 754
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
755
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
756

H
Hollokin 已提交
757 758
**错误码:**

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

761
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
762 763
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
764
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
765

Z
zhaolinglan 已提交
766 767 768
**示例:**

```js
H
Hollokin 已提交
769 770
inputMethodController.hideSoftKeyboard().then(() => {
    console.log('Succeeded in hiding softKeyboard.');
Z
zhaolinglan 已提交
771
}).catch((err) => {
H
Hollokin 已提交
772
    console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
773 774 775
});
```

H
Hollokin 已提交
776 777 778 779
### stopInput<sup>(deprecated)</sup>

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

780
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
H
Hollokin 已提交
781

H
update  
Hollokin 已提交
782 783
> **说明:** 
>
H
update  
Hollokin 已提交
784
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代。
H
Hollokin 已提交
785

H
update  
Hollokin 已提交
786
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
787 788 789 790 791

**参数:**

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

**示例:**

```js
H
Hollokin 已提交
797
inputMethodController.stopInput((error, result) => {
H
Hollokin 已提交
798 799
    if (error !== undefined) {
        console.error('Failed to stopInput: ' + JSON.stringify(error));
H
Hollokin 已提交
800 801 802
        return;
    }
    if (result) {
H
Hollokin 已提交
803
        console.info('Succeeded in stopping input.');
H
Hollokin 已提交
804
    } else {
H
Hollokin 已提交
805
        console.error('Failed to stopInput.');
H
Hollokin 已提交
806 807 808 809 810 811 812 813
    }
});
```

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

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

814
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用promise异步回调。
H
Hollokin 已提交
815

H
update  
Hollokin 已提交
816 817
> **说明:** 
>
H
update  
Hollokin 已提交
818
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代。
H
Hollokin 已提交
819

H
update  
Hollokin 已提交
820
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
821 822 823 824 825

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
826
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
H
Hollokin 已提交
827 828 829 830

**示例:**

```js
H
Hollokin 已提交
831
inputMethodController.stopInput().then((result) => {
H
Hollokin 已提交
832
    if (result) {
H
Hollokin 已提交
833
        console.info('Succeeded in stopping input.');
H
Hollokin 已提交
834
    } else {
H
Hollokin 已提交
835
        console.error('Failed to stopInput.');
H
Hollokin 已提交
836 837
    }
}).catch((err) => {
H
Hollokin 已提交
838
    console.error('Failed to stopInput: ' + err);
H
Hollokin 已提交
839 840 841
})
```

Z
add doc  
zhaolinglan 已提交
842 843 844 845 846 847 848 849 850 851
### on('selectByRange')<sup>10+</sup>

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
852 853 854 855
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 设置监听类型。<br/>-type为‘selectByRange’时表示订阅输入法应用按范围选中文本事件监听。 |
| callback | Callback&lt;[Range](./js-apis-inputmethod-InputMethodCommon.md#range)&gt; | 是   | 回调函数,返回需要选中的文本的范围。<br/>开发者需要在回调函数中根据传入的范围选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894

**示例:**

```js
inputMethodController.on('selectByRange', (range) => {
    console.info('Succeeded in subscribing selectByRange: start: ' + range.start + " , end: " + range.end);
});
```

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

off(type: 'selectByRange'): void

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

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>-type为‘selectByRange’时表示取消订阅输入法应用按范围选中文本事件监听。 |

**示例:**

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

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

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

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

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

**参数:**

Z
add doc  
zhaolinglan 已提交
895 896 897 898
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 设置监听类型。<br/>-type为‘selectByMovement’时表示订阅输入法应用按光标移动动作选中文本事件监听。 |
| callback | Callback&lt;[Movement](./js-apis-inputmethod-InputMethodCommon.md#movement)&gt; | 是   | 回调函数,返回需要选中的文本的范围。<br/>开发者需要在回调函数中根据传入的光标动作选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927

**示例:**

```js
inputMethodController.on('selectByMovement', (movement) => {
    console.info('Succeeded in subscribing selectByMovement: direction: ' + movement.direction);
});
```

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

off(type: 'selectByMovement'): void

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

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| type   | string | 是   | 设置监听类型。<br/>-type为‘selectByMovement’时表示取消订阅输入法应用按范围选中文本事件监听。 |

**示例:**

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

928
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
929

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

H
Hollokin 已提交
932
### on('imeChange')<sup>9+</sup>
933 934 935

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

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

H
update  
Hollokin 已提交
938
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
939 940 941 942 943 944

**参数:**

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

**示例:**

H
Hollokin 已提交
949
```js
H
Hollokin 已提交
950 951
inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
    console.info('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
952 953
});
```
954

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

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

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

H
update  
Hollokin 已提交
961
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
962 963 964 965 966 967

**参数:**

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

**示例:**

H
Hollokin 已提交
972
```js
H
Hollokin 已提交
973
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
974
```
975 976 977 978 979

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

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

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

H
update  
Hollokin 已提交
982
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
983 984 985 986 987

**参数:**

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

H
Hollokin 已提交
991 992
**错误码:**

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

995
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
996 997
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
998
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
999

1000 1001
**示例:**

H
Hollokin 已提交
1002
```js
H
update  
Hollokin 已提交
1003
let inputMethodProperty = {
H
Hollokin 已提交
1004 1005 1006 1007
    packageName: 'com.example.kikakeyboard',
    methodId: 'com.example.kikakeyboard',
    name: 'com.example.kikakeyboard',
    id: 'com.example.kikakeyboard',
1008
    extra:{}
H
Hollokin 已提交
1009 1010
}
try {
H
Hollokin 已提交
1011
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
1012 1013
        if (err !== undefined) {
            console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1014 1015
            return;
        }
H
Hollokin 已提交
1016
        console.log('Succeeded in listing inputMethodSubtype.');
H
Hollokin 已提交
1017 1018
    });
} catch (err) {
H
Hollokin 已提交
1019
    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1020
}
1021 1022 1023 1024 1025 1026
```

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

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

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

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

H
Hollokin 已提交
1031 1032 1033 1034
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
1035
| inputMethodProperty | InputMethodProperty| 是 | 子类型所属的输入法应用。 |
H
Hollokin 已提交
1036

1037 1038 1039 1040
**返回值:**

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

H
Hollokin 已提交
1043 1044
**错误码:**

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

1047
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1048 1049
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1050
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1051

1052 1053
**示例:**

H
Hollokin 已提交
1054
```js
H
Hollokin 已提交
1055
let inputMethodProperty = {
H
Hollokin 已提交
1056 1057 1058 1059
    packageName: 'com.example.kikakeyboard',
    methodId: 'com.example.kikakeyboard',
    name: 'com.example.kikakeyboard',
    id: 'com.example.kikakeyboard',
1060
    extra:{}
H
Hollokin 已提交
1061 1062
}
try {
H
Hollokin 已提交
1063
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
1064
        console.info('Succeeded in listing inputMethodSubtype.');
H
Hollokin 已提交
1065
    }).catch((err) => {
H
Hollokin 已提交
1066
        console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1067 1068
    })
} catch(err) {
H
Hollokin 已提交
1069
    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1070
}
1071 1072 1073 1074 1075
```

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

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

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

H
update  
Hollokin 已提交
1079
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1080 1081 1082 1083 1084

**参数:**

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

H
Hollokin 已提交
1087 1088
**错误码:**

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

1091
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1092 1093
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1094
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1095

1096 1097
**示例:**

H
Hollokin 已提交
1098
```js
H
Hollokin 已提交
1099
try {
H
Hollokin 已提交
1100
    inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
1101 1102
        if (err !== undefined) {
            console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1103 1104
            return;
        }
H
Hollokin 已提交
1105
        console.log('Succeeded in listing currentInputMethodSubtype.');
H
Hollokin 已提交
1106 1107
    });
} catch(err) {
H
Hollokin 已提交
1108
    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1109
}
1110 1111 1112 1113 1114 1115
```

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

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

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

H
update  
Hollokin 已提交
1118
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1119 1120 1121 1122 1123

**返回值:**

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

H
Hollokin 已提交
1126 1127
**错误码:**

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

1130
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1131 1132
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1133
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1134

1135 1136
**示例:**

H
Hollokin 已提交
1137
```js
H
Hollokin 已提交
1138
try {
H
Hollokin 已提交
1139
    inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
H
Hollokin 已提交
1140
        console.info('Succeeded in listing currentInputMethodSubtype.');
H
Hollokin 已提交
1141
    }).catch((err) => {
H
Hollokin 已提交
1142
        console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1143 1144
    })
} catch(err) {
H
Hollokin 已提交
1145
    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1146
}
1147 1148 1149 1150 1151
```

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

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

1153
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用callback异步回调。
Z
zhaolinglan 已提交
1154

H
update  
Hollokin 已提交
1155
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1156 1157 1158 1159 1160 1161

**参数:**

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

H
Hollokin 已提交
1164 1165
**错误码:**

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

1168
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1169 1170
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1171
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1172

Z
zhaolinglan 已提交
1173 1174
**示例:**

H
Hollokin 已提交
1175
```js
H
Hollokin 已提交
1176
try {
H
Hollokin 已提交
1177
    inputMethodSetting.getInputMethods(true, (err,data) => {
H
Hollokin 已提交
1178 1179
        if (err !== undefined) {
            console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1180 1181
            return;
        }
H
Hollokin 已提交
1182
        console.log('Succeeded in getting inputMethods.');
H
Hollokin 已提交
1183 1184
    });
} catch (err) {
H
Hollokin 已提交
1185
    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1186
}
Z
zhaolinglan 已提交
1187 1188
```

1189
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
1190

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

1193
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用promise异步回调。
Z
zhaolinglan 已提交
1194

H
update  
Hollokin 已提交
1195
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1196 1197 1198 1199 1200 1201 1202

**参数:**

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

H
Hollokin 已提交
1203 1204
**错误码:**

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

1207
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1208 1209
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1210
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1211

Z
zhaolinglan 已提交
1212 1213 1214 1215
**返回值:**

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

**示例:**

H
Hollokin 已提交
1220
```js
H
Hollokin 已提交
1221
try {
H
Hollokin 已提交
1222
    inputMethodSetting.getInputMethods(true).then((data) => {
H
Hollokin 已提交
1223
        console.info('Succeeded in getting inputMethods.');
H
Hollokin 已提交
1224
    }).catch((err) => {
H
Hollokin 已提交
1225
        console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1226 1227
    })
} catch(err) {
H
Hollokin 已提交
1228
    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1229
}
Z
zhaolinglan 已提交
1230 1231
```

H
Hollokin 已提交
1232 1233
### showOptionalInputMethods<sup>9+</sup>

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

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

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

H
update  
Hollokin 已提交
1240
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1241 1242 1243 1244 1245

**参数:**

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

H
Hollokin 已提交
1248 1249
**错误码:**

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

1252
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1253
| -------- | -------------------------------------- |
H
Hollokin 已提交
1254
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1255

H
Hollokin 已提交
1256 1257
**示例:**

H
Hollokin 已提交
1258
```js
H
Hollokin 已提交
1259
try {
H
Hollokin 已提交
1260
    inputMethodSetting.showOptionalInputMethods((err, data) => {
H
Hollokin 已提交
1261 1262
        if (err !== undefined) {
            console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1263 1264
            return;
        }
H
Hollokin 已提交
1265
        console.info('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
1266 1267
    });
} catch (err) {
H
Hollokin 已提交
1268
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1269 1270 1271 1272 1273
}
```

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

H
Hollokin 已提交
1274
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
1275

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

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

H
update  
Hollokin 已提交
1280
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1281 1282 1283 1284 1285

**返回值:**

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

H
Hollokin 已提交
1288 1289
**错误码:**

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

1292
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1293
| -------- | -------------------------------------- |
H
Hollokin 已提交
1294
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1295

H
Hollokin 已提交
1296 1297
**示例:**

H
Hollokin 已提交
1298
```js
H
Hollokin 已提交
1299
inputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
1300
    console.info('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
1301
}).catch((err) => {
H
Hollokin 已提交
1302
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1303 1304 1305
})
```

H
Hollokin 已提交
1306
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1307 1308 1309

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

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

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

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

1318
**参数:**
B
bmeangel 已提交
1319

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

1324
**示例:**
T
explain  
tianyu 已提交
1325

1326
```js
H
Hollokin 已提交
1327
inputMethodSetting.listInputMethod((err,data) => {
H
Hollokin 已提交
1328 1329
    if (err !== undefined) {
        console.error('Failed to listInputMethod: ' + JSON.stringify(err));
1330
        return;
1331
    }
H
Hollokin 已提交
1332
    console.log('Succeeded in listing inputMethod.');
1333
 });
1334
```
Z
zhouyongfei 已提交
1335

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

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

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

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

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

1348
**返回值:**
B
bmeangel 已提交
1349

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

1354
**示例:**
1355 1356

```js
H
Hollokin 已提交
1357
inputMethodSetting.listInputMethod().then((data) => {
H
Hollokin 已提交
1358
    console.info('Succeeded in listing inputMethod.');
Z
zhaolinglan 已提交
1359
}).catch((err) => {
H
Hollokin 已提交
1360
    console.error('Failed to listInputMethod: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1361
})
1362
```
Z
zhouyongfei 已提交
1363

H
Hollokin 已提交
1364
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1365 1366 1367

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

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

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

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

1376
**参数:**
Z
zhouyongfei 已提交
1377 1378 1379

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

1382
**示例:**
1383 1384

```js
H
Hollokin 已提交
1385
inputMethodSetting.displayOptionalInputMethod((err) => {
H
Hollokin 已提交
1386 1387
    if (err !== undefined) {
        console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1388 1389
        return;
    }
H
Hollokin 已提交
1390
    console.info('Succeeded in displaying optionalInputMethod.');
1391
});
1392
```
Z
zhouyongfei 已提交
1393

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

1396 1397
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

H
update  
Hollokin 已提交
1404
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1405 1406 1407 1408 1409

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1410
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1411 1412 1413 1414

**示例:**

```js
H
Hollokin 已提交
1415
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1416
    console.info('Succeeded in displaying optionalInputMethod.');
1417
}).catch((err) => {
H
Hollokin 已提交
1418
    console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1419 1420
})
```