js-apis-inputmethod.md 38.0 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 | 是 | 否 | 可支持的最大输入法个数。 |
H
Hollokin 已提交
25 26 27 28 29 30 31 32 33 34 35 36
| EXCEPTION_PERMISSION<sup>9+</sup> | number | 是 | 否 | 错误码。详见../errorcodes/errcode-inputmethod-framework.md,下同 |
| EXCEPTION_PARAMCHECK<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_UNSUPPORTED<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_PACKAGEMANAGER<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMENGINE<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMCLIENT<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_KEYEVENT<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_CONFPERSIST<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_CONTROLLER<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_SETTINGS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMMS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_OTHERS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
Z
zhouyongfei 已提交
37

38
## InputMethodProperty<sup>8+</sup>
Z
zhouyongfei 已提交
39 40 41

输入法应用属性。

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

Z
zhouyongfei 已提交
44 45
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
Hollokin 已提交
46 47
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 包名。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | Ability名。 |
H
Hollokin 已提交
48 49 50 51 52 53
| 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 已提交
54

55 56 57 58 59 60
## inputMethod.getController<sup>9+</sup>

getController(): InputMethodController

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

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

63 64 65 66 67 68 69 70 71 72
**系统能力**:SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

H
Hollokin 已提交
73
```ts
H
Hollokin 已提交
74
let InputMethodController = inputMethod.getController();
75
```
76 77 78 79 80 81 82

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

getSetting(): InputMethodSetting

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

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

85 86 87 88 89 90 91 92 93 94
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

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

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

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

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

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

107 108
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
109
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
110 111 112

**参数:**

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

**示例:**

H
Hollokin 已提交
120
```ts
H
Hollokin 已提交
121 122 123 124 125 126 127 128 129 130 131 132 133
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 已提交
134
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
135
}
G
gaoxiang 已提交
136
```
G
gaoxiang 已提交
137
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
138
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
139

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

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

144 145
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

G
gaoxiang 已提交
148
**参数:**
G
gaoxiang 已提交
149 150 151

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

G
gaoxiang 已提交
154
**返回值:**
B
bmeangel 已提交
155

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

G
gaoxiang 已提交
160 161
**示例:**

H
Hollokin 已提交
162
```ts
H
Hollokin 已提交
163 164 165
try {
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard'}).then((result) => {
        if (result) {
H
Hollokin 已提交
166
            console.info('Success to switchInputMethod.');
H
Hollokin 已提交
167
        } else {
H
Hollokin 已提交
168
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
169 170
        }
    }).catch((err) => {
H
Hollokin 已提交
171
        console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
172 173
    })
} catch(err) {
H
Hollokin 已提交
174
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
175
}
G
gaoxiang 已提交
176
```
177

Z
zhaolinglan 已提交
178 179 180 181
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

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

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

Z
zhaolinglan 已提交
186 187 188 189
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

