• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.inputMethod (输入法框架)
2
3本模块主要面向普通前台应用(备忘录、信息、设置等系统应用与三方应用),提供对输入法的控制、管理能力,包括显示/隐藏输入法软键盘、切换输入法、获取所有输入法列表等。
4
5>**说明:**
6>
7>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```
13import inputMethod from '@ohos.inputMethod';
14```
15
16## 常量<sup>8+</sup>
17
18常量值。
19
20**系统能力:** SystemCapability.MiscServices.InputMethodFramework
21
22| 参数名 | 类型 | 常量值 | 说明 |
23| -------- | -------- | -------- | -------- |
24| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 |
25
26## InputMethodProperty<sup>8+</sup>
27
28输入法应用属性。
29
30**系统能力:** SystemCapability.MiscServices.InputMethodFramework
31
32| 名称 | 类型 | 可读 | 可写 | 说明 |
33| -------- | -------- | -------- | -------- | -------- |
34| name<sup>9+</sup>  | string | 是 | 否 | 输入法内部名称。必填。|
35| id<sup>9+</sup>    | string | 是 | 否 | 输入法唯一标识。必填。|
36| label<sup>9+</sup>    | string | 是 | 否 | 输入法对外显示名称。 非必填。|
37| icon<sup>9+</sup>    | string | 是 | 否 | 输入法图标数据。非必填。 |
38| iconId<sup>9+</sup>    | number | 是 | 否 | 输入法图标资源号。非必填。 |
39| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。 必填。|
40| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。必填。<br/>**说明:** 从API version 8开始支持,从API version 9开始废弃,建议使用name替代。 |
41| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。必填。<br/>**说明:** 从API version 8开始支持,从API version 9开始废弃,建议使用id替代。 |
42
43## inputMethod.getController<sup>9+</sup>
44
45getController(): InputMethodController
46
47获取客户端实例[InputMethodController](#inputmethodcontroller)。
48
49**系统能力:** SystemCapability.MiscServices.InputMethodFramework
50
51**返回值:**
52
53| 类型                                            | 说明                     |
54| ----------------------------------------------- | ------------------------ |
55| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
56
57**错误码:**
58
59以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
60
61| 错误码ID | 错误信息                     |
62| -------- | ------------------------------ |
63| 12800006 | Input method controller error. |
64
65**示例:**
66
67```js
68let inputMethodController = inputMethod.getController();
69```
70
71## inputMethod.getSetting<sup>9+</sup>
72
73getSetting(): InputMethodSetting
74
75获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)。
76
77**系统能力:** SystemCapability.MiscServices.InputMethodFramework
78
79**返回值:**
80
81| 类型                                      | 说明                         |
82| ----------------------------------------- | ---------------------------- |
83| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |
84
85**错误码:**
86
87以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
88
89| 错误码ID | 错误信息                             |
90| -------- | -------------------------------------- |
91| 12800007 | Input method settings extension error. |
92
93**示例:**
94
95```js
96let inputMethodSetting = inputMethod.getSetting();
97```
98
99## inputMethod.switchInputMethod<sup>9+</sup>
100
101switchInputMethod(target: InputMethodProperty, callback: AsyncCallback&lt;boolean&gt;): void
102
103切换输入法。使用callback异步回调。
104
105**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
106
107**系统能力:** SystemCapability.MiscServices.InputMethodFramework
108
109**参数:**
110
111| 参数名 | 类型 | 必填 | 说明 |
112| -------- | -------- | -------- | -------- |
113| target | [InputMethodProperty](#inputmethodproperty8) | 是 | 传入要切换的目标输入法。 |
114| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法切换成功,err为undefined,data为true;否则为错误对象。 |
115
116**错误码:**
117
118以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
119
120| 错误码ID | 错误信息                             |
121| -------- | -------------------------------------- |
122| 12800005 | Configuration persisting error.        |
123| 12800008 | Input method manager service error. |
124
125**示例:**
126
127```js
128let im = inputMethod.getCurrentInputMethod();
129let prop = {
130    packageName: im.packageName,
131    methodId: im.methodId,
132    name: im.packageName,
133    id: im.methodId,
134    extra: {}
135}
136try{
137    inputMethod.switchInputMethod(prop, (err, result) => {
138        if (err !== undefined) {
139            console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
140            return;
141        }
142        if (result) {
143            console.info('Succeeded in switching inputmethod.');
144        } else {
145            console.error('Failed to switchInputMethod.');
146        }
147    });
148} catch(err) {
149    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
150}
151```
152## inputMethod.switchInputMethod<sup>9+</sup>
153switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
154
155切换输入法。使用promise异步回调。
156
157**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
158
159**系统能力:** SystemCapability.MiscServices.InputMethodFramework
160
161**参数:**
162
163  | 参数名 | 类型 | 必填 | 说明 |
164  | -------- | -------- | -------- | -------- |
165  |target |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
166
167**返回值:**
168
169  | 类型                                      | 说明                         |
170  | ----------------------------------------- | ---------------------------- |
171  | Promise\<boolean> | Promise对象。返回true表示切换输入法成功;返回false表示切换输入法失败。 |
172
173**错误码:**
174
175以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
176
177| 错误码ID | 错误信息                             |
178| -------- | -------------------------------------- |
179| 12800005 | Configuration persisting error.        |
180| 12800008 | Input method manager service error. |
181
182**示例:**
183
184```js
185let im = inputMethod.getCurrentInputMethod();
186let prop = {
187    packageName: im.packageName,
188    methodId: im.methodId,
189    name: im.packageName,
190    id: im.methodId,
191    extra: {}
192}
193try {
194    inputMethod.switchInputMethod(prop).then((result) => {
195        if (result) {
196            console.info('Succeeded in switching inputmethod.');
197        } else {
198            console.error('Failed to switchInputMethod.');
199        }
200    }).catch((err) => {
201        console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
202    })
203} catch(err) {
204    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
205}
206```
207
208## inputMethod.getCurrentInputMethod<sup>9+</sup>
209
210getCurrentInputMethod(): InputMethodProperty
211
212获取当前输入法扩展应用,提供同步接口,返回当前输入法属性。
213
214**系统能力:** SystemCapability.MiscServices.InputMethodFramework
215
216**返回值:**
217
218| 类型                                         | 说明                     |
219| -------------------------------------------- | ------------------------ |
220| [InputMethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
221
222**示例:**
223
224```js
225let currentIme = inputMethod.getCurrentInputMethod();
226```
227
228## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
229
230switchCurrentInputMethodSubtype(target: InputMethodSubtype, callback: AsyncCallback\<boolean>): void
231
232在当前输入法应用内切换子类型。使用callback异步回调。
233
234**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
235
236**系统能力:** SystemCapability.MiscServices.InputMethodFramework
237
238**参数:**
239
240| 参数名 | 类型 | 必填 | 说明 |
241| -------- | -------- | -------- | -------- |
242| target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
243| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法子类型切换成功,err为undefined,data为true;否则为错误对象。|
244
245**错误码:**
246
247以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
248
249| 错误码ID | 错误信息                             |
250| -------- | -------------------------------------- |
251| 12800005 | Configuration persisting error.        |
252| 12800008 | Input method manager service error. |
253
254**示例:**
255
256```js
257try {
258    inputMethod.switchCurrentInputMethodSubtype({
259      id: "ServiceExtAbility",
260      label: "",
261      name: "com.example.kikakeyboard",
262      mode: "upper",
263      locale: "",
264      language: "",
265      icon: "",
266      iconId: 0,
267      extra: {}
268    }, (err, result) => {
269        if (err !== undefined) {
270            console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
271            return;
272        }
273        if (result) {
274            console.info('Succeeded in switching currentInputMethodSubtype.');
275        } else {
276            console.error('Failed to switchCurrentInputMethodSubtype');
277        }
278    });
279} catch(err) {
280    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
281}
282```
283
284## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
285
286switchCurrentInputMethodSubtype(target: InputMethodSubtype): Promise&lt;boolean&gt;
287
288在当前输入法应用内切换子类型。使用promise异步回调。
289
290**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
291
292**系统能力:** SystemCapability.MiscServices.InputMethodFramework
293
294**参数:**
295
296| 参数名 | 类型 | 必填 | 说明 |
297| -------- | -------- | -------- | -------- |
298|target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
299
300**返回值:**
301
302| 类型                                      | 说明                         |
303| ----------------------------------------- | ---------------------------- |
304| Promise\<boolean> | Promise对象。返回true表示在当前输入法应用内切换子类型成功;返回false表示在当前输入法应用内切换子类型失败。 |
305
306**错误码:**
307
308以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
309
310| 错误码ID | 错误信息                             |
311| -------- | -------------------------------------- |
312| 12800005 | Configuration persisting error.        |
313| 12800008 | Input method manager service error. |
314
315**示例:**
316
317```js
318try {
319    inputMethod.switchCurrentInputMethodSubtype({
320      id: "ServiceExtAbility",
321      label: "",
322      name: "com.example.kikakeyboard",
323      mode: "upper",
324      locale: "",
325      language: "",
326      icon: "",
327      iconId: 0,
328      extra: {}
329    }).then((result) => {
330        if (result) {
331            console.info('Succeeded in switching currentInputMethodSubtype.');
332        } else {
333            console.error('Failed to switchCurrentInputMethodSubtype.');
334        }
335    }).catch((err) => {
336        console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
337    })
338} catch(err) {
339    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
340}
341```
342
343## inputMethod.getCurrentInputMethodSubtype<sup>9+</sup>
344
345getCurrentInputMethodSubtype(): InputMethodSubtype
346
347获取当前输入法子类型。
348
349**系统能力:** SystemCapability.MiscServices.InputMethodFramework
350
351**返回值:**
352
353| 类型                                         | 说明                     |
354| -------------------------------------------- | ------------------------ |
355| [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype) | 返回当前输入法子类型对象。 |
356
357**示例:**
358
359```js
360let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
361```
362
363## inputMethod.switchCurrentInputMethodAndSubtype<sup>9+</sup>
364
365switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype, callback: AsyncCallback\<boolean>): void
366
367切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用callback异步回调。
368
369**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
370
371**系统能力:** SystemCapability.MiscServices.InputMethodFramework
372
373**参数:**
374
375| 参数名 | 类型 | 必填 | 说明 |
376| -------- | -------- | -------- | -------- |
377|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
378|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
379| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法和子类型切换成功,err为undefined,data为获取到的切换子类型结果true;否则为错误对象。 |
380
381**错误码:**
382
383以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
384
385| 错误码ID | 错误信息                             |
386| -------- | -------------------------------------- |
387| 12800005 | Configuration persisting error.        |
388| 12800008 | Input method manager service error. |
389
390**示例:**
391
392```js
393let im = inputMethod.getCurrentInputMethod();
394let imSubType = inputMethod.getCurrentInputMethodSubtype();
395try {
396    inputMethod.switchCurrentInputMethodAndSubtype(im, imSubType, (err,result) => {
397        if (err !== undefined) {
398            console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
399            return;
400        }
401        if (result) {
402            console.info('Succeeded in switching currentInputMethodAndSubtype.');
403        } else {
404            console.error('Failed to switchCurrentInputMethodAndSubtype.');
405        }
406    });
407} catch (err) {
408    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
409}
410```
411
412## inputMethod.switchCurrentInputMethodAndSubtype<sup>9+</sup>
413
414switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype): Promise&lt;boolean&gt;
415
416切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用promise异步回调。
417
418**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
419
420**系统能力:** SystemCapability.MiscServices.InputMethodFramework
421
422**参数:**
423
424| 参数名 | 类型 | 必填 | 说明 |
425| -------- | -------- | -------- | -------- |
426|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
427|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
428
429**返回值:**
430
431| 类型                                      | 说明                         |
432| ----------------------------------------- | ---------------------------- |
433| Promise\<boolean> | Promise对象。返回true表示切换至指定输入法应用的指定子类型成功;返回false表示切换至指定输入法应用的指定子类型失败。 |
434
435**错误码:**
436
437以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
438
439| 错误码ID | 错误信息                             |
440| -------- | -------------------------------------- |
441| 12800005 | Configuration persisting error.        |
442| 12800008 | Input method manager service error. |
443
444**示例:**
445
446```js
447let im = inputMethod.getCurrentInputMethod();
448let imSubType = inputMethod.getCurrentInputMethodSubtype();
449try {
450    inputMethod.switchCurrentInputMethodAndSubtype(im, imSubType).then((result) => {
451        if (result) {
452            console.info('Succeeded in switching currentInputMethodAndSubtype.');
453        } else {
454            console.error('Failed to switchCurrentInputMethodAndSubtype.');
455        }
456    }).catch((err) => {
457        console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
458    })
459} catch(err) {
460    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
461}
462```
463
464## inputMethod.getInputMethodController<sup>(deprecated)</sup>
465
466getInputMethodController(): InputMethodController
467
468获取客户端实例[InputMethodController](#inputmethodcontroller)。
469
470> **说明:**
471>
472> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getController()](#inputmethodgetcontroller9)替代。
473
474**系统能力:** SystemCapability.MiscServices.InputMethodFramework
475
476**返回值:**
477
478| 类型                                            | 说明                     |
479| ----------------------------------------------- | ------------------------ |
480| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
481
482**示例:**
483
484```js
485let inputMethodController = inputMethod.getInputMethodController();
486```
487
488## inputMethod.getInputMethodSetting<sup>(deprecated)</sup>
489
490getInputMethodSetting(): InputMethodSetting
491
492获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)。
493
494> **说明:**
495>
496> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getSetting()](#inputmethodgetsetting9)替代。
497
498**系统能力:** SystemCapability.MiscServices.InputMethodFramework
499
500**返回值:**
501
502| 类型                                      | 说明                         |
503| ----------------------------------------- | ---------------------------- |
504| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |
505
506**示例:**
507
508```js
509let inputMethodSetting = inputMethod.getInputMethodSetting();
510```
511
512## InputMethodController
513
514下列API示例中都需使用[getController](#inputmethodgetcontroller9)获取到InputMethodController实例,再通过此实例调用对应方法。
515
516### stopInputSession<sup>9+</sup>
517
518stopInputSession(callback: AsyncCallback&lt;boolean&gt;): void
519
520结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
521
522**系统能力:** SystemCapability.MiscServices.InputMethodFramework
523
524**参数:**
525
526| 参数名 | 类型 | 必填 | 说明 |
527| -------- | -------- | -------- | -------- |
528| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当结束输入会话成功时,err为undefined,data为true;否则为错误对象。 |
529
530**错误码:**
531
532以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
533
534| 错误码ID | 错误信息                             |
535| -------- | -------------------------------------- |
536| 12800003 | Input method client error.             |
537| 12800008 | Input method manager service error. |
538
539**示例:**
540
541```js
542try {
543    inputMethodController.stopInputSession((error, result) => {
544        if (error !== undefined) {
545            console.error('Failed to stopInputSession: ' + JSON.stringify(error));
546            return;
547        }
548        if (result) {
549            console.info('Succeeded in stopping inputSession.');
550        } else {
551            console.error('Failed to stopInputSession.');
552        }
553    });
554} catch(error) {
555    console.error('Failed to stopInputSession: ' + JSON.stringify(error));
556}
557```
558
559### stopInputSession<sup>9+</sup>
560
561stopInputSession(): Promise&lt;boolean&gt;
562
563结束输入会话。通过点击输入框实现输入会话的开启之后此接口才可生效。使用promise异步回调。
564
565**系统能力:** SystemCapability.MiscServices.InputMethodFramework
566
567**返回值:**
568
569| 类型 | 说明 |
570| -------- | -------- |
571| Promise&lt;boolean&gt; | Promise对象。返回true表示结束输入会话成功;返回false表示结束输入会话失败。 |
572
573**错误码:**
574
575以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
576
577| 错误码ID | 错误信息                             |
578| -------- | -------------------------------------- |
579| 12800003 | Input method client error.             |
580| 12800008 | Input method manager service error. |
581
582**示例:**
583
584```js
585try {
586    inputMethodController.stopInputSession().then((result) => {
587        if (result) {
588            console.info('Succeeded in stopping inputSession.');
589        } else {
590            console.error('Failed to stopInputSession.');
591        }
592    }).catch((err) => {
593        console.error('Failed to stopInputSession: ' + JSON.stringify(err));
594    })
595} catch(err) {
596    console.error('Failed to stopInputSession: ' + JSON.stringify(err));
597}
598```
599
600### showSoftKeyboard<sup>9+</sup>
601
602showSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
603
604显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用callback异步回调。
605
606**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
607
608**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
609
610**参数:**
611
612| 参数名   | 类型                  | 必填 | 说明       |
613| -------- | ------------------------- | ---- | ---------- |
614| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘显示成功。err为undefined,否则为错误对象。 |
615
616**错误码:**
617
618以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
619
620| 错误码ID | 错误信息                             |
621| -------- | -------------------------------------- |
622| 12800003 | Input method client error.             |
623| 12800008 | Input method manager service error. |
624
625**示例:**
626
627```js
628inputMethodController.showSoftKeyboard((err) => {
629    if (err === undefined) {
630        console.info('Succeeded in showing softKeyboard.');
631    } else {
632        console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
633    }
634})
635```
636
637### showSoftKeyboard<sup>9+</sup>
638
639showSoftKeyboard(): Promise&lt;void&gt;
640
641显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用Promise异步回调。
642
643**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
644
645**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
646
647**返回值:**
648
649| 类型                | 说明                      |
650| ------------------- | ------------------------- |
651| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
652
653**错误码:**
654
655以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
656
657| 错误码ID | 错误信息                             |
658| -------- | -------------------------------------- |
659| 12800003 | Input method client error.             |
660| 12800008 | Input method manager service error. |
661
662**示例:**
663
664```js
665inputMethodController.showSoftKeyboard().then(() => {
666    console.log('Succeeded in showing softKeyboard.');
667}).catch((err) => {
668    console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
669});
670```
671
672### hideSoftKeyboard<sup>9+</sup>
673
674hideSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
675
676隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用callback异步回调。
677
678**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
679
680**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
681
682**参数:**
683
684| 参数名   | 类型                  | 必填 | 说明       |
685| -------- | ------------------------- | ---- | ---------- |
686| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘隐藏成功。err为undefined,否则为错误对象。 |
687
688**错误码:**
689
690以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
691
692| 错误码ID | 错误信息                             |
693| -------- | -------------------------------------- |
694| 12800003 | Input method client error.             |
695| 12800008 | Input method manager service error. |
696
697**示例:**
698
699```js
700inputMethodController.hideSoftKeyboard((err) => {
701    if (err === undefined) {
702        console.info('Succeeded in hiding softKeyboard.');
703    } else {
704        console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
705    }
706})
707```
708
709### hideSoftKeyboard<sup>9+</sup>
710
711hideSoftKeyboard(): Promise&lt;void&gt;
712
713隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用Promise异步回调。
714
715**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
716
717**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
718
719**返回值:**
720
721| 类型                | 说明                      |
722| ------------------- | ------------------------- |
723| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
724
725**错误码:**
726
727以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
728
729| 错误码ID | 错误信息                             |
730| -------- | -------------------------------------- |
731| 12800003 | Input method client error.             |
732| 12800008 | Input method manager service error. |
733
734**示例:**
735
736```js
737inputMethodController.hideSoftKeyboard().then(() => {
738    console.log('Succeeded in hiding softKeyboard.');
739}).catch((err) => {
740    console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
741});
742```
743
744### stopInput<sup>(deprecated)</sup>
745
746stopInput(callback: AsyncCallback&lt;boolean&gt;): void
747
748结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
749
750> **说明:**
751>
752> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代。
753
754**系统能力:** SystemCapability.MiscServices.InputMethodFramework
755
756**参数:**
757
758| 参数名 | 类型 | 必填 | 说明 |
759| -------- | -------- | -------- | -------- |
760| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法隐藏成功,err为undefined,data为true;否则为错误对象。 |
761
762**示例:**
763
764```js
765inputMethodController.stopInput((error, result) => {
766    if (error !== undefined) {
767        console.error('Failed to stopInput: ' + JSON.stringify(error));
768        return;
769    }
770    if (result) {
771        console.info('Succeeded in stopping input.');
772    } else {
773        console.error('Failed to stopInput.');
774    }
775});
776```
777
778### stopInput<sup>(deprecated)</sup>
779
780stopInput(): Promise&lt;boolean&gt;
781
782结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用promise异步回调。
783
784> **说明:**
785>
786> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代。
787
788**系统能力:** SystemCapability.MiscServices.InputMethodFramework
789
790**返回值:**
791
792| 类型 | 说明 |
793| -------- | -------- |
794| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
795
796**示例:**
797
798```js
799inputMethodController.stopInput().then((result) => {
800    if (result) {
801        console.info('Succeeded in stopping input.');
802    } else {
803        console.error('Failed to stopInput.');
804    }
805}).catch((err) => {
806    console.error('Failed to stopInput: ' + err);
807})
808```
809
810## InputMethodSetting<sup>8+</sup>
811
812下列API示例中都需使用[getSetting](#inputmethodgetsetting9)获取到InputMethodSetting实例,再通过此实例调用对应方法。
813
814### on('imeChange')<sup>9+</sup>
815
816on(type: 'imeChange', callback: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void
817
818订阅输入法及子类型变化监听事件。使用callback异步回调。
819
820**系统能力:** SystemCapability.MiscServices.InputMethodFramework
821
822**参数:**
823
824| 参数名   | 类型                            | 必填 | 说明                                                         |
825| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
826| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示订阅输入法及子类型变化监听事件。 |
827| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 是 | 回调函数,返回输入法属性对象及输入法子类型对象。 |
828
829**示例:**
830
831```js
832inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
833    console.info('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
834});
835```
836
837### off('imeChange')<sup>9+</sup>
838
839off(type: 'imeChange', callback?: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void
840
841取消订阅输入法及子类型变化监听事件。使用callback异步回调。
842
843**系统能力:** SystemCapability.MiscServices.InputMethodFramework
844
845**参数:**
846
847| 参数名   | 类型                            | 必填 | 说明                                                         |
848| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
849| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示取消订阅输入法及子类型变化监听事件。 |
850| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 否 | 回调函数,返回取消订阅的输入法属性对象及输入法子类型对象。 |
851
852**示例:**
853
854```js
855inputMethodSetting.off('imeChange');
856```
857
858### listInputMethodSubtype<sup>9+</sup>
859
860listInputMethodSubtype(inputMethodProperty: InputMethodProperty, callback: AsyncCallback&lt;Array&lt;InputMethodSubtype&gt;&gt;): void
861
862获取指定输入法应用的所有子类型。使用callback异步回调。
863
864**系统能力:** SystemCapability.MiscServices.InputMethodFramework
865
866**参数:**
867
868| 参数名   | 类型                                               | 必填 | 说明                   |
869| -------- | -------------------------------------------------- | ---- | ---------------------- |
870| inputMethodProperty | InputMethodProperty| 是 | 子类型所属的输入法应用。 |
871| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是 | 回调函数,返回指定输入法应用的所有子类型。 |
872
873**错误码:**
874
875以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
876
877| 错误码ID | 错误信息                             |
878| -------- | -------------------------------------- |
879| 12800001 | Package manager error.                 |
880| 12800008 | Input method manager service error. |
881
882**示例:**
883
884```js
885let inputMethodProperty = {
886    packageName: 'com.example.kikakeyboard',
887    methodId: 'com.example.kikakeyboard',
888    name: 'com.example.kikakeyboard',
889    id: 'com.example.kikakeyboard',
890    extra:{}
891}
892try {
893    inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
894        if (err !== undefined) {
895            console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
896            return;
897        }
898        console.log('Succeeded in listing inputMethodSubtype.');
899    });
900} catch (err) {
901    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
902}
903```
904
905### listInputMethodSubtype<sup>9+</sup>
906
907listInputMethodSubtype(inputMethodProperty: InputMethodProperty): Promise&lt;Array&lt;InputMethodSubtype&gt;&gt;
908
909获取指定输入法应用的所有子类型。使用promise异步回调。
910
911**系统能力:** SystemCapability.MiscServices.InputMethodFramework
912
913**参数:**
914
915| 参数名   | 类型                                               | 必填 | 说明                   |
916| -------- | -------------------------------------------------- | ---- | ---------------------- |
917| inputMethodProperty | InputMethodProperty| 是 | 子类型所属的输入法应用。 |
918
919**返回值:**
920
921| 类型                                                        | 说明                   |
922| ----------------------------------------------------------- | ---------------------- |
923| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回指定输入法应用的所有子类型。 |
924
925**错误码:**
926
927以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
928
929| 错误码ID | 错误信息                             |
930| -------- | -------------------------------------- |
931| 12800001 | Package manager error.                 |
932| 12800008 | Input method manager service error. |
933
934**示例:**
935
936```js
937let inputMethodProperty = {
938    packageName: 'com.example.kikakeyboard',
939    methodId: 'com.example.kikakeyboard',
940    name: 'com.example.kikakeyboard',
941    id: 'com.example.kikakeyboard',
942    extra:{}
943}
944try {
945    inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
946        console.info('Succeeded in listing inputMethodSubtype.');
947    }).catch((err) => {
948        console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
949    })
950} catch(err) {
951    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
952}
953```
954
955### listCurrentInputMethodSubtype<sup>9+</sup>
956
957listCurrentInputMethodSubtype(callback: AsyncCallback&lt;Array&lt;InputMethodSubtype&gt;&gt;): void
958
959查询当前输入法应用的所有子类型。使用callback异步回调。
960
961**系统能力:** SystemCapability.MiscServices.InputMethodFramework
962
963**参数:**
964
965| 参数名   | 类型                                               | 必填 | 说明                   |
966| -------- | -------------------------------------------------- | ---- | ---------------------- |
967| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是   | 回调函数,返回当前输入法应用的所有子类型。 |
968
969**错误码:**
970
971以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
972
973| 错误码ID | 错误信息                             |
974| -------- | -------------------------------------- |
975| 12800001 | Package manager error.                 |
976| 12800008 | Input method manager service error. |
977
978**示例:**
979
980```js
981try {
982    inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
983        if (err !== undefined) {
984            console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
985            return;
986        }
987        console.log('Succeeded in listing currentInputMethodSubtype.');
988    });
989} catch(err) {
990    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
991}
992```
993
994### listCurrentInputMethodSubtype<sup>9+</sup>
995
996listCurrentInputMethodSubtype(): Promise&lt;Array&lt;InputMethodSubtype&gt;&gt;
997
998查询当前输入法的子类型列表。使用promise异步回调。
999
1000**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1001
1002**返回值:**
1003
1004| 类型                                                        | 说明                   |
1005| ----------------------------------------------------------- | ---------------------- |
1006| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回当前输入法应用的所有子类型。 |
1007
1008**错误码:**
1009
1010以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1011
1012| 错误码ID | 错误信息                             |
1013| -------- | -------------------------------------- |
1014| 12800001 | Package manager error.                 |
1015| 12800008 | Input method manager service error. |
1016
1017**示例:**
1018
1019```js
1020try {
1021    inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
1022        console.info('Succeeded in listing currentInputMethodSubtype.');
1023    }).catch((err) => {
1024        console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
1025    })
1026} catch(err) {
1027    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
1028}
1029```
1030
1031### getInputMethods<sup>9+</sup>
1032
1033getInputMethods(enable: boolean, callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;): void
1034
1035获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用callback异步回调。
1036
1037**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1038
1039**参数:**
1040
1041| 参数名   | 类型                                                | 必填 | 说明                          |
1042| -------- | --------------------------------------------------- | ---- | ----------------------------- |
1043| enable   | boolean                                             | 是   | 指定返回已激活/未激活。       |
1044| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已激活/未激活输入法列表。 |
1045
1046**错误码:**
1047
1048以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1049
1050| 错误码ID | 错误信息                             |
1051| -------- | -------------------------------------- |
1052| 12800001 | Package manager error.                 |
1053| 12800008 | Input method manager service error. |
1054
1055**示例:**
1056
1057```js
1058try {
1059    inputMethodSetting.getInputMethods(true, (err,data) => {
1060        if (err !== undefined) {
1061            console.error('Failed to getInputMethods: ' + JSON.stringify(err));
1062            return;
1063        }
1064        console.log('Succeeded in getting inputMethods.');
1065    });
1066} catch (err) {
1067    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
1068}
1069```
1070
1071### getInputMethods<sup>9+</sup>
1072
1073getInputMethods(enable: boolean): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
1074
1075获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用promise异步回调。
1076
1077**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1078
1079**参数:**
1080
1081| 参数名 | 类型    | 必填 | 说明                    |
1082| ------ | ------- | ---- | ----------------------- |
1083| enable | boolean | 是   | 指定返回已激活/未激活。 |
1084
1085**错误码:**
1086
1087以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1088
1089| 错误码ID | 错误信息                             |
1090| -------- | -------------------------------------- |
1091| 12800001 | Package manager error.                 |
1092| 12800008 | Input method manager service error. |
1093
1094**返回值:**
1095
1096| 类型                                                         | 说明                          |
1097| ------------------------------------------------------------ | ----------------------------- |
1098| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已激活/未激活输入法列表。 |
1099
1100**示例:**
1101
1102```js
1103try {
1104    inputMethodSetting.getInputMethods(true).then((data) => {
1105        console.info('Succeeded in getting inputMethods.');
1106    }).catch((err) => {
1107        console.error('Failed to getInputMethods: ' + JSON.stringify(err));
1108    })
1109} catch(err) {
1110    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
1111}
1112```
1113
1114### showOptionalInputMethods<sup>9+</sup>
1115
1116showOptionalInputMethods(callback: AsyncCallback&lt;boolean&gt;): void
1117
1118显示输入法选择对话框。使用callback异步回调。
1119
1120**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1121
1122**参数:**
1123
1124| 参数名 | 类型 | 必填 | 说明 |
1125| -------- | -------- | -------- | -------- |
1126| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法选择对话框显示成功,err为undefined,data为true;否则为错误对象。 |
1127
1128**错误码:**
1129
1130以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1131
1132| 错误码ID | 错误信息                             |
1133| -------- | -------------------------------------- |
1134| 12800008 | Input method manager service error. |
1135
1136**示例:**
1137
1138```js
1139try {
1140    inputMethodSetting.showOptionalInputMethods((err, data) => {
1141        if (err !== undefined) {
1142            console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
1143            return;
1144        }
1145        console.info('Succeeded in showing optionalInputMethods.');
1146    });
1147} catch (err) {
1148    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
1149}
1150```
1151
1152### showOptionalInputMethods<sup>9+</sup>
1153
1154showOptionalInputMethods(): Promise&lt;boolean&gt;
1155
1156显示输入法选择对话框。使用promise异步回调。
1157
1158**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1159
1160**返回值:**
1161
1162| 类型 | 说明 |
1163| -------- | -------- |
1164| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法选择对话框显示成功;返回false表示输入法选择对话框显示失败。 |
1165
1166**错误码:**
1167
1168以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1169
1170| 错误码ID | 错误信息                             |
1171| -------- | -------------------------------------- |
1172| 12800008 | Input method manager service error. |
1173
1174**示例:**
1175
1176```js
1177inputMethodSetting.showOptionalInputMethods().then((data) => {
1178    console.info('Succeeded in showing optionalInputMethods.');
1179}).catch((err) => {
1180    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
1181})
1182```
1183
1184### listInputMethod<sup>(deprecated)</sup>
1185
1186listInputMethod(callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;): void
1187
1188查询已安装的输入法列表。使用callback异步回调。
1189
1190> **说明:**
1191>
1192> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9)替代。
1193
1194**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1195
1196**参数:**
1197
1198| 参数名   | 类型                                               | 必填 | 说明                   |
1199| -------- | -------------------------------------------------- | ---- | ---------------------- |
1200| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已安装的输入法列表。 |
1201
1202**示例:**
1203
1204```js
1205inputMethodSetting.listInputMethod((err,data) => {
1206    if (err !== undefined) {
1207        console.error('Failed to listInputMethod: ' + JSON.stringify(err));
1208        return;
1209    }
1210    console.log('Succeeded in listing inputMethod.');
1211 });
1212```
1213
1214### listInputMethod<sup>(deprecated)</sup>
1215
1216listInputMethod(): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
1217
1218查询已安装的输入法列表。使用promise异步回调。
1219
1220> **说明:**
1221>
1222> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9-1)替代。
1223
1224**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1225
1226**返回值:**
1227
1228| 类型                                                        | 说明                   |
1229| ----------------------------------------------------------- | ---------------------- |
1230| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已安装输入法列表。 |
1231
1232**示例:**
1233
1234```js
1235inputMethodSetting.listInputMethod().then((data) => {
1236    console.info('Succeeded in listing inputMethod.');
1237}).catch((err) => {
1238    console.error('Failed to listInputMethod: ' + JSON.stringify(err));
1239})
1240```
1241
1242### displayOptionalInputMethod<sup>(deprecated)</sup>
1243
1244displayOptionalInputMethod(callback: AsyncCallback&lt;void&gt;): void
1245
1246显示输入法选择对话框。使用callback异步回调。
1247
1248> **说明:**
1249>
1250> 从API version 8开始支持,从API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9)替代。
1251
1252**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1253
1254**参数:**
1255
1256| 参数名 | 类型 | 必填 | 说明 |
1257| -------- | -------- | -------- | -------- |
1258| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当输入法选择对话框显示成功。err为undefined,否则为错误对象。 |
1259
1260**示例:**
1261
1262```js
1263inputMethodSetting.displayOptionalInputMethod((err) => {
1264    if (err !== undefined) {
1265        console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1266        return;
1267    }
1268    console.info('Succeeded in displaying optionalInputMethod.');
1269});
1270```
1271
1272### displayOptionalInputMethod<sup>(deprecated)</sup>
1273
1274displayOptionalInputMethod(): Promise&lt;void&gt;
1275
1276显示输入法选择对话框。使用promise异步回调。
1277
1278> **说明:**
1279>
1280> 从API version 8开始支持,从API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9-1)替代。
1281
1282**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1283
1284**返回值:**
1285
1286| 类型 | 说明 |
1287| -------- | -------- |
1288| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1289
1290**示例:**
1291
1292```js
1293inputMethodSetting.displayOptionalInputMethod().then(() => {
1294    console.info('Succeeded in displaying optionalInputMethod.');
1295}).catch((err) => {
1296    console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1297})
1298```
1299