js-apis-inputmethod.md 36.7 KB
Newer Older
Z
zhouyongfei 已提交
1 2
# 输入法框架

T
explain  
tianyu 已提交
3 4
本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框。

5
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
6
>
Z
zhouyongfei 已提交
7 8 9 10 11 12
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```
13
import inputMethod from '@ohos.inputmethod';
Z
zhouyongfei 已提交
14 15 16 17 18 19
```

## inputMethod<sup>8+</sup>

常量值。

20
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
21

Z
zhouyongfei 已提交
22 23
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
刷新  
zhouyongfei 已提交
24
| MAX_TYPE_NUM | number | 是 | 否 | 可支持的最大输入法个数。 |
Z
zhouyongfei 已提交
25 26


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

输入法应用属性。

31
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
32

Z
zhouyongfei 已提交
33 34
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
Hollokin 已提交
35 36
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 包名。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | Ability名。 |
H
Hollokin 已提交
37 38 39 40 41 42
| name<sup>9+</sup>  | string | 是 | 否 | 包名,非必填项。 |
| id<sup>9+</sup>    | string | 是 | 否 | Ability名,非必填项。 |
| label<sup>9+</sup>    | string | 是 | 否 | 输入法标签,非必填项。| 
| icon<sup>9+</sup>    | string | 是 | 否 | 输入法图标,非必填项。 |
| iconId<sup>9+</sup>    | number | 是 | 否 | 输入法图标id,非必填项。 |
| extra<sup>9+</sup>    | object | 是 | 否 | 输入法其他信息,非必填项。 |
Z
zhouyongfei 已提交
43

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

getController(): InputMethodController

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

H
Hollokin 已提交
50 51
**模型约束**: 此接口仅可在Stage模型下使用。

52 53 54 55 56 57 58 59 60 61 62
**系统能力**:SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

```js
H
Hollokin 已提交
63
let InputMethodController = inputMethod.getController();
64
```
65 66 67 68 69 70 71

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

getSetting(): InputMethodSetting

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

H
Hollokin 已提交
72 73
**模型约束**: 此接口仅可在Stage模型下使用。

74 75 76 77 78 79 80 81 82 83 84 85
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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


**示例:**

```js
H
Hollokin 已提交
86
let InputMethodSetting = inputMethod.getSetting();
87 88
```

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

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

93
切换输入法。此接口仅可在Stage模型下使用。使用callback形式返回结果。参数个数为2,否则抛出异常。
94

H
Hollokin 已提交
95 96
**模型约束**: 此接口仅可在Stage模型下使用。