Z
zhaolinglan 已提交
190 191 192
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
| [InputmethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
193 194 195

**示例:**

H
Hollokin 已提交
196
```ts
H
Hollokin 已提交
197
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
198 199
```

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

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

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

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

208 209 210 211 212 213 214 215
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

H
Hollokin 已提交
221
```ts
H
update  
Hollokin 已提交
222
let inputMethodSubtype = {
H
Hollokin 已提交
223 224 225 226
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
227
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
228 229 230 231 232 233 234 235 236 237 238
        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 已提交
239
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
240
}
241 242 243 244 245 246
```

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

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

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

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

251 252 253 254 255 256 257 258
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

H
Hollokin 已提交
261 262 263 264 265 266
**返回值:**

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

267 268
**示例:**

H
Hollokin 已提交
269
```ts
H
update  
Hollokin 已提交
270
let inputMethodSubtype = {
H
Hollokin 已提交
271 272 273 274
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
275
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype).then((result) => {
H
Hollokin 已提交
276
        if (result) {
H
Hollokin 已提交
277
            console.info('Success to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
278
        } else {
H
Hollokin 已提交
279
            console.error('Failed to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
280 281
        }
    }).catch((err) => {
H
Hollokin 已提交
282
        console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
283 284
    })
} catch(err) {
H
Hollokin 已提交
285
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
286
}
287 288 289 290 291 292 293 294
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

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

297 298 299 300 301 302
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
303
| [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 返回当前输入法子类型对象。 |
304 305 306

**示例:**

H
Hollokin 已提交
307
```ts
H
Hollokin 已提交
308
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
309 310 311 312
```

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

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

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

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

319 320 321 322 323 324 325 326
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

H
Hollokin 已提交
333
```ts
H
Hollokin 已提交
334 335 336 337
let inputMethodProperty = {
    packageName:"com.example.kikakeyboard",
    methodId:"ServiceExtAbility"
}
H
Hollokin 已提交
338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
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 已提交
355
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
356
}
357 358 359 360 361 362
```

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

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

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

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

367 368 369 370 371 372 373 374
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

H
Hollokin 已提交
378 379 380 381 382 383
**返回值:**

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

384 385
**示例:**

H
Hollokin 已提交
386
```ts
H
Hollokin 已提交
387
let inputMethodProperty = {
H
Hollokin 已提交
388 389
    name: "com.example.kikakeyboard",
    id: "ServiceExtAbility"
H
Hollokin 已提交
390
}
H
Hollokin 已提交
391
let inputMethodSubProperty = {
H
Hollokin 已提交
392 393 394 395 396 397
    id: "com.example.kikakeyboard",
	name: "",
	locale: "",
    label: "ServiceExtAbility",
	language: "",
	extra : {}
H
Hollokin 已提交
398 399 400 401
}
try {
    inputMethod.switchCurrentInputMethodAndSubtype(property, subType).then((result) => {
        if (result) {
H
Hollokin 已提交
402
            console.info('Success to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
403
        } else {
H
Hollokin 已提交
404
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
405 406
        }
    }).catch((err) => {
H
Hollokin 已提交
407
        console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
408 409
    })
} catch(err) {
H
Hollokin 已提交
410
    console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
411
}
412 413
```

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

H
Hollokin 已提交
416
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
417

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

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

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

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

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

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

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

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

H
Hollokin 已提交
439
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
440

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

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

446
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
447

448
**返回值:**
Z
zhouyongfei 已提交
449

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

454
**示例:**
Z
zhouyongfei 已提交
455

456
```js
H
Hollokin 已提交
457
let InputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
458 459
```

H
Hollokin 已提交
460 461 462 463
## InputMethodController

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

464 465 466 467
### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
468
隐藏输入法。使用callback异步回调。
469 470 471 472 473 474 475

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

**参数:**

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

**示例:**

```js
H
Hollokin 已提交
481 482 483
try {
    InputMethodController.stopInputSession((error, result) => {
        if (error) {
H
Hollokin 已提交
484
            console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
485 486 487 488 489 490 491 492
            return;
        }
        if (result) {
            console.info('Success to stopInputSession.(callback)');
        } else {
            console.error('Failed to stopInputSession.(callback)');
        }
    });
H
Hollokin 已提交
493 494
} catch(error) {
    console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
495
}
496 497
```

H
Hollokin 已提交
498
### stopInputSession<sup>9+</sup>
499

H
Hollokin 已提交
500
stopInputSession(): Promise&lt;boolean&gt;
501

H
Hollokin 已提交
502
隐藏输入法。使用promise异步回调。
503 504 505 506 507 508 509

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
510
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
511 512 513 514

**示例:**

```js
H
Hollokin 已提交
515 516 517
try {
    InputMethodController.stopInputSession().then((result) => {
        if (result) {
H
Hollokin 已提交
518
            console.info('Success to stopInputSession.');
H
Hollokin 已提交
519
        } else {
H
Hollokin 已提交
520
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
521 522
        }
    }).catch((err) => {
H
Hollokin 已提交
523
        console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
524 525
    })
} catch(err) {
H
Hollokin 已提交
526
    console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
527
}
528 529
```

530
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
531

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

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

H
Hollokin 已提交
536 537
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
538
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
539 540 541

**参数:**

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

**示例:**

```js
Z
zhaolinglan 已提交
549
InputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
550
    if (err === undefined) {
Z
zhaolinglan 已提交
551
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
552
    } else {
Z
zhaolinglan 已提交
553
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
554 555 556 557
    }
})
```

558
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
559

Z
zhaolinglan 已提交
560
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
561

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

H
Hollokin 已提交
564 565
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
566
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
567 568 569

**返回值:**

Z
zhaolinglan 已提交
570 571
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
572
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
573 574 575 576

**示例:**

```js
Z
zhaolinglan 已提交
577 578 579
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
580
    console.error('showSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
581 582 583
});
```

584
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
585

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

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

H
Hollokin 已提交
590 591
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
592
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
593 594 595

**参数:**

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

**示例:**

```js
Z
zhaolinglan 已提交
603
InputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
604
    if (err === undefined) {
Z
zhaolinglan 已提交
605
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
606
    } else {
Z
zhaolinglan 已提交
607
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
608 609 610 611
    }
})
```

612
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
613

Z
zhaolinglan 已提交
614
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
615

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

H
Hollokin 已提交
618 619
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
620
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
621 622 623

**返回值:**

Z
zhaolinglan 已提交
624 625
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
626
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
627 628 629 630

**示例:**

```js
Z
zhaolinglan 已提交
631 632 633
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
634
    console.error('hideSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
635 636 637
});
```

H
Hollokin 已提交
638 639 640 641
### stopInput<sup>(deprecated)</sup>

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

H
Hollokin 已提交
642
隐藏输入法。使用callback异步回调。
H
Hollokin 已提交
643 644 645 646 647 648 649 650 651 652

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
653
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法隐藏成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674

**示例:**

```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 已提交
675
隐藏输入法。使用promise异步回调。
H
Hollokin 已提交
676 677 678 679 680 681 682 683 684 685

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

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
686
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
H
Hollokin 已提交
687 688 689 690 691 692

