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

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

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


## 导入模块

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

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

常量值。

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

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 40 41
| name<sup>9+</sup>  | string | 是 | 否 | 输入法内部名称。必填。|
| id<sup>9+</sup>    | string | 是 | 否 | 输入法唯一标识。必填。|
| label<sup>9+</sup>    | string | 是 | 否 | 输入法对外显示名称。 非必填。|
| icon<sup>9+</sup>    | string | 是 | 否 | 输入法图标数据。非必填。 |
| iconId<sup>9+</sup>    | number | 是 | 否 | 输入法图标资源号。非必填。 |
| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。 必填。|
| 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
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
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
123
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
124

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

H
Hollokin 已提交
127
```js
H
Hollokin 已提交
128 129 130 131 132 133 134 135
let im = inputMethod.getCurrentInputMethod();
let prop = {
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
    extra: {}
}
H
Hollokin 已提交
136
try{
H
Hollokin 已提交
137 138 139
    inputMethod.switchInputMethod(prop, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
140 141 142
            return;
        }
        if (result) {
H
Hollokin 已提交
143
            console.info('Succeeded in switching inputmethod.');
H
Hollokin 已提交
144
        } else {
H
Hollokin 已提交
145
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
146 147 148
        }
    });
} catch(err) {
H
Hollokin 已提交
149
    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
150
}
G
gaoxiang 已提交
151
```
G
gaoxiang 已提交
152
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
153
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
154

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

H
Hollokin 已提交
157
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
158

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

G
gaoxiang 已提交
161
**参数:**
G
gaoxiang 已提交
162 163 164

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

G
gaoxiang 已提交
167
**返回值:**
B
bmeangel 已提交
168

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

H
Hollokin 已提交
173 174
**错误码:**

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

177
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
178 179
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
180
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
181

G
gaoxiang 已提交
182 183
**示例:**

H
Hollokin 已提交
184
```js
H
Hollokin 已提交
185 186 187 188 189 190 191 192
let im = inputMethod.getCurrentInputMethod();
let prop = {
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
    extra: {}
}
H
Hollokin 已提交
193
try {
H
Hollokin 已提交
194
    inputMethod.switchInputMethod(prop).then((result) => {
H
Hollokin 已提交
195
        if (result) {
H
Hollokin 已提交
196
            console.info('Succeeded in switching inputmethod.');
H
Hollokin 已提交
197
        } else {
H
Hollokin 已提交
198
            console.error('Failed to switchInputMethod.');
H
Hollokin 已提交
199 200
        }
    }).catch((err) => {
H
Hollokin 已提交
201
        console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
202 203
    })
} catch(err) {
H
Hollokin 已提交
204
    console.error('Failed to switchInputMethod: ' + JSON.stringify(err));
H
Hollokin 已提交
205
}
G
gaoxiang 已提交
206
```
207

Z
zhaolinglan 已提交
208 209 210 211
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

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

H
update  
Hollokin 已提交
214
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
215 216 217

**返回值:**

