js-apis-inputmethod.md 45.4 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

22
| 参数名 | 类型 | 常量值 | 说明 |
H
Hollokin 已提交
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

32
| 名称 | 类型 | 可读 | 可写 | 说明 |
Z
zhouyongfei 已提交
33
| -------- | -------- | -------- | -------- | -------- |
H
Hollokin 已提交
34 35 36 37 38 39
| 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 | 是 | 否 | 输入法扩展信息。 |
40 41
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。<br/>**说明:** 从API version 8开始支持,从API version 9开始废弃,建议使用name替代。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。<br/>**说明:** 从API version 8开始支持,从API version 9开始废弃,建议使用id替代。 |
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
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
60

61
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
62 63 64
| -------- | ------------------------------ |
| 12800006 | Input method controller error. |

65 66
**示例:**

H
Hollokin 已提交
67
```js
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
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
88

89
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
90 91 92
| -------- | -------------------------------------- |
| 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
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
119

120
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
121 122 123 124
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

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

H
Hollokin 已提交
127
```js
H
Hollokin 已提交
128
try{
129
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard', extra: {}}, (err, result) => {
H
Hollokin 已提交
130 131 132 133 134 135 136 137 138 139 140
        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

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
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
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
168

169
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
170 171 172 173
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

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

H
Hollokin 已提交
176
```js
H
Hollokin 已提交
177
try {
178
    inputMethod.switchInputMethod({packageName:'com.example.kikakeyboard', methodId:'com.example.kikakeyboard', extra: {}}).then((result) => {
H
Hollokin 已提交
179
        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
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
232

233
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
234 235 236 237
| -------- | -------------------------------------- |
| 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
    id: "com.example.kikakeyboard",
243 244 245 246 247 248 249 250
    label: "ServiceExtAbility",
    name: "",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
    extra: {}
H
Hollokin 已提交
251 252
}
try {
H
update  
Hollokin 已提交
253
    inputMethod.switchCurrentInputMethodSubtype(inputMethodSubtype, (err, result) => {
H
Hollokin 已提交
254 255 256 257 258 259 260 261 262 263 264
        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 已提交
265
    console.error('switchCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
266
}
267 268 269 270 271 272
```

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

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

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

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

H
update  
Hollokin 已提交
277
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
278 279 280 281 282

**参数:**

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

H
Hollokin 已提交
285 286 287 288 289 290
**返回值:**

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

H
Hollokin 已提交
291 292
**错误码:**

293
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
294

295
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
296 297 298 299
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

300 301
**示例:**

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

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
update  
Hollokin 已提交
335
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
336 337 338 339 340

**返回值:**

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

**示例:**

H
Hollokin 已提交
345
```js
H
Hollokin 已提交
346
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
347 348 349 350
```

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

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

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

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

H
update  
Hollokin 已提交
357
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
358 359 360 361 362

**参数:**

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

H
Hollokin 已提交
367 368
**错误码:**

369
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
370

371
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
372 373 374 375
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

376 377
**示例:**

H
Hollokin 已提交
378
```js
H
Hollokin 已提交
379
let inputMethodProperty = {
380 381 382
    packageName: "com.example.kikakeyboard",
    methodId: "ServiceExtAbility",
    extra: {}
H
Hollokin 已提交
383
}
H
Hollokin 已提交
384
let inputMethodSubProperty = {
H
Hollokin 已提交
385
    id: "com.example.kikakeyboard",
386 387 388 389 390 391 392 393
    label: "ServiceExtAbility",
    name: "",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
    extra: {}
H
Hollokin 已提交
394 395 396 397 398 399 400 401 402 403 404 405 406 407
}
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 已提交
408
    console.error('switchCurrentInputMethodAndSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
409
}
410 411 412 413
```

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

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

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

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

H
update  
Hollokin 已提交
420
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
421 422 423 424 425

**参数:**

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

H
Hollokin 已提交
429 430 431 432 433 434
**返回值:**

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

H
Hollokin 已提交
435 436
**错误码:**

437
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
438

439
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
440 441 442 443
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
| 12800008 | Input method settings extension error. |

444 445
**示例:**

H
Hollokin 已提交
446
```js
H
Hollokin 已提交
447
let inputMethodProperty = {
H
Hollokin 已提交
448 449 450
    packageName: "com.example.kikakeyboard",
    methodId: "ServiceExtAbility",
    extra: {}
H
Hollokin 已提交
451
}
H
Hollokin 已提交
452
let inputMethodSubProperty = {
H
Hollokin 已提交
453 454
    id: "com.example.kikakeyboard",
    label: "ServiceExtAbility",
H
Hollokin 已提交
455 456 457 458 459 460 461
    name: "",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
    extra: {}
H
Hollokin 已提交
462 463
}
try {
H
Hollokin 已提交
464
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, inputMethodSubProperty).then((result) => {
H
Hollokin 已提交
465
        if (result) {
H
Hollokin 已提交
466
            console.info('Success to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
467
        } else {
H
Hollokin 已提交
468
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
469 470
        }
    }).catch((err) => {
H
Hollokin 已提交
471
        console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
472 473
    })
} catch(err) {
H
Hollokin 已提交
474
    console.error('switchCurrentInputMethodAndSubtype err: ' + err);
H
Hollokin 已提交
475
}
476 477
```

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

H
Hollokin 已提交
480
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
481

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

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

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

H
Hollokin 已提交
490
**返回值:**
Z
zhouyongfei 已提交
491

H
Hollokin 已提交
492 493 494
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
495

496
**示例:**
Z
zhouyongfei 已提交
497

498
```js
499
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
500 501
```

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

H
Hollokin 已提交
504
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
505

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

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

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

514
**返回值:**
Z
zhouyongfei 已提交
515

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

520
**示例:**
Z
zhouyongfei 已提交
521

522
```js
H
Hollokin 已提交
523
let inputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
524 525
```

H
Hollokin 已提交
526 527
## InputMethodController

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

530 531 532 533
### stopInputSession<sup>9+</sup>

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

534
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
535

H
update  
Hollokin 已提交
536
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
537 538 539 540 541

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
542
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当结束输入会话成功时,err为undefined,data为true;否则为错误对象。 |
543

H
Hollokin 已提交
544 545
**错误码:**

546
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
547

548
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
549 550 551 552
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

553 554 555
**示例:**

```js
H
Hollokin 已提交
556
try {
H
Hollokin 已提交
557
    inputMethodController.stopInputSession((error, result) => {
H
Hollokin 已提交
558
        if (error) {
H
Hollokin 已提交
559
            console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
560 561 562 563 564 565 566 567
            return;
        }
        if (result) {
            console.info('Success to stopInputSession.(callback)');
        } else {
            console.error('Failed to stopInputSession.(callback)');
        }
    });
H
Hollokin 已提交
568 569
} catch(error) {
    console.error('stopInputSession err: ' + JSON.stringify(error));
H
Hollokin 已提交
570
}
571 572
```

H
Hollokin 已提交
573
### stopInputSession<sup>9+</sup>
574

H
Hollokin 已提交
575
stopInputSession(): Promise&lt;boolean&gt;
576

577
结束输入会话。通过点击输入框实现输入会话的开启之后此接口才可生效。使用promise异步回调。
578

H
update  
Hollokin 已提交
579
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
580 581 582 583 584

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
585
| Promise&lt;boolean&gt; | Promise对象。返回true表示结束输入会话成功;返回false表示结束输入会话失败。 |
586

H
Hollokin 已提交
587 588
**错误码:**

589
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
590

591
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
592 593 594 595
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

596 597 598
**示例:**

```js
H
Hollokin 已提交
599
try {
H
Hollokin 已提交
600
    inputMethodController.stopInputSession().then((result) => {
H
Hollokin 已提交
601
        if (result) {
H
Hollokin 已提交
602
            console.info('Success to stopInputSession.');
H
Hollokin 已提交
603
        } else {
H
Hollokin 已提交
604
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
605 606
        }
    }).catch((err) => {
H
Hollokin 已提交
607
        console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
608 609
    })
} catch(err) {
H
Hollokin 已提交
610
    console.error('stopInputSession err: ' + JSON.stringify(err));
H
Hollokin 已提交
611
}
612 613
```

614
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
615

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

618
显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
619

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

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

**参数:**

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

H
Hollokin 已提交
630 631
**错误码:**

632
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
633

634
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
635 636 637 638
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
639 640 641
**示例:**

```js
H
Hollokin 已提交
642
inputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
643
    if (err === undefined) {
Z
zhaolinglan 已提交
644
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
645
    } else {
Z
zhaolinglan 已提交
646
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
647 648 649 650
    }
})
```

651
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
652

H
Hollokin 已提交
653 654
showSoftKeyboard(): Promise&lt;void&gt;

655
显示软键盘。需要与输入框绑定使用。当点击输入框后,才可通过该接口的调用显示出当前输入法的软键盘。使用Promise异步回调。
Z
zhaolinglan 已提交
656

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

Z
zhaolinglan 已提交
659
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
660 661 662

**返回值:**

Z
zhaolinglan 已提交
663 664
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
665
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
666

H
Hollokin 已提交
667 668
**错误码:**

669
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
670

671
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
672 673 674 675
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
676 677 678
**示例:**

```js
H
Hollokin 已提交
679
inputMethodController.showSoftKeyboard().then(async (err) => {
Z
zhaolinglan 已提交
680 681
    console.log('showSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
682
    console.error('showSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
683 684 685
});
```

686
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
687

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

690
隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用callback异步回调。
Z
zhaolinglan 已提交
691

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

Z
zhaolinglan 已提交
694
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
695 696 697

**参数:**

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

H
Hollokin 已提交
702 703
**错误码:**

704
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
705

706
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
707 708 709 710
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
711 712 713
**示例:**

```js
H
Hollokin 已提交
714
inputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
715
    if (err === undefined) {
Z
zhaolinglan 已提交
716
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
717
    } else {
Z
zhaolinglan 已提交
718
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
719 720 721 722
    }
})
```

723
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
724

Z
zhaolinglan 已提交
725
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
726

727
隐藏软键盘。需要与输入框绑定使用。点击输入框后,才可以使用该接口的调用隐藏软键盘。使用Promise异步回调。
Z
zhaolinglan 已提交
728

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

Z
zhaolinglan 已提交
731
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
732 733 734

**返回值:**

Z
zhaolinglan 已提交
735 736
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
737
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
738

H
Hollokin 已提交
739 740
**错误码:**

741
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
742

743
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
744 745 746 747
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
748 749 750
**示例:**

```js
H
Hollokin 已提交
751
inputMethodController.hideSoftKeyboard().then(async (err) => {
Z
zhaolinglan 已提交
752 753
    console.log('hideSoftKeyboard success');
}).catch((err) => {
H
Hollokin 已提交
754
    console.error('hideSoftKeyboard err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
755 756 757
});
```

H
Hollokin 已提交
758 759 760 761
### stopInput<sup>(deprecated)</sup>

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

762
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用callback异步回调。
H
Hollokin 已提交
763

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

H
update  
Hollokin 已提交
768
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
769 770 771 772 773

**参数:**

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

**示例:**

```js
H
Hollokin 已提交
779
inputMethodController.stopInput((error, result) => {
H
Hollokin 已提交
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795
    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;

796
结束输入会话。通过点击输入框实现输入会话的开启之后该接口的调用才可生效。使用promise异步回调。
H
Hollokin 已提交
797

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

H
update  
Hollokin 已提交
802
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
803 804 805 806 807

**返回值:**

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

**示例:**

```js
H
Hollokin 已提交
813
inputMethodController.stopInput().then((result) => {
H
Hollokin 已提交
814
    if (result) {
H
Hollokin 已提交
815
        console.info('Success to stopInput.');
H
Hollokin 已提交
816
    } else {
H
Hollokin 已提交
817
        console.error('Failed to stopInput.');
H
Hollokin 已提交
818 819
    }
}).catch((err) => {
H
Hollokin 已提交
820
    console.error('stopInput err: ' + err);
H
Hollokin 已提交
821 822 823
})
```

824
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
825

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

H
Hollokin 已提交
828
### on('imeChange')<sup>9+</sup>
829 830 831

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

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

H
update  
Hollokin 已提交
834
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
835 836 837 838 839 840

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示订阅输入法及子类型变化监听事件。 |
841
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 是 | 回调函数,返回输入法属性对象及输入法子类型对象。 |
842 843 844

**示例:**

H
Hollokin 已提交
845
```js
H
Hollokin 已提交
846 847
inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
    console.info('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
848 849
});
```
850

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

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

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

H
update  
Hollokin 已提交
857
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
858 859 860 861 862 863

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                        | 是   | 设置监听类型。<br/>-type为‘imeChange’时表示取消订阅输入法及子类型变化监听事件。 |
864
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 否 | 回调函数,返回取消订阅的输入法属性对象及输入法子类型对象。 |
865 866 867

**示例:**

H
Hollokin 已提交
868
```js
H
Hollokin 已提交
869
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
870
```
871 872 873 874 875

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

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

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

H
update  
Hollokin 已提交
878
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
879 880 881 882 883

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
884
| inputMethodProperty | InputMethodProperty| 是 | 子类型所属的输入法应用。 |
885
| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是 | 回调函数,返回指定输入法应用的所有子类型。 |
886

H
Hollokin 已提交
887 888
**错误码:**

889
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
890

891
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
892 893 894 895
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

896 897
**示例:**

H
Hollokin 已提交
898
```js
H
update  
Hollokin 已提交
899 900
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
901 902
    methodId:'com.example.kikakeyboard',
    extra:{}
