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

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

H
update  
Hollokin 已提交
5 6 7
>**说明:**
>
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zhouyongfei 已提交
8 9 10 11 12


## 导入模块

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

H
Hollokin 已提交
16
## 常量<sup>8+</sup>
Z
zhouyongfei 已提交
17 18 19

常量值。

H
update  
Hollokin 已提交
20
**系统能力:**SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
21

H
Hollokin 已提交
22 23 24
| 参数名 | 参数类型 | 常量值 | 说明 |
| -------- | -------- | -------- | -------- |
| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 |
Z
zhouyongfei 已提交
25

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

输入法应用属性。

H
update  
Hollokin 已提交
30
**系统能力:**SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
31

Z
zhouyongfei 已提交
32 33
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
34 35
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。<br/>**说明:**从API8开始支持,从API9开始废弃,建议使用name替代。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。<br/>**说明:**从API8开始支持,从API9开始废弃,建议使用id替代。 |
H
Hollokin 已提交
36 37 38 39 40 41
| name<sup>9+</sup>  | string | 是 | 否 | 输入法内部名称。 |
| id<sup>9+</sup>    | string | 是 | 否 | 输入法唯一标识。 |
| label<sup>9+</sup>    | string | 是 | 否 | 输入法对外显示名称。 |
| icon<sup>9+</sup>    | string | 是 | 否 | 输入法图标数据。 |
| iconId<sup>9+</sup>    | number | 是 | 否 | 输入法图标资源号。 |
| extra<sup>9+</sup>    | object | 是 | 否 | 输入法扩展信息。 |
Z
zhouyongfei 已提交
42

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

getController(): InputMethodController

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

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

**返回值:**

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

H
Hollokin 已提交
57 58 59 60 61 62 63 64
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                     |
| -------- | ------------------------------ |
| 12800006 | Input method controller error. |

65 66
**示例:**

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

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

getSetting(): InputMethodSetting

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

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

**返回值:**

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

H
Hollokin 已提交
85 86 87 88 89 90 91 92
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800007 | Input method settings extension error. |

93 94
**示例:**

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

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

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

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

H
update  
Hollokin 已提交
105
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
106

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

**参数:**

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

H
Hollokin 已提交
116 117 118 119 120 121 122 123 124
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

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

H
Hollokin 已提交
127
```js
H
Hollokin 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140
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 已提交
141
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
142
}
G
gaoxiang 已提交
143
```
G
gaoxiang 已提交
144
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
145
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
146

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

H
update  
Hollokin 已提交
149
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
150

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

G
gaoxiang 已提交
153
**参数:**
G
gaoxiang 已提交
154 155 156

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

G
gaoxiang 已提交
159
**返回值:**
B
bmeangel 已提交
160

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

H
Hollokin 已提交
165 166 167 168 169 170 171 172 173
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

G
gaoxiang 已提交
174 175
**示例:**

H
Hollokin 已提交
176
```js
H
Hollokin 已提交
177 178 179
try {
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard'}).then((result) => {
        if (result) {
H
Hollokin 已提交
180
            console.info('Success to switchInputMethod.');
H
Hollokin 已提交
181
        } else {
H
Hollokin 已提交
182
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
183 184
        }
    }).catch((err) => {
H
Hollokin 已提交
185
        console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
186 187
    })
} catch(err) {
H
Hollokin 已提交
188
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
189
}
G
gaoxiang 已提交
190
```
191

Z
zhaolinglan 已提交
192 193 194 195
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

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

H
update  
Hollokin 已提交
198
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
199 200 201

**返回值:**