97 98
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
99
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
100 101 102 103 104

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
105
  |target | [InputMethodProperty](#inputmethodproperty8) | 是 | 传入要切换的目标输入法。 |
G
gaoxiang 已提交
106 107 108 109 110 111
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法切换是否成功。 |


**示例:**

```js
H
Hollokin 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124
try{
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard'}, (err, result) => {
        if (err) {
            console.error('switchInputMethod err: ' + JSON.stringify(err));
            return;
        }
        if (result) {
            console.info('Success to switchInputMethod.(callback)');
        } else {
            console.error('Failed to switchInputMethod.(callback)');
        }
    });
} catch(err) {
H
Hollokin 已提交
125
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
126
}
G
gaoxiang 已提交
127
```
G
gaoxiang 已提交
128
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
129
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
130

131
切换输入法。此接口仅可在Stage模型下使用。使用promise形式返回结果。参数个数为1,否则抛出异常。
G
gaoxiang 已提交
132

H
Hollokin 已提交
133 134
**模型约束**: 此接口仅可在Stage模型下使用。

135 136
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
137
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
138

G
gaoxiang 已提交
139
**参数:**
G
gaoxiang 已提交
140 141 142

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

G
gaoxiang 已提交
145
**返回值:**
B
bmeangel 已提交
146

G
gaoxiang 已提交
147 148
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
149
  | Promise\<boolean> | 回调返回切换后的输入法。 |
G
gaoxiang 已提交
150

G
gaoxiang 已提交
151 152 153
**示例:**

```js
H
Hollokin 已提交
154 155 156 157 158 159 160 161
try {
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard'}).then((result) => {
        if (result) {
            console.info('Success to switchInputMethod.(promise)');
        } else {
            console.error('Failed to switchInputMethod.(promise)');
        }
    }).catch((err) => {
H
Hollokin 已提交
162
        console.error('switchInputMethod promise err: ' + JSON.stringify(err));
H
Hollokin 已提交
163 164
    })
} catch(err) {
H
Hollokin 已提交
165
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
166
}
G
gaoxiang 已提交
167
```
168

Z
zhaolinglan 已提交
169 170 171 172
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

Z
zhaolinglan 已提交
173
获取当前输入法扩展应用,提供同步接口,返回当前输入法属性对象。
Z
zhaolinglan 已提交
174

H
Hollokin 已提交
175 176
**模型约束**: 此接口仅可在Stage模型下使用。

Z
zhaolinglan 已提交
177 178 179 180
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

Z
zhaolinglan 已提交
181 182 183
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
| [InputmethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
184 185 186 187

**示例:**

```js
H
Hollokin 已提交
188
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
189 190
```

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

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

H
Hollokin 已提交
195
在当前输入法应用内切换子类型。
196

H
Hollokin 已提交
197 198
**模型约束**: 此接口仅可在Stage模型下使用。

199 200 201 202 203 204 205 206
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
207
|target |  [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
208 209 210 211 212
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法子类型切换是否成功。 |

**示例:**

```js
H
update  
Hollokin 已提交
213
let inputMethodSubtype = {
H
Hollokin 已提交
214 215 216 217
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
218
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
219 220 221 222 223 224 225 226 227 228 229
        if (err) {
            console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
            return;
        }
        if (result) {
            console.info('Success to switchCurrentInputMethodSubtype.(callback)');
        } else {
            console.error('Failed to switchCurrentInputMethodSubtype.(callback)');
        }
    });
} catch(err) {
H
Hollokin 已提交
230
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
231
}
232 233 234 235 236 237
```

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

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

H
Hollokin 已提交
238
在当前输入法应用内切换子类型。此接口仅可在Stage模型下使用。使用promise形式返回结果。参数个数为1,否则抛出异常。
239

H
Hollokin 已提交
240 241
**模型约束**: 此接口仅可在Stage模型下使用。

242 243 244 245 246 247 248 249
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
250
|target |  [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
251 252 253 254

**示例:**

```js
H
update  
Hollokin 已提交
255
let inputMethodSubtype = {
H
Hollokin 已提交
256 257 258 259
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
260
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype).then((result) => {
H
Hollokin 已提交
261 262 263 264 265 266
        if (result) {
            console.info('Success to switchCurrentInputMethodSubtype.(promise)');
        } else {
            console.error('Failed to switchCurrentInputMethodSubtype.(promise)');
        }
    }).catch((err) => {
H
Hollokin 已提交
267
        console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
268 269
    })
} catch(err) {
H
Hollokin 已提交
270
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
271
}
272 273 274 275 276 277 278 279
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
Hollokin 已提交
280 281
**模型约束**: 此接口仅可在Stage模型下使用。

282 283 284 285 286 287
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
288
| [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 返回当前输入法子类型对象。 |
289 290 291 292

**示例:**

```js
H
Hollokin 已提交
293
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
294 295 296 297
```

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

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

H
Hollokin 已提交
300
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。
301

H
Hollokin 已提交
302 303
**模型约束**: 此接口仅可在Stage模型下使用。

304 305 306 307 308 309 310 311
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
312 313
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
314 315 316 317 318
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法和子类型切换是否成功。 |

**示例:**

```js
H
Hollokin 已提交
319 320 321 322
let inputMethodProperty = {
    packageName:"com.example.kikakeyboard",
    methodId:"ServiceExtAbility"
}
H
Hollokin 已提交
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
let inputMethodSubProperty = {
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, inputMethodSubProperty, (err,result) => {
        if (err) {
            console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
            return;
        }
        if (result) {
            console.info('Success to switchCurrentInputMethodAndSubtype.(callback)');
        } else {
            console.error('Failed to switchCurrentInputMethodAndSubtype.(callback)');
        }
    });
} catch (err) {
H
Hollokin 已提交
340
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
341
}
342 343 344 345 346 347
```

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

switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype, ): Promise&lt;boolean&gt;

H
Hollokin 已提交
348
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。参数个数为1,否则抛出异常。
349

H
Hollokin 已提交
350 351
**模型约束**: 此接口仅可在Stage模型下使用。

352 353 354 355 356 357 358 359
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
360 361
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
362 363 364 365

**示例:**

```js
H
Hollokin 已提交
366
let inputMethodProperty = {
H
Hollokin 已提交
367 368
    name: "com.example.kikakeyboard",
    id: "ServiceExtAbility"
H
Hollokin 已提交
369
}
H
Hollokin 已提交
370
let inputMethodSubProperty = {
H
Hollokin 已提交
371 372 373 374 375 376
    id: "com.example.kikakeyboard",
	name: "",
	locale: "",
    label: "ServiceExtAbility",
	language: "",
	extra : {}
H
Hollokin 已提交
377 378 379 380 381 382 383 384 385 386 387 388
}
try {
    inputMethod.switchCurrentInputMethodAndSubtype(property, subType).then((result) => {
        if (result) {
            console.info('Success to switchCurrentInputMethodAndSubtype.(promise)');
        } else {
            console.error('Failed to switchCurrentInputMethodAndSubtype.(promise)');
        }
    }).catch((err) => {
        console.error('switchCurrentInputMethodAndSubtype promise err: ' + err);
    })
} catch(err) {
H
Hollokin 已提交
389
    console.error('switchCurrentInputMethodAndSubtype promise err: ' + err);
H
Hollokin 已提交
390
}
391 392
```

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

H
Hollokin 已提交
395
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
396

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

H
Hollokin 已提交
399
> **说明:** 
H
Hollokin 已提交
400
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getController()](#inputmethodgetcontroller9)替代
H
Hollokin 已提交
401

402
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
403

H
Hollokin 已提交
404
**返回值:**
Z
zhouyongfei 已提交
405

H
Hollokin 已提交
406 407 408
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
409

410
**示例:**
Z
zhouyongfei 已提交
411

412
```js
H
Hollokin 已提交
413
let InputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
414 415
```

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

H
Hollokin 已提交
418
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
419

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

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

425
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
426

427
**返回值:**
Z
zhouyongfei 已提交
428

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

433
**示例:**
Z
zhouyongfei 已提交
434

435
```js
H
Hollokin 已提交
436
let InputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
437 438
```

H
Hollokin 已提交
439 440 441 442
## InputMethodController

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

443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459
### stopInputSession<sup>9+</sup>

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

隐藏输入法。使用callback形式返回结果。参数个数为1,否则抛出异常。

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法隐藏是否成功。 |

**示例:**

```js
H
Hollokin 已提交
460 461 462
try {
    InputMethodController.stopInputSession((error, result) => {
        if (error) {
H
Hollokin 已提交
463
            console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
464 465 466 467 468 469 470 471
            return;
        }
        if (result) {
            console.info('Success to stopInputSession.(callback)');
        } else {
            console.error('Failed to stopInputSession.(callback)');
        }
    });
H
Hollokin 已提交
472 473
} catch(error) {
    console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
474
}
475 476 477 478
```

### stopInputSession

H
Hollokin 已提交
479
stopInputSession(): Promise&lt;boolean&gt;<sup>9+</sup>
480

H
update  
Hollokin 已提交
481
隐藏输入法。使用promise形式返回结果。
482 483 484 485 486 487 488 489 490 491 492 493

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回输入法隐藏是否成功。 |

**示例:**

```js
H
Hollokin 已提交
494 495 496 497 498 499 500 501
try {
    InputMethodController.stopInputSession().then((result) => {
        if (result) {
            console.info('Success to stopInputSession.(promise)');
        } else {
            console.error('Failed to stopInputSession.(promise)');
        }
    }).catch((err) => {
H
Hollokin 已提交
502
        console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
503 504
    })
} catch(err) {
H
Hollokin 已提交
505
    console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
506
}
507 508
```

509
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
510

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

513
显示软键盘,使用callback异步回调。参数个数为1,否则抛出异常。
Z
zhaolinglan 已提交
514

H
Hollokin 已提交
515 516
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
517
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
518 519 520

**参数:**

Z
zhaolinglan 已提交
521
| 参数名   | 参数类型                  | 必填 | 说明       |
Z
zhaolinglan 已提交
522 523
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
524 525 526 527

**示例:**

```js
Z
zhaolinglan 已提交
528
InputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
529
    if (err === undefined) {
Z
zhaolinglan 已提交
530
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
531
    } else {
Z
zhaolinglan 已提交
532
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
533 534 535 536
    }
})
```

537
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
538

Z
zhaolinglan 已提交
539
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
540

541
显示软键盘,使用Promise异步回调。参数个数为0,否则抛出异常。
Z
zhaolinglan 已提交
542

H
Hollokin 已提交
543 544
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
545
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
546 547 548

**返回值:**

Z
zhaolinglan 已提交
549 550 551
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
552 553 554 555

**示例:**

```js
Z
zhaolinglan 已提交
556 557 558
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
Z
zhaolinglan 已提交
559
    console.error('showSoftKeyboard promise err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
560 561 562
});
```

563
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
564

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

567
隐藏软键盘,使用callback异步回调。参数个数为1,否则抛出异常。
Z
zhaolinglan 已提交
568

H
Hollokin 已提交
569 570
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
571
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
572 573 574

**参数:**

Z
zhaolinglan 已提交
575 576 577
| 参数名   | 参数类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
578 579 580 581

**示例:**

```js
Z
zhaolinglan 已提交
582
InputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
583
    if (err === undefined) {
Z
zhaolinglan 已提交
584
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
585
    } else {
Z
zhaolinglan 已提交
586
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
587 588 589 590
    }
})
```

591
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
592

Z
zhaolinglan 已提交
593
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
594

595
隐藏软键盘,使用Promise异步回调。参数个数为0,否则抛出异常。
Z
zhaolinglan 已提交
596

H
Hollokin 已提交
597 598
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
599
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
600 601 602

**返回值:**

Z
zhaolinglan 已提交
603 604 605
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
606 607 608 609

**示例:**

```js
Z
zhaolinglan 已提交
610 611 612
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
Z
zhaolinglan 已提交
613
    console.error('hideSoftKeyboard promise err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
614 615 616
});
```

H
Hollokin 已提交
617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680
### stopInput<sup>(deprecated)</sup>

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

隐藏输入法。使用callback形式返回结果。参数个数为1,否则抛出异常。

> **说明:** 
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法隐藏是否成功。 |

**示例:**

```js
InputMethodController.stopInput((error, result) => {
    if (error) {
        console.error('failed to stopInput because: ' + JSON.stringify(error));
        return;
    }
    if (result) {
        console.info('Success to stopInput.(callback)');
    } else {
        console.error('Failed to stopInput.(callback)');
    }
});
```

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

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

隐藏输入法。使用promise形式返回结果。参数个数为0,否则抛出异常。

> **说明:** 
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回输入法隐藏是否成功。 |

**示例:**

```js
InputMethodController.stopInput().then((result) => {
    if (result) {
        console.info('Success to stopInput.(promise)');
    } else {
        console.error('Failed to stopInput.(promise)');
    }
}).catch((err) => {
    console.error('stopInput promise err: ' + err);
})
```

681
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
682

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

685
### on('imeChange')<a name="imeChange"></a><sup>9+</sup>
686 687 688 689 690 691 692 693 694 695 696 697

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

订阅输入法及子类型变化监听事件,使用callback回调返回变化了的输入法及子类型的相关实例。参数个数为3,参数1和参数2为napi_object,参数3为napi_function,否则抛出异常。

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示订阅输入法及子类型变化监听事件。 |
698
| callback | [InputMethodProperty](#inputmethodproperty8), [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 是 | 回调返回输入法及子类型相关实例。 |
699 700 701

**示例:**

H
Hollokin 已提交
702 703 704 705 706 707
```js
InputMethodEngine.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
    InputMethodProperty = inputMethodProperty;
    InputMethodSubtype = inputMethodSubtype;
});
```
708

H
Hollokin 已提交
709
### off('imeChange')<sup>9+</sup>
710 711 712 713 714 715 716 717 718 719 720 721

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

取消订阅输入法及子类型变化监听事件,使用callback回调返回取消订阅的输入法及子类型的相关实例。必选参数个数为1,参数1为string,可选参数2为napi_function,否则抛出异常。

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示取消订阅输入法及子类型变化监听事件。 |
722
| callback | [InputMethodProperty](#inputmethodproperty8), [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 否 | 回调返回输入法及子类型相关实例。 |
723 724 725

**示例:**

H
Hollokin 已提交
726 727 728
```js
InputMethodAbility.off('imeChange');
```
729 730 731 732 733

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

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

H
Hollokin 已提交
734
获取指定输入法应用的所有子类型。使用callback形式返回结果。参数个数为2,否则抛出异常。
735

H
Hollokin 已提交
736 737
**模型约束**: 此接口仅可在Stage模型下使用。

738 739 740 741 742 743
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
H
Hollokin 已提交
744
| inputMethodProperty | InputMethodProperty| 是 | 指定获取子类型所属的输入法应用
745
| callback | Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)> | 是   | 返回已安装输入法列表。 |
746 747 748 749

**示例:**

```js
H
update  
Hollokin 已提交
750 751 752
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard'
H
Hollokin 已提交
753 754
}
try {
H
update  
Hollokin 已提交
755
    InputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
756
        if (err) {
H
Hollokin 已提交
757
            console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
758 759 760 761 762
            return;
        }
        console.log('listInputMethodSubtype success');
    });
} catch (err) {
H
Hollokin 已提交
763
    console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
764
}
765 766 767 768 769 770
```

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

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

H
Hollokin 已提交
771
获取指定输入法应用的所有子类型。使用promise形式返回结果。参数个数为1,否则抛出异常。
772

H
Hollokin 已提交
773 774
**模型约束**: 此接口仅可在Stage模型下使用。

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

H
Hollokin 已提交
777 778 779 780 781 782
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
| inputMethodProperty | InputMethodProperty| 是 | 指定获取子类型所属的输入法应用

783 784 785 786
**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
787
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)>> | 返回已安装输入法子类型列表。 |
788 789 790 791

**示例:**

```js
H
Hollokin 已提交
792 793 794 795 796 797 798 799
let inputMethodSubProperty = {
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
    InputMethodSetting.listInputMethodSubtype(inputMethodSubProperty).then((data) => {
        console.info('listInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
800
        console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
801 802
    })
} catch(err) {
H
Hollokin 已提交
803
    console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
804
}
805 806 807 808 809
```

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

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

811 812
查询当前输入法的子类型列表。使用callback形式返回结果。参数个数为1,否则抛出异常。

H
Hollokin 已提交
813 814
**模型约束**: 此接口仅可在Stage模型下使用。

815 816 817 818 819 820
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
821
| callback | Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)> | 是   | 返回当前输入法的子类型列表。 |
822 823 824 825

**示例:**

```js
H
Hollokin 已提交
826
try {
H
Hollokin 已提交
827
    InputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
828
        if (err) {
H
Hollokin 已提交
829
            console.error('listCurrentInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
830 831 832 833 834
            return;
        }
        console.log('listCurrentInputMethodSubtype success');
    });
} catch(err) {
H
Hollokin 已提交
835
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
836
}
837 838 839 840 841 842 843 844
```

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

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

查询当前输入法的子类型列表。使用promise形式返回结果。

H
Hollokin 已提交
845 846
**模型约束**: 此接口仅可在Stage模型下使用。

847 848 849 850 851 852
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
853
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)>> | 返回当前输入法的子类型列表。 |
854 855 856 857

**示例:**

```js
H
Hollokin 已提交
858 859 860 861 862 863 864
try {
    InputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
        console.info('listCurrentInputMethodSubtype success');
    }).catch((err) => {
        console.error('listCurrentInputMethodSubtype promise err: ' + err);
    })
} catch(err) {
H
Hollokin 已提交
865
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
866
}
867 868 869 870 871
```

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

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

获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。使用callback形式返回结果。参数个数为2,否则抛出异常。

H
Hollokin 已提交
875 876
**模型约束**: 此接口仅可在Stage模型下使用。

Z
zhaolinglan 已提交
877 878 879 880 881 882 883 884 885 886 887 888
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                          |
| -------- | --------------------------------------------------- | ---- | ----------------------------- |
| enable   | boolean                                             | 是   | 指定返回已激活/未激活。       |
| callback | Array<[InputMethodProperty](#inputmethodproperty8)> | 是   | 返回已激活/未激活输入法列表。 |

**示例:**

```js
H
Hollokin 已提交
889 890 891
try {
    InputMethodSetting.getInputMethods(true, (err,data) => {
        if (err) {
H
Hollokin 已提交
892
            console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
893 894 895 896 897
            return;
        }
        console.log('getInputMethods success');
    });
} catch (err) {
H
Hollokin 已提交
898
    console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
899
}
Z
zhaolinglan 已提交
900 901
```

902
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
903

904
getInputMethods(enable: boolean): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
Z
zhaolinglan 已提交
905 906 907

获取已激活/未激活输入法列表。参数enable取true返回已激活输入法列表,取false返回未激活输入法列表。使用promise形式返回结果。参数个数为0,否则抛出异常。

H
Hollokin 已提交
908 909
**模型约束**: 此接口仅可在Stage模型下使用。

Z
zhaolinglan 已提交
910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**

| 类型                                                         | 说明                          |
| ------------------------------------------------------------ | ----------------------------- |
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | 返回已激活/未激活输入法列表。 |

**示例:**

```js
H
Hollokin 已提交
927 928 929 930
try {
    InputMethodSetting.getInputMethods(true).then((data) => {
        console.info('getInputMethods success');
    }).catch((err) => {
H
Hollokin 已提交
931
        console.error('getInputMethods promise err: ' + JSON.stringify(err));
H
Hollokin 已提交
932 933
    })
} catch(err) {
H
Hollokin 已提交
934
    console.error('getInputMethods promise err: ' + JSON.stringify(err));
H
Hollokin 已提交
935
}
Z
zhaolinglan 已提交
936 937
```

H
Hollokin 已提交
938 939 940 941 942 943
### showOptionalInputMethods<sup>9+</sup>

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

显示输入法选择对话框。使用callback形式返回结果。参数个数为1,否则抛出异常。

H
Hollokin 已提交
944 945
**模型约束**: 此接口仅可在Stage模型下使用。

H
Hollokin 已提交
946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

**示例:**

```js
try {
    InputMethodSetting.showOptionalInputMethods((err) => {
        if (err) {
            console.error('showOptionalInputMethods failed: ' + JSON.stringify(err));
            return;
        }
        console.info('showOptionalInputMethods success');
    });
} catch (err) {
    console.error('showOptionalInputMethods failed: ' + JSON.stringify(err));
}
```

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

H
Hollokin 已提交
974 975 976
showOptionalInputMethods(): Promise&lt;void&gt;

显示输入法选择对话框。使用promise形式返回结果。参数个数为0,否则抛出异常。
H
Hollokin 已提交
977

H
Hollokin 已提交
978 979
**模型约束**: 此接口仅可在Stage模型下使用。

H
Hollokin 已提交
980
**需要权限**: ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
981

H
Hollokin 已提交
982
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999

**返回值:**

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

**示例:**

```js
InputMethodSetting.showOptionalInputMethods().then(() => {
    console.info('displayOptionalInputMethod success.(promise)');
}).catch((err) => {
    console.error('displayOptionalInputMethod promise err: ' + err);
})
```

H
Hollokin 已提交
1000
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1001 1002 1003

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

1004
查询已安装的输入法列表。使用callback形式返回结果。参数个数为1,否则抛出异常。
Z
zhouyongfei 已提交
1005

H
Hollokin 已提交
1006
> **说明:** 
H
Hollokin 已提交
1007
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9)替代
H
Hollokin 已提交
1008

1009
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1010

1011
**参数:**
B
bmeangel 已提交
1012

T
explain  
tianyu 已提交
1013 1014
| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
1015
| callback | Array<[InputMethodProperty](#inputmethodproperty8)> | 是   | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
1016

1017
**示例:**
T
explain  
tianyu 已提交
1018

1019
```js
1020
InputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
1021
    if (err) {
Z
zhaolinglan 已提交
1022
        console.error('listInputMethod failed because: ' + JSON.stringify(err));
1023
        return;
1024
    }