**示例:**

```js
InputMethodController.stopInput().then((result) => {
    if (result) {
H
Hollokin 已提交
693
        console.info('Success to stopInput.');
H
Hollokin 已提交
694
    } else {
H
Hollokin 已提交
695
        console.error('Failed to stopInput.');
H
Hollokin 已提交
696 697
    }
}).catch((err) => {
H
Hollokin 已提交
698
    console.error('stopInput err: ' + err);
H
Hollokin 已提交
699 700 701
})
```

702
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
703

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

706
### on('imeChange')<a name="imeChange"></a><sup>9+</sup>
707 708 709

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
723
```js
H
Hollokin 已提交
724 725
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
H
Hollokin 已提交
726 727 728 729
    InputMethodProperty = inputMethodProperty;
    InputMethodSubtype = inputMethodSubtype;
});
```
730

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

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

H
Hollokin 已提交
735
取消订阅输入法及子类型变化监听事件。使用callback异步回调。
736 737 738 739 740 741 742 743

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

**参数:**

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

**示例:**

H
Hollokin 已提交
748
```js
H
Hollokin 已提交
749 750
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.off('imeChange');
H
Hollokin 已提交
751
```
752 753 754 755 756

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

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

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

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

761 762 763 764 765 766
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**示例:**

H
Hollokin 已提交
772
```ts
H
update  
Hollokin 已提交
773 774 775
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard'
H
Hollokin 已提交
776 777
}
try {
H
update  
Hollokin 已提交
778
    InputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
779
        if (err) {
H
Hollokin 已提交
780
            console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
781 782 783 784 785
            return;
        }
        console.log('listInputMethodSubtype success');
    });
} catch (err) {
H
Hollokin 已提交
786
    console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
787
}
788 789 790 791 792 793
```

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

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

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

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

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

H
Hollokin 已提交
800 801 802 803 804 805
**参数:**

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

806 807 808 809
**返回值:**

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

**示例:**

H
Hollokin 已提交
814
```ts
H
Hollokin 已提交
815 816 817 818 819 820 821 822
let inputMethodSubProperty = {
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
    InputMethodSetting.listInputMethodSubtype(inputMethodSubProperty).then((data) => {
        console.info('listInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
823
        console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
824 825
    })
} catch(err) {
H
Hollokin 已提交
826
    console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
827
}
828 829 830 831 832
```

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

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

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

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

838 839 840 841 842 843
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**示例:**

H
Hollokin 已提交
848
```ts
H
Hollokin 已提交
849
try {
H
Hollokin 已提交
850
    InputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
851
        if (err) {
H
Hollokin 已提交
852
            console.error('listCurrentInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
853 854 855 856 857
            return;
        }
        console.log('listCurrentInputMethodSubtype success');
    });
} catch(err) {
H
Hollokin 已提交
858
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
859
}
860 861 862 863 864 865
```

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

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

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

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

870 871 872 873 874 875
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

H
Hollokin 已提交
880
```ts
H
Hollokin 已提交
881 882 883 884
try {
    InputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
        console.info('listCurrentInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
885
        console.error('listCurrentInputMethodSubtype err: ' + err);
H
Hollokin 已提交
886 887
    })
} catch(err) {
H
Hollokin 已提交
888
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
889
}
890 891 892 893 894
```

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

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

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

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