Z
zhaolinglan 已提交
202 203 204
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
| [InputmethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
205 206 207

**示例:**

H
Hollokin 已提交
208
```js
H
Hollokin 已提交
209
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
210 211
```

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

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

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

H
update  
Hollokin 已提交
218
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
219

H
update  
Hollokin 已提交
220
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
221 222 223 224 225

**参数:**

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

H
Hollokin 已提交
229 230 231 232 233 234 235 236 237
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

238 239
**示例:**

H
Hollokin 已提交
240
```js
H
update  
Hollokin 已提交
241
let inputMethodSubtype = {
H
Hollokin 已提交
242 243 244 245
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
246
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
247 248 249 250 251 252 253 254 255 256 257
        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 已提交
258
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
259
}
260 261 262 263 264 265
```

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

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

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

H
update  
Hollokin 已提交
268
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
269

H
update  
Hollokin 已提交
270
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
271 272 273 274 275

**参数:**

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

H
Hollokin 已提交
278 279 280 281 282 283
**返回值:**

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

H
Hollokin 已提交
284 285 286 287 288 289 290 291 292
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

293 294
**示例:**

H
Hollokin 已提交
295
```js
H
update  
Hollokin 已提交
296
let inputMethodSubtype = {
H
Hollokin 已提交
297 298 299 300
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
301
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype).then((result) => {
H
Hollokin 已提交
302
        if (result) {
H
Hollokin 已提交
303
            console.info('Success to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
304
        } else {
H
Hollokin 已提交
305
            console.error('Failed to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
306 307
        }
    }).catch((err) => {
H
Hollokin 已提交
308
        console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
309 310
    })
} catch(err) {
H
Hollokin 已提交
311
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
312
}
313 314 315 316 317 318 319 320
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
update  
Hollokin 已提交
321
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
322 323 324 325 326

**返回值:**

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

**示例:**

H
Hollokin 已提交
331
```js
H
Hollokin 已提交
332
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
333 334 335 336
```

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

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

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

H
update  
Hollokin 已提交
341
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
342

H
update  
Hollokin 已提交
343
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
344 345 346 347 348

**参数:**

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

H
Hollokin 已提交
353 354 355 356 357 358 359 360 361
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

362 363
**示例:**

H
Hollokin 已提交
364
```js
H
Hollokin 已提交
365 366 367 368
let inputMethodProperty = {
    packageName:"com.example.kikakeyboard",
    methodId:"ServiceExtAbility"
}
H
Hollokin 已提交
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
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 已提交
386
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
387
}
388 389 390 391
```

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

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

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

H
update  
Hollokin 已提交
396
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
397

H
update  
Hollokin 已提交
398
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
399 400 401 402 403

**参数:**

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

H
Hollokin 已提交
407 408 409 410 411 412
**返回值:**

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

H
Hollokin 已提交
413 414 415 416 417 418 419 420 421
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

422 423
**示例:**

H
Hollokin 已提交
424
```js
H
Hollokin 已提交
425
let inputMethodProperty = {
H
Hollokin 已提交
426 427
    name: "com.example.kikakeyboard",
    id: "ServiceExtAbility"
H
Hollokin 已提交
428
}
H
Hollokin 已提交
429
let inputMethodSubProperty = {
H
Hollokin 已提交
430 431 432 433 434 435
    id: "com.example.kikakeyboard",
	name: "",
	locale: "",
    label: "ServiceExtAbility",
	language: "",
	extra : {}
H
Hollokin 已提交
436 437 438 439
}
try {
    inputMethod.switchCurrentInputMethodAndSubtype(property, subType).then((result) => {
        if (result) {
H
Hollokin 已提交
440
            console.info('Success to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
441
        } else {
H
Hollokin 已提交
442
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
443 444
        }
    }).catch((err) => {
H
Hollokin 已提交
445
        console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
446 447
    })
} catch(err) {
H
Hollokin 已提交
448
    console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
449
}
450 451
```

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

H
Hollokin 已提交
454
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
455

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

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

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

H
Hollokin 已提交
464
**返回值:**
Z
zhouyongfei 已提交
465

H
Hollokin 已提交
466 467 468
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
469

470
**示例:**
Z
zhouyongfei 已提交
471

472
```js
H
Hollokin 已提交
473
let InputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
474 475
```

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

H
Hollokin 已提交
478
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
479

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

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

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

486
**返回值:**
Z
zhouyongfei 已提交
487

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

492
**示例:**
Z
zhouyongfei 已提交
493

494
```js
H
Hollokin 已提交
495
let InputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
496 497
```

H
Hollokin 已提交
498 499
## InputMethodController

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

502 503 504 505
### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
506
隐藏输入法。使用callback异步回调。
507

H
update  
Hollokin 已提交
508
**系统能力:**SystemCapability.MiscServices.InputMethodFramework
509 510 511 512 513

**参数:**

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

H
Hollokin 已提交
516 517 518 519 520 521 522 523 524
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

525 526 527
**示例:**

```js
H
Hollokin 已提交
528 529 530
try {
    InputMethodController.stopInputSession((error, result) => {
        if (error) {
H
Hollokin 已提交
531
            console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
532 533 534 535 536 537 538 539
            return;
        }
        if (result) {
            console.info('Success to stopInputSession.(callback)');
        } else {
            console.error('Failed to stopInputSession.(callback)');
        }
    });
H
Hollokin 已提交
540 541
} catch(error) {
    console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
542
}
543 544
```

H
Hollokin 已提交
545
### stopInputSession<sup>9+</sup>
546

H
Hollokin 已提交
547
stopInputSession(): Promise&lt;boolean&gt;
548

H
Hollokin 已提交
549
隐藏输入法。使用promise异步回调。
550

H
update  
Hollokin 已提交
551
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
552 553 554 555 556

**返回值:**

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

H
Hollokin 已提交
559 560 561 562 563 564 565 566 567
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

568 569 570
**示例:**

```js
H
Hollokin 已提交
571 572 573
try {
    InputMethodController.stopInputSession().then((result) => {
        if (result) {
H
Hollokin 已提交
574
            console.info('Success to stopInputSession.');
H
Hollokin 已提交
575
        } else {
H
Hollokin 已提交
576
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
577 578
        }
    }).catch((err) => {
H
Hollokin 已提交
579
        console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
580 581
    })
} catch(err) {
H
Hollokin 已提交
582
    console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
583
}
584 585
```

586
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
587

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

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

H
update  
Hollokin 已提交
592
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
593

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

**参数:**

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

H
Hollokin 已提交
602 603 604 605 606 607 608 609 610
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
611 612 613
**示例:**

```js
Z
zhaolinglan 已提交
614
InputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
615
    if (err === undefined) {
Z
zhaolinglan 已提交
616
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
617
    } else {
Z
zhaolinglan 已提交
618
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
619 620 621 622
    }
})
```

623
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
624

Z
zhaolinglan 已提交
625
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
626

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

H
update  
Hollokin 已提交
629
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
630

Z
zhaolinglan 已提交
631
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
632 633 634

**返回值:**

Z
zhaolinglan 已提交
635 636
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
637
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
638

H
Hollokin 已提交
639 640 641 642 643 644 645 646 647
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
648 649 650
**示例:**

```js
Z
zhaolinglan 已提交
651 652 653
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
654
    console.error('showSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
655 656 657
});
```

658
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
659

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

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

H
update  
Hollokin 已提交
664
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
665

Z
zhaolinglan 已提交
666
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
667 668 669

**参数:**

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

H
Hollokin 已提交
674 675 676 677 678 679 680 681 682
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
683 684 685
**示例:**

```js
Z
zhaolinglan 已提交
686
InputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
687
    if (err === undefined) {
Z
zhaolinglan 已提交
688
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
689
    } else {
Z
zhaolinglan 已提交
690
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
691 692 693 694
    }
})
```

695
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
696

Z
zhaolinglan 已提交
697
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
698

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

H
update  
Hollokin 已提交
701
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
702

Z
zhaolinglan 已提交
703
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
704 705 706

**返回值:**

Z
zhaolinglan 已提交
707 708
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
709
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
710

H
Hollokin 已提交
711 712 713 714 715 716 717 718 719
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
720 721 722
**示例:**

```js
Z
zhaolinglan 已提交
723 724 725
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
726
    console.error('hideSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
727 728 729
});
```

H
Hollokin 已提交
730 731 732 733
### stopInput<sup>(deprecated)</sup>

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

H
Hollokin 已提交
734
隐藏输入法。使用callback异步回调。
H
Hollokin 已提交
735

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

H
update  
Hollokin 已提交
740
**系统能力:**SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
741 742 743 744 745

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
746
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法隐藏成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767

**示例:**

```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 已提交
768
隐藏输入法。使用promise异步回调。
H
Hollokin 已提交
769

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