Z
zhaolinglan 已提交
1025
    console.log('listInputMethod success');
1026
 });
1027
```
Z
zhouyongfei 已提交
1028

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

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

1033
查询已安装的输入法列表。使用promise形式返回结果。参数个数为0,否则抛出异常。
Z
zhouyongfei 已提交
1034

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

1038
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1039

1040
**返回值:**
B
bmeangel 已提交
1041

T
explain  
tianyu 已提交
1042 1043
| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
1044
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
1045

1046
**示例:**
1047 1048

```js
Z
zhaolinglan 已提交
1049
InputMethodSetting.listInputMethod().then((data) => {
Z
zhaolinglan 已提交
1050
    console.info('listInputMethod success');
Z
zhaolinglan 已提交
1051
}).catch((err) => {
H
Hollokin 已提交
1052
    console.error('listInputMethod promise err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1053
})
1054
```
Z
zhouyongfei 已提交
1055

H
Hollokin 已提交
1056
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1057 1058 1059

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

1060
显示输入法选择对话框。使用callback形式返回结果。参数个数为1,否则抛出异常。
Z
zhouyongfei 已提交
1061

H
Hollokin 已提交
1062
> **说明:** 
H
Hollokin 已提交
1063
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9)替代
H
Hollokin 已提交
1064

1065
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1066

1067
**参数:**
Z
zhouyongfei 已提交
1068 1069 1070 1071 1072

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

1073
**示例:**
1074 1075

```js
1076
InputMethodSetting.displayOptionalInputMethod((err) => {
Z
zhaolinglan 已提交
1077
    if (err) {
Z
zhaolinglan 已提交
1078
        console.error('displayOptionalInputMethod failed because: ' + JSON.stringify(err));
1079 1080
        return;
    }
Z
zhaolinglan 已提交
1081
    console.info('displayOptionalInputMethod success');
1082
});
1083
```
Z
zhouyongfei 已提交
1084

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

1087 1088 1089 1090
displayOptionalInputMethod(): Promise&lt;void&gt;

显示输入法选择对话框。使用promise形式返回结果。参数个数为0,否则抛出异常。

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

1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

```js
InputMethodSetting.displayOptionalInputMethod().then(() => {
    console.info('displayOptionalInputMethod success.(promise)');
}).catch((err) => {
    console.error('displayOptionalInputMethod promise err: ' + err);
})
```