H
Hollokin 已提交
903 904
}
try {
H
Hollokin 已提交
905
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
906
        if (err) {
H
Hollokin 已提交
907
            console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
908 909 910 911 912
            return;
        }
        console.log('listInputMethodSubtype success');
    });
} catch (err) {
H
Hollokin 已提交
913
    console.error('listInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
914
}
915 916 917 918 919 920
```

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

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

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

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

H
Hollokin 已提交
925 926 927 928
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
929
| inputMethodProperty | InputMethodProperty| 是 | 子类型所属的输入法应用。 |
H
Hollokin 已提交
930

931 932 933 934
**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
935
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回指定输入法应用的所有子类型。 |
936

H
Hollokin 已提交
937 938
**错误码:**

939
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
940

941
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
942 943 944 945
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

946 947
**示例:**

H
Hollokin 已提交
948
```js
H
Hollokin 已提交
949 950 951
let inputMethodProperty = {
    packageName:'com.example.kikakeyboard',
    methodId:'com.example.kikakeyboard',
952
    extra:{}
H
Hollokin 已提交
953 954
}
try {
H
Hollokin 已提交
955
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
956 957
        console.info('listInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
958
        console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
959 960
    })
} catch(err) {
H
Hollokin 已提交
961
    console.error('listInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
962
}
963 964 965 966 967
```

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

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

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

H
update  
Hollokin 已提交
971
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
972 973 974 975 976

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
977
| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是   | 回调函数,返回当前输入法应用的所有子类型。 |
978

H
Hollokin 已提交
979 980
**错误码:**

981
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
982

983
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
984 985 986 987
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

988 989
**示例:**

H
Hollokin 已提交
990
```js
H
Hollokin 已提交
991
try {
H
Hollokin 已提交
992
    inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
993
        if (err) {
H
Hollokin 已提交
994
            console.error('listCurrentInputMethodSubtype failed: ' + JSON.stringify(err));
H
Hollokin 已提交
995 996 997 998 999
            return;
        }
        console.log('listCurrentInputMethodSubtype success');
    });
} catch(err) {
H
Hollokin 已提交
1000
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
1001
}
1002 1003 1004 1005 1006 1007
```

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

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

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

H
update  
Hollokin 已提交
1010
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1011 1012 1013 1014 1015

**返回值:**

| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
1016
| Promise<Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>> | Promise对象,返回当前输入法应用的所有子类型。 |
1017

H
Hollokin 已提交
1018 1019
**错误码:**

1020
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1021

1022
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1023 1024 1025 1026
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

1027 1028
**示例:**

H
Hollokin 已提交
1029
```js
H
Hollokin 已提交
1030
try {
H
Hollokin 已提交
1031
    inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
H
Hollokin 已提交
1032 1033
        console.info('listCurrentInputMethodSubtype success');
    }).catch((err) => {
H
Hollokin 已提交
1034
        console.error('listCurrentInputMethodSubtype err: ' + err);
H
Hollokin 已提交
1035 1036
    })
} catch(err) {
H
Hollokin 已提交
1037
    console.error('listCurrentInputMethodSubtype err: ' + JSON.stringify(err));
H
Hollokin 已提交
1038
}
1039 1040 1041 1042 1043
```

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

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

1045
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用callback异步回调。
Z
zhaolinglan 已提交
1046

H
update  
Hollokin 已提交
1047
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1048 1049 1050 1051 1052 1053

**参数:**

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

H
Hollokin 已提交
1056 1057
**错误码:**

1058
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1059

1060
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1061 1062 1063 1064
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
1065 1066
**示例:**

H
Hollokin 已提交
1067
```js
H
Hollokin 已提交
1068
try {
H
Hollokin 已提交
1069
    inputMethodSetting.getInputMethods(true, (err,data) => {
H
Hollokin 已提交
1070
        if (err) {
H
Hollokin 已提交
1071
            console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1072 1073 1074 1075 1076
            return;
        }
        console.log('getInputMethods success');
    });
} catch (err) {
H
Hollokin 已提交
1077
    console.error('getInputMethods failed: ' + JSON.stringify(err));
H
Hollokin 已提交
1078
}
Z
zhaolinglan 已提交
1079 1080
```

1081
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
1082

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

1085
获取已激活/未激活输入法列表。参数enable取true,返回已激活输入法列表,取false返回未激活输入法列表。已激活/未激活输入法的确切功能当前版本未支持。当前版本中,已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。使用promise异步回调。
Z
zhaolinglan 已提交
1086

H
update  
Hollokin 已提交
1087
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1088 1089 1090 1091 1092 1093 1094

**参数:**

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

H
Hollokin 已提交
1095 1096
**错误码:**

1097
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1098

1099
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1100 1101 1102 1103
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
| 12800008 | Input method settings extension error. |

Z
zhaolinglan 已提交
1104 1105 1106 1107
**返回值:**

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

**示例:**

H
Hollokin 已提交
1112
```js
H
Hollokin 已提交
1113
try {
H
Hollokin 已提交
1114
    inputMethodSetting.getInputMethods(true).then((data) => {
H
Hollokin 已提交
1115 1116
        console.info('getInputMethods success');
    }).catch((err) => {
H
Hollokin 已提交
1117
        console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1118 1119
    })
} catch(err) {
H
Hollokin 已提交
1120
    console.error('getInputMethods err: ' + JSON.stringify(err));
H
Hollokin 已提交
1121
}
Z
zhaolinglan 已提交
1122 1123
```

H
Hollokin 已提交
1124 1125
### showOptionalInputMethods<sup>9+</sup>

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

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

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

H
update  
Hollokin 已提交
1132
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1133 1134 1135 1136 1137

**参数:**

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

H
Hollokin 已提交
1140 1141
**错误码:**

1142
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1143

1144
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1145 1146 1147
| -------- | -------------------------------------- |
| 12800008 | Input method settings extension error. |

H
Hollokin 已提交
1148 1149
**示例:**

H
Hollokin 已提交
1150
```js
H
Hollokin 已提交
1151
try {
H
Hollokin 已提交
1152
    inputMethodSetting.showOptionalInputMethods((err, data) => {
H
Hollokin 已提交
1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165
        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 已提交
1166
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
1167

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

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

H
update  
Hollokin 已提交
1172
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1173 1174 1175 1176 1177

**返回值:**

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

H
Hollokin 已提交
1180 1181
**错误码:**

1182
以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)
H
Hollokin 已提交
1183

1184
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1185 1186 1187
| -------- | -------------------------------------- |
| 12800008 | Input method settings extension error. |

H
Hollokin 已提交
1188 1189
**示例:**

H
Hollokin 已提交
1190
```js
H
Hollokin 已提交
1191
inputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
1192
    console.info('displayOptionalInputMethod success.');
H
Hollokin 已提交
1193
}).catch((err) => {
H
Hollokin 已提交
1194
    console.error('displayOptionalInputMethod err: ' + err);
H
Hollokin 已提交
1195 1196 1197
})
```

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

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

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

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

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

1210
**参数:**
B
bmeangel 已提交
1211

T
explain  
tianyu 已提交
1212 1213
| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
1214
| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已安装的输入法列表。 |
Z
zhouyongfei 已提交
1215

1216
**示例:**
T
explain  
tianyu 已提交
1217

1218
```js
H
Hollokin 已提交
1219
inputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
1220
    if (err) {
Z
zhaolinglan 已提交
1221
        console.error('listInputMethod failed because: ' + JSON.stringify(err));
1222
        return;
1223
    }
Z
zhaolinglan 已提交
1224
    console.log('listInputMethod success');
1225
 });
1226
```
Z
zhouyongfei 已提交
1227

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

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

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

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

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

1240
**返回值:**
B
bmeangel 已提交
1241

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

1246
**示例:**
1247 1248

```js
H
Hollokin 已提交
1249
inputMethodSetting.listInputMethod().then((data) => {
Z
zhaolinglan 已提交
1250
    console.info('listInputMethod success');
Z
zhaolinglan 已提交
1251
}).catch((err) => {
H
Hollokin 已提交
1252
    console.error('listInputMethod err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1253
})
1254
```
Z
zhouyongfei 已提交
1255

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

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

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

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

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

1268
**参数:**
Z
zhouyongfei 已提交
1269 1270 1271

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

1274
**示例:**
1275 1276

```js
H
Hollokin 已提交
1277
inputMethodSetting.displayOptionalInputMethod((err) => {
Z
zhaolinglan 已提交
1278
    if (err) {
Z
zhaolinglan 已提交
1279
        console.error('displayOptionalInputMethod failed because: ' + JSON.stringify(err));
1280 1281
        return;
    }
Z
zhaolinglan 已提交
1282
    console.info('displayOptionalInputMethod success');
1283
});
1284
```
Z
zhouyongfei 已提交
1285

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

1288 1289
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

H
update  
Hollokin 已提交
1296
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1297 1298 1299 1300 1301

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1302
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1303 1304 1305 1306

**示例:**

```js
H
Hollokin 已提交
1307
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1308
    console.info('displayOptionalInputMethod success');
1309
}).catch((err) => {
H
Hollokin 已提交
1310
    console.error('displayOptionalInputMethod err: ' + err);
1311 1312
})
```