H
update  
Hollokin 已提交
774
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
775 776 777 778 779

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
780
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
H
Hollokin 已提交
781 782 783 784 785 786

**示例:**

```js
InputMethodController.stopInput().then((result) => {
    if (result) {
H
Hollokin 已提交
787
        console.info('Success to stopInput.');
H
Hollokin 已提交
788
    } else {
H
Hollokin 已提交
789
        console.error('Failed to stopInput.');
H
Hollokin 已提交
790 791
    }
}).catch((err) => {
H
Hollokin 已提交
792
    console.error('stopInput err: ' + err);
H
Hollokin 已提交
793 794 795
})
```

796
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
797

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

H
Hollokin 已提交
800
### on('imeChange')<sup>9+</sup>
801 802 803

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

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

H
update  
Hollokin 已提交
806
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
807 808 809 810 811 812

**参数:**

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

**示例:**

H
Hollokin 已提交
817
```js
H
Hollokin 已提交
818 819
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
H
Hollokin 已提交
820 821 822 823
    InputMethodProperty = inputMethodProperty;
    InputMethodSubtype = inputMethodSubtype;
});
```
824

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

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

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

H
update  
Hollokin 已提交
831
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
832 833 834 835 836 837

**参数:**

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

**示例:**

H
Hollokin 已提交
842
```js
H
Hollokin 已提交
843 844
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.off('imeChange');
H
Hollokin 已提交
845
```
846 847 848 849 850

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

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

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

