js-apis-inputmethod.md 36.3 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
**系统能力**:SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

H
Hollokin 已提交
62
```ts
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
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

H
Hollokin 已提交
84
```ts
H
Hollokin 已提交
85
let InputMethodSetting = inputMethod.getSetting();
86 87
```

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

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

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
109
```ts
H
Hollokin 已提交
110 111 112 113 114 115 116 117 118 119 120 121 122
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 已提交
123
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
124
}
G
gaoxiang 已提交
125
```
G
gaoxiang 已提交
126
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
127
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
128

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

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

133 134
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

G
gaoxiang 已提交
137
**参数:**
G
gaoxiang 已提交
138 139 140

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

G
gaoxiang 已提交
143
**返回值:**
B
bmeangel 已提交
144

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

G
gaoxiang 已提交
149 150
**示例:**

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

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

getCurrentInputMethod(): InputMethodProperty

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

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

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
185
```ts
H
Hollokin 已提交
186
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
187 188
```

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

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

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
210
```ts
H
update  
Hollokin 已提交
211
let inputMethodSubtype = {
H
Hollokin 已提交
212 213 214 215
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
216
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
217 218 219 220 221 222 223 224 225 226 227
        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 已提交
228
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
229
}
230 231 232 233 234 235
```

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

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

280 281 282 283 284 285
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

H
Hollokin 已提交
290
```ts
H
Hollokin 已提交
291
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
292 293 294 295
```

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

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

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

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
310 311
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)| 是 | 传入要切换的目标输入法子类型。 |
H
Hollokin 已提交
312
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法和子类型切换成功,err为undefined,data为true;否则为错误对象。 |
313 314 315

**示例:**

H
Hollokin 已提交
316
```ts
H
Hollokin 已提交
317 318 319 320
let inputMethodProperty = {
    packageName:"com.example.kikakeyboard",
    methodId:"ServiceExtAbility"
}
H
Hollokin 已提交
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337
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 已提交
338
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
339
}
340 341 342 343 344 345
```

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

H
Hollokin 已提交
393
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
394

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

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

400
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
401

H
Hollokin 已提交
402
**返回值:**
Z
zhouyongfei 已提交
403

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

408
**示例:**
Z
zhouyongfei 已提交
409

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

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

H
Hollokin 已提交
416
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
417

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

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

423
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
424

425
**返回值:**
Z
zhouyongfei 已提交
426

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

431
**示例:**
Z
zhouyongfei 已提交
432

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

H
Hollokin 已提交
437 438 439 440
## InputMethodController

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

441 442 443 444
### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
445
隐藏输入法。使用callback异步回调。
446 447 448 449 450 451 452

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

**参数:**

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

**示例:**

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

### stopInputSession

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

H
Hollokin 已提交
479
隐藏输入法。使用promise异步回调。
480 481 482 483 484 485 486

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
487
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
488 489 490 491

**示例:**

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

507
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
508

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

H
Hollokin 已提交
511
显示软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
512

H
Hollokin 已提交
513 514
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

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

535
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
536

Z
zhaolinglan 已提交
537
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
538

H
Hollokin 已提交
539
显示软键盘,使用Promise异步回调。
Z
zhaolinglan 已提交
540

H
Hollokin 已提交
541 542
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**返回值:**

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

**示例:**

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

561
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
562

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

H
Hollokin 已提交
565
隐藏软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
566

H
Hollokin 已提交
567 568
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

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

589
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
590

Z
zhaolinglan 已提交
591
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
592

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

H
Hollokin 已提交
595 596
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**返回值:**

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

**示例:**

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

H
Hollokin 已提交
615 616 617 618
### stopInput<sup>(deprecated)</sup>

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

H
Hollokin 已提交
619
隐藏输入法。使用callback异步回调。
H
Hollokin 已提交
620 621 622 623 624 625 626 627 628 629

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
630
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法隐藏成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651

**示例:**

```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;

H
Hollokin 已提交
652
隐藏输入法。使用promise异步回调。
H
Hollokin 已提交
653 654 655 656 657 658 659 660 661 662

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

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
663
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
H
Hollokin 已提交
664 665 666 667 668 669

**示例:**

```js
InputMethodController.stopInput().then((result) => {
    if (result) {
H
Hollokin 已提交
670
        console.info('Success to stopInput.');
H
Hollokin 已提交
671
    } else {
H
Hollokin 已提交
672
        console.error('Failed to stopInput.');
H
Hollokin 已提交
673 674
    }
}).catch((err) => {
H
Hollokin 已提交
675
    console.error('stopInput err: ' + err);
H
Hollokin 已提交
676 677 678
})
```

679
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
680

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

