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

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

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


## 导入模块

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

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

常量值。

H
Hollokin 已提交
18
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
19

H
Hollokin 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 参数名 | 参数类型 | 常量值 | 说明 |
| -------- | -------- | -------- | -------- |
| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 |
| EXCEPTION_PERMISSION<sup>9+</sup> | number | 201 | 错误码类型。详见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md),下同 |
| EXCEPTION_PARAMCHECK<sup>9+</sup> | number | 401 | 错误码类型 |
| EXCEPTION_UNSUPPORTED<sup>9+</sup> | number | 801 | 错误码类型 |
| EXCEPTION_PACKAGEMANAGER<sup>9+</sup> | number | 12800001 | 错误码类型 |
| EXCEPTION_IMENGINE<sup>9+</sup> | number | 12800002 | 错误码类型 |
| EXCEPTION_IMCLIENT<sup>9+</sup> | number | 12800003 | 错误码类型 |
| EXCEPTION_KEYEVENT<sup>9+</sup> | number | 12800004 | 错误码类型 |
| EXCEPTION_CONFPERSIST<sup>9+</sup> | number | 12800005 | 错误码类型 |
| EXCEPTION_CONTROLLER<sup>9+</sup> | number | 12800006 | 错误码类型 |
| EXCEPTION_SETTINGS<sup>9+</sup> | number | 12800007 | 错误码类型 |
| EXCEPTION_IMMS<sup>9+</sup> | number | 12800008 | 错误码类型 |
| EXCEPTION_OTHERS<sup>9+</sup> | number | 12899999 | 错误码类型 |
Z
zhouyongfei 已提交
35

36
## InputMethodProperty<sup>8+</sup>
Z
zhouyongfei 已提交
37 38 39

输入法应用属性。

H
Hollokin 已提交
40
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
41

Z
zhouyongfei 已提交
42 43
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
Hollokin 已提交
44 45 46 47 48 49 50 51
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。<br />**说明:**从API8开始支持,从API9开始废弃,建议使用name替代。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。<br />**说明:**从API8开始支持,从API9开始废弃,建议使用id替代。 |
| 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 已提交
52

53 54 55 56 57 58 59 60 61 62 63 64 65 66
## inputMethod.getController<sup>9+</sup>

getController(): InputMethodController

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

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

**返回值:**

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

H
Hollokin 已提交
67 68 69 70 71 72 73 74
**错误码:**

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

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

75 76
**示例:**

H
Hollokin 已提交
77
```js
H
Hollokin 已提交
78
let InputMethodController = inputMethod.getController();
79
```
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

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

getSetting(): InputMethodSetting

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

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

**返回值:**

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

H
Hollokin 已提交
95 96 97 98 99 100 101 102
**错误码:**

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

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

103 104
**示例:**

H
Hollokin 已提交
105
```js
H
Hollokin 已提交
106
let InputMethodSetting = inputMethod.getSetting();
107 108
```

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

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

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

115 116
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
117
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
118 119 120

**参数:**

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

H
Hollokin 已提交
126 127 128 129 130 131 132 133 134
**错误码:**

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

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

G
gaoxiang 已提交
135 136
**示例:**

H
Hollokin 已提交
137
```js
H
Hollokin 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150
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 已提交
151
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
152
}
G
gaoxiang 已提交
153
```
G
gaoxiang 已提交
154
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
155
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
156

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

159 160
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

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

G
gaoxiang 已提交
163
**参数:**
G
gaoxiang 已提交
164 165 166

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

G
gaoxiang 已提交
169
**返回值:**
B
bmeangel 已提交
170

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

H
Hollokin 已提交
175 176 177 178 179 180 181 182 183
**错误码:**

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

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

G
gaoxiang 已提交
184 185
**示例:**