H
update  
Hollokin 已提交
853
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
854 855 856 857 858

**参数:**

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

H
Hollokin 已提交
862 863 864 865 866 867 868 869 870
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

871 872
**示例:**

H
Hollokin 已提交
873
```js
H
update  
Hollokin 已提交
874 875 876
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard'
H
Hollokin 已提交
877 878
}
try {
H
update  
Hollokin 已提交
879
    InputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
880
        if (err) {
H
Hollokin 已提交
881
            console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
882 883 884 885 886
            return;
        }
        console.log('listInputMethodSubtype success');
    });
} catch (err) {
H
Hollokin 已提交
887
    console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
888
}
889 890 891 892 893 894
```

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

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

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

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

H
Hollokin 已提交
899 900 901 902 903 904
**参数:**

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

905 906 907 908
**返回值:**

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

H
Hollokin 已提交
911 912 913 914 915 916 917 918 919
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

920 921
**示例:**

H
Hollokin 已提交
922
```js
H
Hollokin 已提交
923 924 925
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard',
H
Hollokin 已提交
926 927
}
try {
H
Hollokin 已提交
928
    InputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
929 930
        console.info('listInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
931
        console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
932 933
    })
} catch(err) {
H
Hollokin 已提交
934
    console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
935
}
936 937 938 939 940
```

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

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

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

H
update  
Hollokin 已提交
944
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
945 946 947 948 949

**参数:**

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

H
Hollokin 已提交
952 953 954 955 956 957 958 959 960
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

961 962
**示例:**

H
Hollokin 已提交
963
```js
H
Hollokin 已提交
964
try {
H
Hollokin 已提交
965
    InputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
966
        if (err) {
H
Hollokin 已提交
967
            console.error('listCurrentInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
968 969 970 971 972
            return;
        }
        console.log('listCurrentInputMethodSubtype success');
    });
} catch(err) {
H
Hollokin 已提交
973
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
974
}
975 976 977 978 979 980
```

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

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

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

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

**返回值:**

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

H
Hollokin 已提交
991 992 993 994 995 996 997 998 999
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

1000 1001
**示例:**

H
Hollokin 已提交
1002
```js
H
Hollokin 已提交
1003 1004 1005 1006
try {
    InputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
        console.info('listCurrentInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
1007
        console.error('listCurrentInputMethodSubtype err: ' + err);
H
Hollokin 已提交
1008 1009
    })
} catch(err) {
H
Hollokin 已提交
1010
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
1011
}
1012 1013 1014 1015 1016
```

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

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

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

H
update  
Hollokin 已提交
1020
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1021 1022 1023 1024 1025 1026

**参数:**

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

H
Hollokin 已提交
1029 1030 1031 1032 1033 1034 1035 1036 1037
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
1038 1039
**示例:**

H
Hollokin 已提交
1040
```js
H
Hollokin 已提交
1041 1042 1043
try {
    InputMethodSetting.getInputMethods(true, (err,data) => {
        if (err) {
H
Hollokin 已提交
1044
            console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1045 1046 1047 1048 1049
            return;
        }
        console.log('getInputMethods success');
    });
} catch (err) {
H
Hollokin 已提交
1050
    console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1051
}
Z
zhaolinglan 已提交
1052 1053
```

1054
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
1055

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

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

H
update  
Hollokin 已提交
1060
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1061 1062 1063 1064 1065 1066 1067

**参数:**

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