683
### on('imeChange')<a name="imeChange"></a><sup>9+</sup>
684 685 686

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

H
Hollokin 已提交
687
订阅输入法及子类型变化监听事件。使用callback异步回调。
688 689 690 691 692 693 694 695

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示订阅输入法及子类型变化监听事件。 |
H
Hollokin 已提交
696
| callback | [InputMethodProperty](#inputmethodproperty8), [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 是 | 回调函数,返回输入法属性对象及输入法子类型对象。 |
697 698 699

**示例:**

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

H
Hollokin 已提交
707
### off('imeChange')<sup>9+</sup>
708 709 710

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

H
Hollokin 已提交
711
取消订阅输入法及子类型变化监听事件。使用callback异步回调。
712 713 714 715 716 717 718 719

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

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示取消订阅输入法及子类型变化监听事件。 |
H
Hollokin 已提交
720
| callback | [InputMethodProperty](#inputmethodproperty8), [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 否 | 回调函数,返回取消订阅的输入法属性对象及输入法子类型对象。 |
721 722 723

**示例:**

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

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

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

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

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

736 737 738 739 740 741
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**示例:**

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

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

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

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

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

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

H
Hollokin 已提交
775 776 777 778 779 780
**参数:**

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

781 782 783 784
**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
H
Hollokin 已提交
785
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)>> | Promise对象,返回已安装输入法子类型列表。 |
786 787 788

**示例:**

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

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

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

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

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

813 814 815 816 817 818
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
H
Hollokin 已提交
819
| callback | Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)> | 是   | 回调函数,返回当前输入法应用的所有子类型。 |
820 821 822

**示例:**

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

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

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

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

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

845 846 847 848 849 850
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
H
Hollokin 已提交
851
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype)>> | Promise对象,返回当前输入法的子类型列表。 |
852 853 854

**示例:**

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

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

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

H
Hollokin 已提交
871
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。使用callback异步回调。
Z
zhaolinglan 已提交
872

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

Z
zhaolinglan 已提交
875 876 877 878 879 880 881
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                          |
| -------- | --------------------------------------------------- | ---- | ----------------------------- |
| enable   | boolean                                             | 是   | 指定返回已激活/未激活。       |
H
Hollokin 已提交
882
| callback | Array<[InputMethodProperty](#inputmethodproperty8)> | 是   | 回调函数,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
883 884 885

**示例:**

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

900
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
901

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

H
Hollokin 已提交
904
获取已激活/未激活输入法列表。参数enable取true返回已激活输入法列表,取false返回未激活输入法列表。使用promise异步回调。
Z
zhaolinglan 已提交
905

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

Z
zhaolinglan 已提交
908 909 910 911 912 913 914 915 916 917 918 919
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**

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

**示例:**

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

H
Hollokin 已提交
936 937 938 939
### showOptionalInputMethods<sup>9+</sup>

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

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

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

H
Hollokin 已提交
944 945 946 947 948 949 950 951
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

H
Hollokin 已提交
956
```ts
H
Hollokin 已提交
957 958 959 960 961 962 963 964 965 966 967 968 969 970 971
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 已提交
972 973
showOptionalInputMethods(): Promise&lt;void&gt;

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

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

H
Hollokin 已提交
978
**需要权限**: ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
979

H
Hollokin 已提交
980
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
981 982 983 984 985

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
986
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
H
Hollokin 已提交
987 988 989

**示例:**

H
Hollokin 已提交
990
```ts
H
Hollokin 已提交
991
InputMethodSetting.showOptionalInputMethods().then(() => {
H
Hollokin 已提交
992
    console.info('displayOptionalInputMethod success.');
H
Hollokin 已提交
993
}).catch((err) => {
H
Hollokin 已提交
994
    console.error('displayOptionalInputMethod err: ' + err);
H
Hollokin 已提交
995 996 997
})
```

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

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

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

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

1007
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1008

1009
**参数:**
B
bmeangel 已提交
1010

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

1015
**示例:**
T
explain  
tianyu 已提交
1016

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

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

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

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

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

1036
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1037

1038
**返回值:**
B
bmeangel 已提交
1039

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

1044
**示例:**
1045 1046

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

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

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

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

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

1063
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1064

1065
**参数:**
Z
zhouyongfei 已提交
1066 1067 1068

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

1071
**示例:**
1072 1073

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

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

1085 1086
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

1092 1093 1094 1095 1096 1097
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1098
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1099 1100 1101 1102 1103

**示例:**

```js
InputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1104
    console.info('displayOptionalInputMethod success');
1105
}).catch((err) => {
H
Hollokin 已提交
1106
    console.error('displayOptionalInputMethod err: ' + err);
1107 1108
})
```