H
Hollokin 已提交
186
```js
H
Hollokin 已提交
187 188 189
try {
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard'}).then((result) => {
        if (result) {
H
Hollokin 已提交
190
            console.info('Success to switchInputMethod.');
H
Hollokin 已提交
191
        } else {
H
Hollokin 已提交
192
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
193 194
        }
    }).catch((err) => {
H
Hollokin 已提交
195
        console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
196 197
    })
} catch(err) {
H
Hollokin 已提交
198
    console.error('switchInputMethod err: ' + JSON.stringify(err));
H
Hollokin 已提交
199
}
G
gaoxiang 已提交
200
```
201

Z
zhaolinglan 已提交
202 203 204 205
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

H
Hollokin 已提交
206
获取当前输入法扩展应用,提供同步接口,返回当前输入法属性。
Z
zhaolinglan 已提交
207 208 209 210 211

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

**返回值:**

Z
zhaolinglan 已提交
212 213 214
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
| [InputmethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
215 216 217

**示例:**

H
Hollokin 已提交
218
```js
H
Hollokin 已提交
219
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
220 221
```

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

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

H
Hollokin 已提交
226
在当前输入法应用内切换子类型。使用callback异步回调。
227 228 229 230 231 232 233 234 235

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

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

**参数:**

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

H
Hollokin 已提交
239 240 241 242 243 244 245 246 247
**错误码:**

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

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

248 249
**示例:**

H
Hollokin 已提交
250
```js
H
update  
Hollokin 已提交
251
let inputMethodSubtype = {
H
Hollokin 已提交
252 253 254 255
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
256
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
257 258 259 260 261 262 263 264 265 266 267
        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 已提交
268
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
269
}
270 271 272 273 274 275
```

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

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

H
Hollokin 已提交
276
在当前输入法应用内切换子类型。使用promise异步回调。
277 278 279 280 281 282 283 284 285

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

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

**参数:**

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

H
Hollokin 已提交
288 289 290 291 292 293
**返回值:**

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

H
Hollokin 已提交
294 295 296 297 298 299 300 301 302
**错误码:**

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

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

303 304
**示例:**

H
Hollokin 已提交
305
```js
H
update  
Hollokin 已提交
306
let inputMethodSubtype = {
H
Hollokin 已提交
307 308 309 310
    id: "com.example.kikainput",
    label: "ServiceExtAbility"
}
try {
H
update  
Hollokin 已提交
311
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype).then((result) => {
H
Hollokin 已提交
312
        if (result) {
H
Hollokin 已提交
313
            console.info('Success to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
314
        } else {
H
Hollokin 已提交
315
            console.error('Failed to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
316 317
        }
    }).catch((err) => {
H
Hollokin 已提交
318
        console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
319 320
    })
} catch(err) {
H
Hollokin 已提交
321
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
322
}
323 324 325 326 327 328 329 330 331 332 333 334 335 336
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

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

**返回值:**

| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
337
| [InputMethodSubtype](./js-apis-inputmethodsubtype.md#inputmethodsubtype) | 返回当前输入法子类型对象。 |
338 339 340

**示例:**

H
Hollokin 已提交
341
```js
H
Hollokin 已提交
342
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
343 344 345 346
```

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

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

H
Hollokin 已提交
349
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用callback异步回调。
350 351 352 353 354 355 356 357 358

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

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

**参数:**

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

H
Hollokin 已提交
363 364 365 366 367 368 369 370 371
**错误码:**

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

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

372 373
**示例:**

H
Hollokin 已提交
374
```js
H
Hollokin 已提交
375 376 377 378
let inputMethodProperty = {
    packageName:"com.example.kikakeyboard",
    methodId:"ServiceExtAbility"
}
H
Hollokin 已提交
379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395
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 已提交
396
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
397
}
398 399 400 401
```

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

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

H
Hollokin 已提交
404
切换至指定输入法应用的指定子类型,用于跨输入法应用切换子类型。使用promise异步回调。
405 406 407 408 409 410 411 412 413

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

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

**参数:**

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

H
Hollokin 已提交
417 418 419 420 421 422
**返回值:**

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

H
Hollokin 已提交
423 424 425 426 427 428 429 430 431
**错误码:**

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

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

432 433
**示例:**

H
Hollokin 已提交
434
```js
H
Hollokin 已提交
435
let inputMethodProperty = {
H
Hollokin 已提交
436 437
    name: "com.example.kikakeyboard",
    id: "ServiceExtAbility"
H
Hollokin 已提交
438
}
H
Hollokin 已提交
439
let inputMethodSubProperty = {
H
Hollokin 已提交
440 441 442 443 444 445
    id: "com.example.kikakeyboard",
	name: "",
	locale: "",
    label: "ServiceExtAbility",
	language: "",
	extra : {}
H
Hollokin 已提交
446 447 448 449
}
try {
    inputMethod.switchCurrentInputMethodAndSubtype(property, subType).then((result) => {
        if (result) {
H
Hollokin 已提交
450
            console.info('Success to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
451
        } else {
H
Hollokin 已提交
452
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
453 454
        }
    }).catch((err) => {
H
Hollokin 已提交
455
        console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
456 457
    })
} catch(err) {
H
Hollokin 已提交
458
    console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
459
}
460 461
```

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

H
Hollokin 已提交
464
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
465

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

H
Hollokin 已提交
468
> **说明:** <br/>
H
Hollokin 已提交
469
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getController()](#inputmethodgetcontroller9)替代
H
Hollokin 已提交
470

471
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
472

H
Hollokin 已提交
473
**返回值:**
Z
zhouyongfei 已提交
474

H
Hollokin 已提交
475 476 477
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
478

479
**示例:**
Z
zhouyongfei 已提交
480

481
```js
H
Hollokin 已提交
482
let InputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
483 484
```

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

H
Hollokin 已提交
487
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
488

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

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

493
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
494

495
**返回值:**
Z
zhouyongfei 已提交
496

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

501
**示例:**
Z
zhouyongfei 已提交
502

503
```js
H
Hollokin 已提交
504
let InputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
505 506
```

H
Hollokin 已提交
507 508
## InputMethodController

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

511 512 513 514
### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
515
隐藏输入法。使用callback异步回调。
516 517 518 519 520 521 522

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

**参数:**

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

H
Hollokin 已提交
525 526 527 528 529 530 531 532 533
**错误码:**

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

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

534 535 536
**示例:**

```js
H
Hollokin 已提交
537 538 539
try {
    InputMethodController.stopInputSession((error, result) => {
        if (error) {
H
Hollokin 已提交
540
            console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
541 542 543 544 545 546 547 548
            return;
        }
        if (result) {
            console.info('Success to stopInputSession.(callback)');
        } else {
            console.error('Failed to stopInputSession.(callback)');
        }
    });
H
Hollokin 已提交
549 550
} catch(error) {
    console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
551
}
552 553
```

H
Hollokin 已提交
554
### stopInputSession<sup>9+</sup>
555

H
Hollokin 已提交
556
stopInputSession(): Promise&lt;boolean&gt;
557

H
Hollokin 已提交
558
隐藏输入法。使用promise异步回调。
559 560 561 562 563 564 565

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

**返回值:**

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

H
Hollokin 已提交
568 569 570 571 572 573 574 575 576
**错误码:**

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

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

577 578 579
**示例:**

```js
H
Hollokin 已提交
580 581 582
try {
    InputMethodController.stopInputSession().then((result) => {
        if (result) {
H
Hollokin 已提交
583
            console.info('Success to stopInputSession.');
H
Hollokin 已提交
584
        } else {
H
Hollokin 已提交
585
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
586 587
        }
    }).catch((err) => {
H
Hollokin 已提交
588
        console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
589 590
    })
} catch(err) {
H
Hollokin 已提交
591
    console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
592
}
593 594
```

595
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
596

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

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

H
Hollokin 已提交
601 602
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
603
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
604 605 606

**参数:**

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

H
Hollokin 已提交
611 612 613 614 615 616 617 618 619
**错误码:**

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

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

Z
zhaolinglan 已提交
620 621 622
**示例:**

```js
Z
zhaolinglan 已提交
623
InputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
624
    if (err === undefined) {
Z
zhaolinglan 已提交
625
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
626
    } else {
Z
zhaolinglan 已提交
627
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
628 629 630 631
    }
})
```

632
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
633

Z
zhaolinglan 已提交
634
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
635

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

H
Hollokin 已提交
638 639
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
640
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
641 642 643

**返回值:**

Z
zhaolinglan 已提交
644 645
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
646
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
647

H
Hollokin 已提交
648 649 650 651 652 653 654 655 656
**错误码:**

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

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

Z
zhaolinglan 已提交
657 658 659
**示例:**

```js
Z
zhaolinglan 已提交
660 661 662
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
663
    console.error('showSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
664 665 666
});
```

667
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
668

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

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

H
Hollokin 已提交
673 674
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
675
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
676 677 678

**参数:**

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

H
Hollokin 已提交
683 684 685 686 687 688 689 690 691
**错误码:**

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

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

Z
zhaolinglan 已提交
692 693 694
**示例:**

```js
Z
zhaolinglan 已提交
695
InputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
696
    if (err === undefined) {
Z
zhaolinglan 已提交
697
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
698
    } else {
Z
zhaolinglan 已提交
699
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
700 701 702 703
    }
})
```

704
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
705

Z
zhaolinglan 已提交
706
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
707

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

H
Hollokin 已提交
710 711
**需要权限**: ohos.permission.CONNECT_IME_ABILITY

Z
zhaolinglan 已提交
712
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
713 714 715

**返回值:**

Z
zhaolinglan 已提交
716 717
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
718
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
719

H
Hollokin 已提交
720 721 722 723 724 725 726 727 728
**错误码:**

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

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

Z
zhaolinglan 已提交
729 730 731
**示例:**

```js
Z
zhaolinglan 已提交
732 733 734
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
735
    console.error('hideSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
736 737 738
});
```

H
Hollokin 已提交
739 740 741 742
### stopInput<sup>(deprecated)</sup>

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

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

H
Hollokin 已提交
745
> **说明:** <br/>
H
Hollokin 已提交
746 747 748 749 750 751 752 753
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
H
Hollokin 已提交
754
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当输入法隐藏成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775

**示例:**

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

H
Hollokin 已提交
778
> **说明:** <br/>
H
Hollokin 已提交
779 780 781 782 783 784 785 786
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
787
| Promise&lt;boolean&gt; | Promise对象。返回true表示输入法隐藏成功;返回false表示输入法隐藏失败。 |
H
Hollokin 已提交
788 789 790 791 792 793

**示例:**

```js
InputMethodController.stopInput().then((result) => {
    if (result) {
H
Hollokin 已提交
794
        console.info('Success to stopInput.');
H
Hollokin 已提交
795
    } else {
H
Hollokin 已提交
796
        console.error('Failed to stopInput.');
H
Hollokin 已提交
797 798
    }
}).catch((err) => {
H
Hollokin 已提交
799
    console.error('stopInput err: ' + err);
H
Hollokin 已提交
800 801 802
})
```

803
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
804

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

H
Hollokin 已提交
807
### on('imeChange')<sup>9+</sup>
808 809 810

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

H
Hollokin 已提交
811
订阅输入法及子类型变化监听事件。使用callback异步回调。
812 813 814 815 816 817 818 819

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

**参数:**

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

**示例:**

H
Hollokin 已提交
824
```js
H
Hollokin 已提交
825 826
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
H
Hollokin 已提交
827 828 829 830
    InputMethodProperty = inputMethodProperty;
    InputMethodSubtype = inputMethodSubtype;
});
```
831

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

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

H
Hollokin 已提交
836
取消订阅输入法及子类型变化监听事件。使用callback异步回调。
837 838 839 840 841 842 843 844

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

**参数:**

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

**示例:**

H
Hollokin 已提交
849
```js
H
Hollokin 已提交
850 851
let InputMethodSetting = inputMethod.getSetting();
InputMethodSetting.off('imeChange');
H
Hollokin 已提交
852
```
853 854 855 856 857

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

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

H
Hollokin 已提交
858
获取指定输入法应用的所有子类型。使用callback异步回调。
859 860 861 862 863 864 865

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

**参数:**

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

H
Hollokin 已提交
869 870 871 872 873 874 875 876 877
**错误码:**

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

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

878 879
**示例:**

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

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

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

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

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

H
Hollokin 已提交
906 907 908 909 910 911
**参数:**

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

912 913 914 915
**返回值:**

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

H
Hollokin 已提交
918 919 920 921 922 923 924 925 926
**错误码:**

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

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

927 928
**示例:**

H
Hollokin 已提交
929
```js
H
Hollokin 已提交
930 931 932
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard',
H
Hollokin 已提交
933 934
}
try {
H
Hollokin 已提交
935
    InputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
936 937
        console.info('listInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
938
        console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
939 940
    })
} catch(err) {
H
Hollokin 已提交
941
    console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
942
}
943 944 945 946 947
```

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

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

H
Hollokin 已提交
949
查询当前输入法应用的所有子类型。使用callback异步回调。
950 951 952 953 954 955 956

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

**参数:**

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

H
Hollokin 已提交
959 960 961 962 963 964 965 966 967
**错误码:**

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

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

968 969
**示例:**

H
Hollokin 已提交
970
```js
H
Hollokin 已提交
971
try {
H
Hollokin 已提交
972
    InputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
973
        if (err) {
H
Hollokin 已提交
974
            console.error('listCurrentInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
975 976 977 978 979
            return;
        }
        console.log('listCurrentInputMethodSubtype success');
    });
} catch(err) {
H
Hollokin 已提交
980
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
981
}
982 983 984 985 986 987
```

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

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

H
Hollokin 已提交
988
查询当前输入法的子类型列表。使用promise异步回调。
989 990 991 992 993 994 995

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

**返回值:**

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

H
Hollokin 已提交
998 999 1000 1001 1002 1003 1004 1005 1006
**错误码:**

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

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

1007 1008
**示例:**

H
Hollokin 已提交
1009
```js
H
Hollokin 已提交
1010 1011 1012 1013
try {
    InputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
        console.info('listCurrentInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
1014
        console.error('listCurrentInputMethodSubtype err: ' + err);
H
Hollokin 已提交
1015 1016
    })
} catch(err) {
H
Hollokin 已提交
1017
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
1018
}
1019 1020 1021 1022 1023
```

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

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

H
Hollokin 已提交
1025
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。使用callback异步回调。
Z
zhaolinglan 已提交
1026 1027 1028 1029 1030 1031 1032 1033

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

**参数:**

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

H
Hollokin 已提交
1036 1037 1038 1039 1040 1041 1042 1043 1044
**错误码:**

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

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

Z
zhaolinglan 已提交
1045 1046
**示例:**

H
Hollokin 已提交
1047
```js
H
Hollokin 已提交
1048 1049 1050
try {
    InputMethodSetting.getInputMethods(true, (err,data) => {
        if (err) {
H
Hollokin 已提交
1051
            console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1052 1053 1054 1055 1056
            return;
        }
        console.log('getInputMethods success');
    });
} catch (err) {
H
Hollokin 已提交
1057
    console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1058
}
Z
zhaolinglan 已提交
1059 1060
```

1061
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
1062

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

H
Hollokin 已提交
1065
获取已激活/未激活输入法列表。参数enable取true返回已激活输入法列表,取false返回未激活输入法列表。使用promise异步回调。
Z
zhaolinglan 已提交
1066 1067 1068 1069 1070 1071 1072 1073 1074

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

**参数:**

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

H
Hollokin 已提交
1075 1076 1077 1078 1079 1080 1081 1082 1083
**错误码:**

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

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

Z
zhaolinglan 已提交
1084 1085 1086 1087
**返回值:**

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

**示例:**

H
Hollokin 已提交
1092
```js
H
Hollokin 已提交
1093 1094 1095 1096
try {
    InputMethodSetting.getInputMethods(true).then((data) => {
        console.info('getInputMethods success');
    }).catch((err) => {
H
Hollokin 已提交
1097
        console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1098 1099
    })
} catch(err) {
H
Hollokin 已提交
1100
    console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1101
}
Z
zhaolinglan 已提交
1102 1103
```

H
Hollokin 已提交
1104 1105
### showOptionalInputMethods<sup>9+</sup>

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

H
Hollokin 已提交
1108
显示输入法选择对话框。使用callback异步回调。
H
Hollokin 已提交
1109 1110 1111 1112 1113 1114 1115 1116 1117

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

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

**参数:**

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

H
Hollokin 已提交
1120 1121 1122 1123 1124 1125 1126 1127
**错误码:**

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

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

H
Hollokin 已提交
1128 1129
**示例:**

H
Hollokin 已提交
1130
```js
H
Hollokin 已提交
1131
try {
H
Hollokin 已提交
1132
    InputMethodSetting.showOptionalInputMethods((err, data) => {
H
Hollokin 已提交
1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145
        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 已提交
1146
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
1147

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

H
Hollokin 已提交
1150
**需要权限**: ohos.permission.CONNECT_IME_ABILITY
H
Hollokin 已提交
1151

H
Hollokin 已提交
1152
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1153 1154 1155 1156 1157

**返回值:**

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

H
Hollokin 已提交
1160 1161 1162 1163 1164 1165 1166 1167
**错误码:**

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

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

H
Hollokin 已提交
1168 1169
**示例:**

H
Hollokin 已提交
1170
```js
H
Hollokin 已提交
1171
InputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
1172
    console.info('displayOptionalInputMethod success.');
H
Hollokin 已提交
1173
}).catch((err) => {
H
Hollokin 已提交
1174
    console.error('displayOptionalInputMethod err: ' + err);
H
Hollokin 已提交
1175 1176 1177
})
```

H
Hollokin 已提交
1178
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1179 1180 1181

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

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

H
Hollokin 已提交
1184
> **说明:** <br/>
H
Hollokin 已提交
1185
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9)替代
H
Hollokin 已提交
1186

1187
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1188

1189
**参数:**
B
bmeangel 已提交
1190

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

1195
**示例:**
T
explain  
tianyu 已提交
1196

1197
```js
1198
InputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
1199
    if (err) {
Z
zhaolinglan 已提交
1200
        console.error('listInputMethod failed because: ' + JSON.stringify(err));
1201
        return;
1202
    }
Z
zhaolinglan 已提交
1203
    console.log('listInputMethod success');
1204
 });
1205
```
Z
zhouyongfei 已提交
1206

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

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

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

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

1216
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1217

1218
**返回值:**
B
bmeangel 已提交
1219

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

1224
**示例:**
1225 1226

```js
Z
zhaolinglan 已提交
1227
InputMethodSetting.listInputMethod().then((data) => {
Z
zhaolinglan 已提交
1228
    console.info('listInputMethod success');
Z
zhaolinglan 已提交
1229
}).catch((err) => {
H
Hollokin 已提交
1230
    console.error('listInputMethod err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1231
})
1232
```
Z
zhouyongfei 已提交
1233

H
Hollokin 已提交
1234
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1235 1236 1237

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

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

H
Hollokin 已提交
1240
> **说明:** <br/>
H
Hollokin 已提交
1241
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9)替代
H
Hollokin 已提交
1242

1243
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
1244

1245
**参数:**
Z
zhouyongfei 已提交
1246 1247 1248

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

1251
**示例:**
1252 1253

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

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

1265 1266
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

1272 1273 1274 1275 1276 1277
**系统能力**: SystemCapability.MiscServices.InputMethodFramework

**返回值:**

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

**示例:**

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