H
Hollokin 已提交
1068 1069 1070 1071 1072 1073 1074 1075 1076
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
1077 1078 1079 1080
**返回值:**

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

**示例:**

H
Hollokin 已提交
1085
```js
H
Hollokin 已提交
1086 1087 1088 1089
try {
    InputMethodSetting.getInputMethods(true).then((data) => {
        console.info('getInputMethods success');
    }).catch((err) => {
H
Hollokin 已提交
1090
        console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1091 1092
    })
} catch(err) {
H
Hollokin 已提交
1093
    console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1094
}
Z
zhaolinglan 已提交
1095 1096
```

H
Hollokin 已提交
1097 1098
### showOptionalInputMethods<sup>9+</sup>

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

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

H
update  
Hollokin 已提交
1103
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
1104

H
update  
Hollokin 已提交
1105
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1106 1107 1108 1109 1110

**参数:**

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

H
Hollokin 已提交
1113 1114 1115 1116 1117 1118 1119 1120
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800008 | Input method settings extension error. |

H
Hollokin 已提交
1121 1122
**示例:**

H
Hollokin 已提交
1123
```js
H
Hollokin 已提交
1124
try {
H
Hollokin 已提交
1125
    InputMethodSetting.showOptionalInputMethods((err, data) => {
H
Hollokin 已提交
1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138
        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 已提交
1139
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
1140

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

H
update  
Hollokin 已提交
1143
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
1144

H
update  
Hollokin 已提交
1145
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1146 1147 1148 1149 1150

**返回值:**

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

H
Hollokin 已提交
1153 1154 1155 1156 1157 1158 1159 1160
**错误码:**

以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md)

| 错误码ID | 错误码信息                             |
| -------- | -------------------------------------- |
| 12800008 | Input method settings extension error. |

H
Hollokin 已提交
1161 1162
**示例:**

H
Hollokin 已提交
1163
```js
H
Hollokin 已提交
1164
InputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
1165
    console.info('displayOptionalInputMethod success.');
H
Hollokin 已提交
1166
}).catch((err) => {
H
Hollokin 已提交
1167
    console.error('displayOptionalInputMethod err: ' + err);
H
Hollokin 已提交
1168 1169 1170
})
```

H
Hollokin 已提交
1171
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1172 1173 1174

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

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

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

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

1183
**参数:**
B
bmeangel 已提交
1184

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

1189
**示例:**
T
explain  
tianyu 已提交
1190

1191
```js
1192
InputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
1193
    if (err) {
Z
zhaolinglan 已提交
1194
        console.error('listInputMethod failed because: ' + JSON.stringify(err));
1195
        return;
1196
    }
Z
zhaolinglan 已提交
1197
    console.log('listInputMethod success');
1198
 });
1199
```
Z
zhouyongfei 已提交
1200

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

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

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

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

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

1213
**返回值:**
B
bmeangel 已提交
1214

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

1219
**示例:**
1220 1221

```js
Z
zhaolinglan 已提交
1222
InputMethodSetting.listInputMethod().then((data) => {
Z
zhaolinglan 已提交
1223
    console.info('listInputMethod success');
Z
zhaolinglan 已提交
1224
}).catch((err) => {
H
Hollokin 已提交
1225
    console.error('listInputMethod err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1226
})
1227
```
Z
zhouyongfei 已提交
1228

H
Hollokin 已提交
1229
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1230 1231 1232

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

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

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

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

1241
**参数:**
Z
zhouyongfei 已提交
1242 1243 1244

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

1247
**示例:**
1248 1249

```js
1250
InputMethodSetting.displayOptionalInputMethod((err) => {
Z
zhaolinglan 已提交
1251
    if (err) {
Z
zhaolinglan 已提交
1252
        console.error('displayOptionalInputMethod failed because: ' + JSON.stringify(err));
1253 1254
        return;
    }
Z
zhaolinglan 已提交
1255
    console.info('displayOptionalInputMethod success');
1256
});
1257
```
Z
zhouyongfei 已提交
1258

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

1261 1262
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

H
update  
Hollokin 已提交
1269
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1270 1271 1272 1273 1274

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1275
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1276 1277 1278 1279 1280

**示例:**

```js
InputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1281
    console.info('displayOptionalInputMethod success');
1282
}).catch((err) => {
H
Hollokin 已提交
1283
    console.error('displayOptionalInputMethod err: ' + err);
1284 1285
})
```