Z
zhaolinglan 已提交
218 219
| 类型                                         | 说明                     |
| -------------------------------------------- | ------------------------ |
220
| [InputMethodProperty](#inputmethodproperty8) | 返回当前输入法属性对象。 |
Z
zhaolinglan 已提交
221 222 223

**示例:**

H
Hollokin 已提交
224
```js
H
Hollokin 已提交
225
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
226 227
```

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

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

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

H
Hollokin 已提交
234
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
235

H
update  
Hollokin 已提交
236
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
237 238 239 240 241

**参数:**

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

H
Hollokin 已提交
245 246
**错误码:**

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

249
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
250 251
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
252
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
253

254 255
**示例:**

H
Hollokin 已提交
256
```js
H
Hollokin 已提交
257
try {
H
Hollokin 已提交
258 259 260 261 262 263 264 265 266 267 268 269 270
    inputMethod.switchCurrentInputMethodSubtype({
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
271 272 273
            return;
        }
        if (result) {
H
Hollokin 已提交
274
            console.info('Succeeded in switching currentInputMethodSubtype.');
H
Hollokin 已提交
275
        } else {
H
Hollokin 已提交
276
            console.error('Failed to switchCurrentInputMethodSubtype');
H
Hollokin 已提交
277 278 279
        }
    });
} catch(err) {
H
Hollokin 已提交
280
    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
281
}
282 283 284 285 286 287
```

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

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

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

H
Hollokin 已提交
290
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
291

H
update  
Hollokin 已提交
292
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
293 294 295 296 297

**参数:**

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

H
Hollokin 已提交
300 301 302 303 304 305
**返回值:**

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

H
Hollokin 已提交
306 307
**错误码:**

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

310
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
311 312
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
313
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
314

315 316
**示例:**

H
Hollokin 已提交
317
```js
H
Hollokin 已提交
318
try {
H
Hollokin 已提交
319 320 321 322 323 324 325 326 327 328 329
    inputMethod.switchCurrentInputMethodSubtype({
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }).then((result) => {
H
Hollokin 已提交
330
        if (result) {
H
Hollokin 已提交
331
            console.info('Succeeded in switching currentInputMethodSubtype.');
H
Hollokin 已提交
332
        } else {
H
Hollokin 已提交
333
            console.error('Failed to switchCurrentInputMethodSubtype.');
H
Hollokin 已提交
334 335
        }
    }).catch((err) => {
H
Hollokin 已提交
336
        console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
337 338
    })
} catch(err) {
H
Hollokin 已提交
339
    console.error('Failed to switchCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
340
}
341 342 343 344 345 346 347 348
```

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

getCurrentInputMethodSubtype(): InputMethodSubtype

获取当前输入法子类型。

H
update  
Hollokin 已提交
349
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
350 351 352 353 354

**返回值:**

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

**示例:**

H
Hollokin 已提交
359
```js
H
Hollokin 已提交
360
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
361 362 363 364
```

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

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

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

H
Hollokin 已提交
369
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
370

H
update  
Hollokin 已提交
371
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
372 373 374 375 376

**参数:**

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

H
Hollokin 已提交
381 382
**错误码:**

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

385
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
386 387
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
388
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
389

390 391
**示例:**

H
Hollokin 已提交
392
```js
H
Hollokin 已提交
393
let im = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
394
let inputMethodProperty = {
H
Hollokin 已提交
395 396 397 398
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
399
    extra: {}
H
Hollokin 已提交
400 401
}
try {
H
Hollokin 已提交
402 403 404 405 406 407 408 409 410 411 412 413 414
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, {
      id: "com.example.kikakeyboard",
      label: "ServiceExtAbility",
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }, (err,result) => {
        if (err !== undefined) {
            console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
415 416 417
            return;
        }
        if (result) {
H
Hollokin 已提交
418
            console.info('Succeeded in switching currentInputMethodAndSubtype.');
H
Hollokin 已提交
419
        } else {
H
Hollokin 已提交
420
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
421 422 423
        }
    });
} catch (err) {
H
Hollokin 已提交
424
    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
425
}
426 427 428 429
```

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

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

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

H
Hollokin 已提交
434
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
435

H
update  
Hollokin 已提交
436
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
437 438 439 440 441

**参数:**

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

H
Hollokin 已提交
445 446 447 448 449 450
**返回值:**

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

H
Hollokin 已提交
451 452
**错误码:**

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

455
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
456 457
| -------- | -------------------------------------- |
| 12800005 | Configuration persisting error.        |
H
Hollokin 已提交
458
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
459

460 461
**示例:**

H
Hollokin 已提交
462
```js
H
Hollokin 已提交
463
let im = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
464
let inputMethodProperty = {
H
Hollokin 已提交
465 466 467 468
    packageName: im.packageName,
    methodId: im.methodId,
    name: im.packageName,
    id: im.methodId,
H
Hollokin 已提交
469
    extra: {}
H
Hollokin 已提交
470 471
}
try {
H
Hollokin 已提交
472 473 474 475 476 477 478 479 480 481 482
    inputMethod.switchCurrentInputMethodAndSubtype(inputMethodProperty, {
      id: im.packageName,
      label: im.methodId,
      name: "",
      mode: "upper",
      locale: "",
      language: "",
      icon: "",
      iconId: 0,
      extra: {}
    }).then((result) => {
H
Hollokin 已提交
483
        if (result) {
H
Hollokin 已提交
484
            console.info('Succeeded in switching currentInputMethodAndSubtype.');
H
Hollokin 已提交
485
        } else {
H
Hollokin 已提交
486
            console.error('Failed to switchCurrentInputMethodAndSubtype.');
H
Hollokin 已提交
487 488
        }
    }).catch((err) => {
H
Hollokin 已提交
489
        console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
490 491
    })
} catch(err) {
H
Hollokin 已提交
492
    console.error('Failed to switchCurrentInputMethodAndSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
493
}
494 495
```

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

H
Hollokin 已提交
498
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
499

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

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

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

H
Hollokin 已提交
508
**返回值:**
Z
zhouyongfei 已提交
509

H
Hollokin 已提交
510 511 512
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
513

514
**示例:**
Z
zhouyongfei 已提交
515

516
```js
517
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
518 519
```

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

H
Hollokin 已提交
522
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
523

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

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

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

532
**返回值:**
Z
zhouyongfei 已提交
533

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

538
**示例:**
Z
zhouyongfei 已提交
539

540
```js
H
Hollokin 已提交
541
let inputMethodSetting = inputMethod.getInputMethodSetting();
Z
zhouyongfei 已提交
542 543
```

H
Hollokin 已提交
544 545
## InputMethodController

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

548 549 550 551
### stopInputSession<sup>9+</sup>

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

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

H
update  
Hollokin 已提交
554
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
555 556 557 558 559

**参数:**

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

H
Hollokin 已提交
562 563
**错误码:**

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

566
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
567 568
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
569
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
570

571 572 573
**示例:**

```js
H
Hollokin 已提交
574
try {
H
Hollokin 已提交
575
    inputMethodController.stopInputSession((error, result) => {
H
Hollokin 已提交
576 577
        if (error !== undefined) {
            console.error('Failed to stopInputSession: ' + JSON.stringify(error));
H
Hollokin 已提交
578 579 580
            return;
        }
        if (result) {
H
Hollokin 已提交
581
            console.info('Succeeded in stopping inputSession.');
H
Hollokin 已提交
582
        } else {
H
Hollokin 已提交
583
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
584 585
        }
    });
H
Hollokin 已提交
586
} catch(error) {
H
Hollokin 已提交
587
    console.error('Failed to stopInputSession: ' + JSON.stringify(error));
H
Hollokin 已提交
588
}
589 590
```

H
Hollokin 已提交
591
### stopInputSession<sup>9+</sup>
592

H
Hollokin 已提交
593
stopInputSession(): Promise&lt;boolean&gt;
594

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

H
update  
Hollokin 已提交
597
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
598 599 600 601 602

**返回值:**

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

H
Hollokin 已提交
605 606
**错误码:**

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

609
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
610 611
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
612
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
613

614 615 616
**示例:**

```js
H
Hollokin 已提交
617
try {
H
Hollokin 已提交
618
    inputMethodController.stopInputSession().then((result) => {
H
Hollokin 已提交
619
        if (result) {
H
Hollokin 已提交
620
            console.info('Succeeded in stopping inputSession.');
H
Hollokin 已提交
621
        } else {
H
Hollokin 已提交
622
            console.error('Failed to stopInputSession.');
H
Hollokin 已提交
623 624
        }
    }).catch((err) => {
H
Hollokin 已提交
625
        console.error('Failed to stopInputSession: ' + JSON.stringify(err));
H
Hollokin 已提交
626 627
    })
} catch(err) {
H
Hollokin 已提交
628
    console.error('Failed to stopInputSession: ' + JSON.stringify(err));
H
Hollokin 已提交
629
}
630 631
```

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

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

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

H
Hollokin 已提交
638
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
639

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

**参数:**

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

H
Hollokin 已提交
648 649
**错误码:**

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

652
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
653 654
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
655
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
656

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

```js
H
Hollokin 已提交
660
inputMethodController.showSoftKeyboard((err) => {
Z
zhaolinglan 已提交
661
    if (err === undefined) {
H
Hollokin 已提交
662
        console.info('Succeeded in showing softKeyboard.');
Z
zhaolinglan 已提交
663
    } else {
H
Hollokin 已提交
664
        console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
665 666 667 668
    }
})
```

669
### showSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
670

H
Hollokin 已提交
671 672
showSoftKeyboard(): Promise&lt;void&gt;

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

H
Hollokin 已提交
675
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
676

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

**返回值:**

Z
zhaolinglan 已提交
681 682
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
683
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
684

H
Hollokin 已提交
685 686
**错误码:**

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

689
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
690 691
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
692
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
693

Z
zhaolinglan 已提交
694 695 696
**示例:**

```js
H
Hollokin 已提交
697 698
inputMethodController.showSoftKeyboard().then(() => {
    console.log('Succeeded in showing softKeyboard.');
Z
zhaolinglan 已提交
699
}).catch((err) => {
H
Hollokin 已提交
700
    console.error('Failed to showSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
701 702 703
});
```

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

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

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

H
Hollokin 已提交
710
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
711

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

**参数:**

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

H
Hollokin 已提交
720 721
**错误码:**

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

724
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
725 726
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
727
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
728

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

```js
H
Hollokin 已提交
732
inputMethodController.hideSoftKeyboard((err) => {
Z
zhaolinglan 已提交
733
    if (err === undefined) {
H
Hollokin 已提交
734
        console.info('Succeeded in hiding softKeyboard.');
Z
zhaolinglan 已提交
735
    } else {
H
Hollokin 已提交
736
        console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
737 738 739 740
    }
})
```

741
### hideSoftKeyboard<sup>9+</sup>
Z
zhaolinglan 已提交
742

Z
zhaolinglan 已提交
743
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
744

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

H
Hollokin 已提交
747
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
748

Z
zhaolinglan 已提交
749
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
750 751 752

**返回值:**

Z
zhaolinglan 已提交
753 754
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
755
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
756

H
Hollokin 已提交
757 758
**错误码:**

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

761
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
762 763
| -------- | -------------------------------------- |
| 12800003 | Input method client error.             |
H
Hollokin 已提交
764
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
765

Z
zhaolinglan 已提交
766 767 768
**示例:**

```js
H
Hollokin 已提交
769 770
inputMethodController.hideSoftKeyboard().then(() => {
    console.log('Succeeded in hiding softKeyboard.');
Z
zhaolinglan 已提交
771
}).catch((err) => {
H
Hollokin 已提交
772
    console.error('Failed to hideSoftKeyboard: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
773 774 775
});
```

H
Hollokin 已提交
776 777 778 779
### stopInput<sup>(deprecated)</sup>

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

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

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

H
update  
Hollokin 已提交
786
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
787 788 789 790 791

**参数:**

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

**示例:**

```js
H
Hollokin 已提交
797
inputMethodController.stopInput((error, result) => {
H
Hollokin 已提交
798 799
    if (error !== undefined) {
        console.error('Failed to stopInput: ' + JSON.stringify(error));
H
Hollokin 已提交
800 801 802
        return;
    }
    if (result) {
H
Hollokin 已提交
803
        console.info('Succeeded in stopping input.');
H
Hollokin 已提交
804
    } else {
H
Hollokin 已提交
805
        console.error('Failed to stopInput.');
H
Hollokin 已提交
806 807 808 809 810 811 812 813
    }
});
```

### stopInput<sup>(deprecated)</sup>

stopInput(): Promise&lt;boolean&gt;

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

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

H
update  
Hollokin 已提交
820
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
821 822 823 824 825

**返回值:**

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

**示例:**

```js
H
Hollokin 已提交
831
inputMethodController.stopInput().then((result) => {
H
Hollokin 已提交
832
    if (result) {
H
Hollokin 已提交
833
        console.info('Succeeded in stopping input.');
H
Hollokin 已提交
834
    } else {
H
Hollokin 已提交
835
        console.error('Failed to stopInput.');
H
Hollokin 已提交
836 837
    }
}).catch((err) => {
H
Hollokin 已提交
838
    console.error('Failed to stopInput: ' + err);
H
Hollokin 已提交
839 840 841
})
```

842
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
843

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

H
Hollokin 已提交
846
### on('imeChange')<sup>9+</sup>
847 848 849

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
863
```js
H
Hollokin 已提交
864 865
inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
    console.info('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
866 867
});
```
868

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

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

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

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

**参数:**

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

**示例:**

H
Hollokin 已提交
886
```js
H
Hollokin 已提交
887
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
888
```
889 890 891 892 893

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

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

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

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

**参数:**

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

H
Hollokin 已提交
905 906
**错误码:**

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

909
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
910 911
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
912
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
913

914 915
**示例:**

H
Hollokin 已提交
916
```js
H
update  
Hollokin 已提交
917
let inputMethodProperty = {
H
Hollokin 已提交
918 919 920 921
    packageName: 'com.example.kikakeyboard',
    methodId: 'com.example.kikakeyboard',
    name: 'com.example.kikakeyboard',
    id: 'com.example.kikakeyboard',
922
    extra:{}
H
Hollokin 已提交
923 924
}
try {
H
Hollokin 已提交
925
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err,data) => {
H
Hollokin 已提交
926 927
        if (err !== undefined) {
            console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
928 929
            return;
        }
H
Hollokin 已提交
930
        console.log('Succeeded in listing inputMethodSubtype.');
H
Hollokin 已提交
931 932
    });
} catch (err) {
H
Hollokin 已提交
933
    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
934
}
935 936 937 938 939 940
```

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

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

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

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

H
Hollokin 已提交
945 946 947 948
**参数:**

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

951 952 953 954
**返回值:**

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

H
Hollokin 已提交
957 958
**错误码:**

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

961
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
962 963
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
964
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
965

966 967
**示例:**

H
Hollokin 已提交
968
```js
H
Hollokin 已提交
969
let inputMethodProperty = {
H
Hollokin 已提交
970 971 972 973
    packageName: 'com.example.kikakeyboard',
    methodId: 'com.example.kikakeyboard',
    name: 'com.example.kikakeyboard',
    id: 'com.example.kikakeyboard',
974
    extra:{}
H
Hollokin 已提交
975 976
}
try {
H
Hollokin 已提交
977
    inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
978
        console.info('Succeeded in listing inputMethodSubtype.');
H
Hollokin 已提交
979
    }).catch((err) => {
H
Hollokin 已提交
980
        console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
981 982
    })
} catch(err) {
H
Hollokin 已提交
983
    console.error('Failed to listInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
984
}
985 986 987 988 989
```

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

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

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

H
update  
Hollokin 已提交
993
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
994 995 996 997 998

**参数:**

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

H
Hollokin 已提交
1001 1002
**错误码:**

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

1005
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1006 1007
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1008
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1009

1010 1011
**示例:**

H
Hollokin 已提交
1012
```js
H
Hollokin 已提交
1013
try {
H
Hollokin 已提交
1014
    inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
H
Hollokin 已提交
1015 1016
        if (err !== undefined) {
            console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1017 1018
            return;
        }
H
Hollokin 已提交
1019
        console.log('Succeeded in listing currentInputMethodSubtype.');
H
Hollokin 已提交
1020 1021
    });
} catch(err) {
H
Hollokin 已提交
1022
    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1023
}
1024 1025 1026 1027 1028 1029
```

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

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

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

H
update  
Hollokin 已提交
1032
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1033 1034 1035 1036 1037

**返回值:**

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

H
Hollokin 已提交
1040 1041
**错误码:**

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

1044
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1045 1046
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1047
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1048

1049 1050
**示例:**

H
Hollokin 已提交
1051
```js
H
Hollokin 已提交
1052
try {
H
Hollokin 已提交
1053
    inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
H
Hollokin 已提交
1054
        console.info('Succeeded in listing currentInputMethodSubtype.');
H
Hollokin 已提交
1055
    }).catch((err) => {
H
Hollokin 已提交
1056
        console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1057 1058
    })
} catch(err) {
H
Hollokin 已提交
1059
    console.error('Failed to listCurrentInputMethodSubtype: ' + JSON.stringify(err));
H
Hollokin 已提交
1060
}
1061 1062 1063 1064 1065
```

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

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

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

H
update  
Hollokin 已提交
1069
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1070 1071 1072 1073 1074 1075

**参数:**

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

H
Hollokin 已提交
1078 1079
**错误码:**

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

1082
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1083 1084
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1085
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1086

Z
zhaolinglan 已提交
1087 1088
**示例:**

H
Hollokin 已提交
1089
```js
H
Hollokin 已提交
1090
try {
H
Hollokin 已提交
1091
    inputMethodSetting.getInputMethods(true, (err,data) => {
H
Hollokin 已提交
1092 1093
        if (err !== undefined) {
            console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1094 1095
            return;
        }
H
Hollokin 已提交
1096
        console.log('Succeeded in getting inputMethods.');
H
Hollokin 已提交
1097 1098
    });
} catch (err) {
H
Hollokin 已提交
1099
    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1100
}
Z
zhaolinglan 已提交
1101 1102
```

1103
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
1104

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

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

H
update  
Hollokin 已提交
1109
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1110 1111 1112 1113 1114 1115 1116

**参数:**

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

H
Hollokin 已提交
1117 1118
**错误码:**

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

1121
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1122 1123
| -------- | -------------------------------------- |
| 12800001 | Package manager error.                 |
H
Hollokin 已提交
1124
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1125

Z
zhaolinglan 已提交
1126 1127 1128 1129
**返回值:**

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

**示例:**

H
Hollokin 已提交
1134
```js
H
Hollokin 已提交
1135
try {
H
Hollokin 已提交
1136
    inputMethodSetting.getInputMethods(true).then((data) => {
H
Hollokin 已提交
1137
        console.info('Succeeded in getting inputMethods.');
H
Hollokin 已提交
1138
    }).catch((err) => {
H
Hollokin 已提交
1139
        console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1140 1141
    })
} catch(err) {
H
Hollokin 已提交
1142
    console.error('Failed to getInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1143
}
Z
zhaolinglan 已提交
1144 1145
```

H
Hollokin 已提交
1146 1147
### showOptionalInputMethods<sup>9+</sup>

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

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

H
Hollokin 已提交
1152
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
1153

H
update  
Hollokin 已提交
1154
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1155 1156 1157 1158 1159

**参数:**

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

H
Hollokin 已提交
1162 1163
**错误码:**

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

1166
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1167
| -------- | -------------------------------------- |
H
Hollokin 已提交
1168
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1169

H
Hollokin 已提交
1170 1171
**示例:**

H
Hollokin 已提交
1172
```js
H
Hollokin 已提交
1173
try {
H
Hollokin 已提交
1174
    inputMethodSetting.showOptionalInputMethods((err, data) => {
H
Hollokin 已提交
1175 1176
        if (err !== undefined) {
            console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1177 1178
            return;
        }
H
Hollokin 已提交
1179
        console.info('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
1180 1181
    });
} catch (err) {
H
Hollokin 已提交
1182
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1183 1184 1185 1186 1187
}
```

### showOptionalInputMethods<sup>9+</sup>

H
Hollokin 已提交
1188
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
1189

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

H
Hollokin 已提交
1192
**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。
H
Hollokin 已提交
1193

H
update  
Hollokin 已提交
1194
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
1195 1196 1197 1198 1199

**返回值:**

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

H
Hollokin 已提交
1202 1203
**错误码:**

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

1206
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1207
| -------- | -------------------------------------- |
H
Hollokin 已提交
1208
| 12800008 | Input method manager service error. |
H
Hollokin 已提交
1209

H
Hollokin 已提交
1210 1211
**示例:**

H
Hollokin 已提交
1212
```js
H
Hollokin 已提交
1213
inputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
1214
    console.info('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
1215
}).catch((err) => {
H
Hollokin 已提交
1216
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
H
Hollokin 已提交
1217 1218 1219
})
```

H
Hollokin 已提交
1220
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1221 1222 1223

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

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

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

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

1232
**参数:**
B
bmeangel 已提交
1233

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

1238
**示例:**
T
explain  
tianyu 已提交
1239

1240
```js
H
Hollokin 已提交
1241
inputMethodSetting.listInputMethod((err,data) => {
H
Hollokin 已提交
1242 1243
    if (err !== undefined) {
        console.error('Failed to listInputMethod: ' + JSON.stringify(err));
1244
        return;
1245
    }
H
Hollokin 已提交
1246
    console.log('Succeeded in listing inputMethod.');
1247
 });
1248
```
Z
zhouyongfei 已提交
1249

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

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

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

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

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

1262
**返回值:**
B
bmeangel 已提交
1263

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

1268
**示例:**
1269 1270

```js
H
Hollokin 已提交
1271
inputMethodSetting.listInputMethod().then((data) => {
H
Hollokin 已提交
1272
    console.info('Succeeded in listing inputMethod.');
Z
zhaolinglan 已提交
1273
}).catch((err) => {
H
Hollokin 已提交
1274
    console.error('Failed to listInputMethod: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
1275
})
1276
```
Z
zhouyongfei 已提交
1277

H
Hollokin 已提交
1278
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
1279 1280 1281

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

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

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

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

1290
**参数:**
Z
zhouyongfei 已提交
1291 1292 1293

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

1296
**示例:**
1297 1298

```js
H
Hollokin 已提交
1299
inputMethodSetting.displayOptionalInputMethod((err) => {
H
Hollokin 已提交
1300 1301
    if (err !== undefined) {
        console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1302 1303
        return;
    }
H
Hollokin 已提交
1304
    console.info('Succeeded in displaying optionalInputMethod.');
1305
});
1306
```
Z
zhouyongfei 已提交
1307

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

1310 1311
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

H
update  
Hollokin 已提交
1318
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1319 1320 1321 1322 1323

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
1324
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1325 1326 1327 1328

**示例:**

```js
H
Hollokin 已提交
1329
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
1330
    console.info('Succeeded in displaying optionalInputMethod.');
1331
}).catch((err) => {
H
Hollokin 已提交
1332
    console.error('Failed to displayOptionalInputMethod: ' + JSON.stringify(err));
1333 1334
})
```