Z
zhaolinglan 已提交
900 901 902 903 904 905 906
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**示例:**

H
Hollokin 已提交
911
```ts
H
Hollokin 已提交
912 913 914
try {
    InputMethodSetting.getInputMethods(true, (err,data) => {
        if (err) {
H
Hollokin 已提交
915
            console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
916 917 918 919 920
            return;
        }
        console.log('getInputMethods success');
    });
} catch (err) {
H
Hollokin 已提交
921
    console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
922
}
Z
zhaolinglan 已提交
923 924
```

925
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
926

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

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

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

Z
zhaolinglan 已提交
933 934 935 936 937 938 939 940 941 942 943 944
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**参数:**

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
949
```ts
H
Hollokin 已提交
950 951 952 953
try {
    InputMethodSetting.getInputMethods(true).then((data) => {
        console.info('getInputMethods success');
    }).catch((err) => {
H
Hollokin 已提交
954
        console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
955 956
    })
} catch(err) {
H
Hollokin 已提交
957
    console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
958
}
Z
zhaolinglan 已提交
959 960
```

H
Hollokin 已提交
961 962 963 964
### showOptionalInputMethods<sup>9+</sup>

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

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

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

H
Hollokin 已提交
969 970 971 972 973 974 975 976
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

**参数:**

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

**示例:**

H
Hollokin 已提交
981
```ts
H
Hollokin 已提交
982 983 984 985 986 987 988 989 990 991 992 993 994 995 996
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 已提交
997 998
showOptionalInputMethods(): Promise&lt;void&gt;

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

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

H
Hollokin 已提交
1003
**需要权限**: ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
1004

H
Hollokin 已提交
1005
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1006 1007 1008 1009 1010

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1011
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
H
Hollokin 已提交
1012 1013 1014

**示例:**

H
Hollokin 已提交
1015
```ts
H
Hollokin 已提交
1016
InputMethodSetting.showOptionalInputMethods().then(() => {
H
Hollokin 已提交
1017
    console.info('displayOptionalInputMethod success.');
H
Hollokin 已提交
1018
}).catch((err) => {
H
Hollokin 已提交
1019
    console.error('displayOptionalInputMethod err: ' + err);
H
Hollokin 已提交
1020 1021 1022
})
```

H
Hollokin 已提交
1023
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1024 1025 1026

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

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

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

1032
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1033

1034
**参数:**
B
bmeangel 已提交
1035

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

1040
**示例:**
T
explain  
tianyu 已提交
1041

1042
```js
1043
InputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
1044
    if (err) {
Z
zhaolinglan 已提交
1045
        console.error('listInputMethod failed because: ' + JSON.stringify(err));
1046
        return;
1047
    }
Z
zhaolinglan 已提交
1048
    console.log('listInputMethod success');
1049
 });
1050
```
Z
zhouyongfei 已提交
1051

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

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

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

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

1061
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1062

1063
**返回值:**
B
bmeangel 已提交
1064

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

1069
**示例:**
1070 1071

```js
Z
zhaolinglan 已提交
1072
InputMethodSetting.listInputMethod().then((data) => {
Z
zhaolinglan 已提交
1073
    console.info('listInputMethod success');
Z
zhaolinglan 已提交
1074
}).catch((err) => {
H
Hollokin 已提交
1075
    console.error('listInputMethod err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1076
})
1077
```
Z
zhouyongfei 已提交
1078

H
Hollokin 已提交
1079
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1080 1081 1082

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

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

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

1088
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1089

1090
**参数:**
Z
zhouyongfei 已提交
1091 1092 1093

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

1096
**示例:**
1097 1098

```js
1099
InputMethodSetting.displayOptionalInputMethod((err) => {
Z
zhaolinglan 已提交
1100
    if (err) {
Z
zhaolinglan 已提交
1101
        console.error('displayOptionalInputMethod failed because: ' + JSON.stringify(err));
1102 1103
        return;
    }
Z
zhaolinglan 已提交
1104
    console.info('displayOptionalInputMethod success');
1105
});
1106
```
Z
zhouyongfei 已提交
1107

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

1110 1111
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

1117 1118 1119 1120 1121 1122
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1123
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1124 1125 1126 1127 1128

**示例:**

```js
InputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1129
    console.info('displayOptionalInputMethod success');
1130
}).catch((err) => {
H
Hollokin 已提交
1131
    console.error('displayOptionalInputMethod err: ' + err);
1132 1133
})
```