js-apis-inputmethod.md 101.0 KB
Newer Older
N
update  
ningning 已提交
1
# @ohos.inputMethod (输入法框架) 
Z
zhouyongfei 已提交
2

N
update  
ningning 已提交
3
本模块主要面向普通前台应用(备忘录、信息、设置等系统应用与三方应用),提供对输入法(输入法应用)的控制、管理能力,包括显示/隐藏输入法软键盘、切换输入法、获取所有输入法列表等等。
T
explain  
tianyu 已提交
4

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


## 导入模块

12
```js
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
| name<sup>9+</sup>  | string | 是 | 否 | 必填。输入法内部名称。|
| id<sup>9+</sup>    | string | 是 | 否 | 必填。输入法唯一标识。|
| label<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称。|
| labelId<sup>10+</sup>    | string | 是 | 否 | 非必填。输入法对外显示名称资源号。|
C
mod  
cy7717 已提交
38
| icon<sup>9+</sup>    | string | 是 | 否 | 非必填。输入法图标数据,可以通过iconId查询获取。预留字段,暂不支持使用。|
H
Hollokin 已提交
39
| iconId<sup>9+</sup>    | number | 是 | 否 | 非必填。输入法图标资源号。 |
C
mod  
cy7717 已提交
40
| extra<sup>9+</sup>    | object | 是 | 是 | 输入法扩展信息。预留字段,当前无具体含义,暂不支持使用。<br/>- API version 10起:非必填;<br/>- API version 9:必填。|
N
update  
ningning 已提交
41 42
| 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 已提交
43

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

getController(): InputMethodController

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

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

**返回值:**

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

H
Hollokin 已提交
58 59
**错误码:**

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

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

66 67
**示例:**

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

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

getSetting(): InputMethodSetting

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

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

**返回值:**

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

H
Hollokin 已提交
86 87
**错误码:**

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

90
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
91
| -------- | -------------------------------------- |
92
| 12800007 |  settings extension error. |
H
Hollokin 已提交
93

94 95
**示例:**

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

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

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

N
update  
ningning 已提交
104
切换输入法,仅系统应用可用。使用callback异步回调。
105

N
update  
ningning 已提交
106
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
107

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

**参数:**

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

H
Hollokin 已提交
117 118
**错误码:**

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

121
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
122
| -------- | -------------------------------------- |
123 124
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
125

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

H
Hollokin 已提交
128
```js
H
Hollokin 已提交
129
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
130
try{
H
Hollokin 已提交
131
  inputMethod.switchInputMethod(currentIme, (err, result) => {
132
    if (err) {
H
Hollokin 已提交
133
      console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
134 135 136
      return;
    }
    if (result) {
H
Hollokin 已提交
137
      console.log('Succeeded in switching inputmethod.');
138 139 140 141
    } else {
      console.error('Failed to switchInputMethod.');
    }
  });
H
Hollokin 已提交
142
} catch(err) {
H
Hollokin 已提交
143
  console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
H
Hollokin 已提交
144
}
G
gaoxiang 已提交
145
```
G
gaoxiang 已提交
146
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
147
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
148

N
update  
ningning 已提交
149
切换输入法,仅系统应用可用。使用promise异步回调。
G
gaoxiang 已提交
150

N
update  
ningning 已提交
151
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
152

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

G
gaoxiang 已提交
155
**参数:**
G
gaoxiang 已提交
156 157 158

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
159
  |target |  [InputMethodProperty](#inputmethodproperty8)| 是 | 目标输入法。 |
G
gaoxiang 已提交
160

G
gaoxiang 已提交
161
**返回值:**
B
bmeangel 已提交
162

G
gaoxiang 已提交
163 164
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
165
  | Promise\<boolean> | Promise对象。返回true表示切换输入法成功,返回false表示切换输入法失败。 |
G
gaoxiang 已提交
166

H
Hollokin 已提交
167 168
**错误码:**

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

171
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
172
| -------- | -------------------------------------- |
173 174
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
175

G
gaoxiang 已提交
176 177
**示例:**

H
Hollokin 已提交
178
```js
H
Hollokin 已提交
179
let currentIme = inputMethod.getCurrentInputMethod();
H
Hollokin 已提交
180
try {
H
Hollokin 已提交
181
  inputMethod.switchInputMethod(currentIme).then((result) => {
182
    if (result) {
H
Hollokin 已提交
183
      console.log('Succeeded in switching inputmethod.');
184 185 186 187
    } else {
      console.error('Failed to switchInputMethod.');
    }
  }).catch((err) => {
H
Hollokin 已提交
188
    console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
189 190
  })
} catch(err) {
H
Hollokin 已提交
191
  console.error(`Failed to switchInputMethod: ${JSON.stringify(err)}`);
H
Hollokin 已提交
192
}
G
gaoxiang 已提交
193
```
194

Z
zhaolinglan 已提交
195 196 197 198
## inputMethod.getCurrentInputMethod<sup>9+</sup>

getCurrentInputMethod(): InputMethodProperty

N
update  
ningning 已提交
199
使用同步方法获取当前输入法。
Z
zhaolinglan 已提交
200

H
update  
Hollokin 已提交
201
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
202 203 204

**返回值:**

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

**示例:**

H
Hollokin 已提交
211
```js
H
Hollokin 已提交
212
let currentIme = inputMethod.getCurrentInputMethod();
Z
zhaolinglan 已提交
213 214
```

H
update  
Hollokin 已提交
215
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
216

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

N
update  
ningning 已提交
219 220 221 222 223
切换当前输入法的子类型。使用callback异步回调。

> **说明:**
>
> 在API version 9版本,仅支持系统应用调用;API version 10版本起,支持系统应用和当前输入法应用调用。
224

N
update  
ningning 已提交
225
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
226

H
update  
Hollokin 已提交
227
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
228 229 230 231 232

**参数:**

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

H
Hollokin 已提交
236 237
**错误码:**

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

240
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
241
| -------- | -------------------------------------- |
242 243
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
244

245 246
**示例:**

H
Hollokin 已提交
247
```js
H
Hollokin 已提交
248
try {
249 250 251 252 253 254 255 256 257 258 259 260
  inputMethod.switchCurrentInputMethodSubtype({
    id: "ServiceExtAbility",
    label: "",
    name: "com.example.kikakeyboard",
    mode: "upper",
    locale: "",
    language: "",
    icon: "",
    iconId: 0,
    extra: {}
  }, (err, result) => {
    if (err) {
H
Hollokin 已提交
261
      console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
262 263 264
      return;
    }
    if (result) {
H
Hollokin 已提交
265
      console.log('Succeeded in switching currentInputMethodSubtype.');
266 267 268 269
    } else {
      console.error('Failed to switchCurrentInputMethodSubtype');
    }
  });
H
Hollokin 已提交
270
} catch(err) {
H
Hollokin 已提交
271
  console.error(`Failed to switchCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
272
}
273 274
```

H
update  
Hollokin 已提交
275
## inputMethod.switchCurrentInputMethodSubtype<sup>9+</sup>
276 277 278

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

N
update  
ningning 已提交
279
切换当前输入法的子类型。使用promise异步回调。
280

N
update  
ningning 已提交
281 282 283 284 285
> **说明:**
>
> 在API version 9版本,仅支持系统应用调用;API version 10版本起,支持系统应用和当前输入法应用调用。

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

H
update  
Hollokin 已提交
287
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
288 289 290 291 292

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
293
|target |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
294

H
Hollokin 已提交
295 296 297 298
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
299
| Promise\<boolean> | Promise对象。返回true表示当前输入法切换子类型成功,返回false表示当前输入法切换子类型成功失败。 |
H
Hollokin 已提交
300

H
Hollokin 已提交
301 302
**错误码:**

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

305
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
306
| -------- | -------------------------------------- |
307 308
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
309

310 311
**示例:**

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

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

getCurrentInputMethodSubtype(): InputMethodSubtype

N
update  
ningning 已提交
342
获取当前输入法的子类型。
343

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

**返回值:**

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

**示例:**

H
Hollokin 已提交
354
```js
H
Hollokin 已提交
355
let currentImeSubType = inputMethod.getCurrentInputMethodSubtype();
356 357 358 359
```

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

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

N
update  
ningning 已提交
362
切换至指定输入法的指定子类型,适用于跨输入法切换子类型,仅系统应用可用。使用callback异步回调。
363

N
update  
ningning 已提交
364
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
365

H
update  
Hollokin 已提交
366
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
367 368 369 370 371

**参数:**

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

H
Hollokin 已提交
376 377
**错误码:**

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

380
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
381
| -------- | -------------------------------------- |
382 383
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
384

385 386
**示例:**

H
Hollokin 已提交
387
```js
H
Hollokin 已提交
388
let currentIme = inputMethod.getCurrentInputMethod();
389
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
390
try {
H
Hollokin 已提交
391
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType, (err,result) => {
392
    if (err) {
H
Hollokin 已提交
393
      console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
394 395 396
      return;
    }
    if (result) {
H
Hollokin 已提交
397
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
398 399 400 401
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
  });
H
Hollokin 已提交
402
} catch (err) {
H
Hollokin 已提交
403
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
404
}
405 406 407 408
```

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

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

N
update  
ningning 已提交
411
切换至指定输入法的指定子类型,适用于跨输入法切换子类型,仅系统应用可用。使用promise异步回调。
412

N
update  
ningning 已提交
413
**需要权限:** ohos.permission.CONNECT_IME_ABILITY
414

H
update  
Hollokin 已提交
415
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
416 417 418 419 420

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
421 422
|inputMethodProperty |  [InputMethodProperty](#inputmethodproperty8)| 是 | 目标输入法。 |
|inputMethodSubtype |  [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)| 是 | 目标输入法子类型。 |
423

H
Hollokin 已提交
424 425 426 427
**返回值:**

| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
N
update  
ningning 已提交
428
| Promise\<boolean> | Promise对象。返回true表示切换至指定输入法的指定子类型成功,返回false表示切换至指定输入法的指定子类型失败。 |
H
Hollokin 已提交
429

H
Hollokin 已提交
430 431
**错误码:**

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

434
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
435
| -------- | -------------------------------------- |
436 437
| 12800005 | configuration persisting error.        |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
438

439 440
**示例:**

H
Hollokin 已提交
441
```js
H
Hollokin 已提交
442
let currentIme = inputMethod.getCurrentInputMethod();
443
let imSubType = inputMethod.getCurrentInputMethodSubtype();
H
Hollokin 已提交
444
try {
H
Hollokin 已提交
445
  inputMethod.switchCurrentInputMethodAndSubtype(currentIme, imSubType).then((result) => {
446
    if (result) {
H
Hollokin 已提交
447
      console.log('Succeeded in switching currentInputMethodAndSubtype.');
448 449 450 451
    } else {
      console.error('Failed to switchCurrentInputMethodAndSubtype.');
    }
  }).catch((err) => {
H
Hollokin 已提交
452
    console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
453 454
  })
} catch(err) {
H
Hollokin 已提交
455
  console.error(`Failed to switchCurrentInputMethodAndSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
456
}
457 458
```

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

H
Hollokin 已提交
461
getInputMethodController(): InputMethodController
Z
zhouyongfei 已提交
462

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

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

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

H
Hollokin 已提交
471
**返回值:**
Z
zhouyongfei 已提交
472

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

477
**示例:**
Z
zhouyongfei 已提交
478

479
```js
480
let inputMethodController = inputMethod.getInputMethodController();
Z
zhouyongfei 已提交
481 482
```

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

H
Hollokin 已提交
485
getInputMethodSetting(): InputMethodSetting
Z
zhouyongfei 已提交
486

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

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

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

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

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

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

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

507 508
## TextInputType<sup>10+</sup>

H
update  
Hollokin 已提交
509
文本输入类型。
510

H
Hollokin 已提交
511
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
512 513 514 515 516

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| NONE  | -1 |NONE。 |
| TEXT  | 0 |文本类型。 |
517 518 519 520 521 522 523
| MULTILINE  | 1 |多行类型。 |
| NUMBER  | 2 |数字类型。 |
| PHONE  | 3 |电话号码类型。 |
| DATETIME  | 4 |日期类型。 |
| EMAIL_ADDRESS  | 5 |邮箱地址类型。 |
| URL  | 6 |链接类型。 |
| VISIBLE_PASSWORD  | 7 |密码类型。 |
524 525 526

## EnterKeyType<sup>10+</sup>

N
update  
ningning 已提交
527
Enter键的功能类型。
528

H
Hollokin 已提交
529
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
530 531 532 533

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| UNSPECIFIED  | 0 |未指定。 |
534 535 536 537 538 539 540
| NONE  | 1 |NONE。 |
| GO  | 2 |前往。 |
| SEARCH  | 3 |查找。 |
| SEND  | 4 |发送。 |
| NEXT  | 5 |下一步。 |
| DONE  | 6 |完成。 |
| PREVIOUS  | 7 |上一步。 |
541 542 543 544 545

## KeyboardStatus<sup>10+</sup>

输入法软键盘状态。

H
Hollokin 已提交
546
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
547 548 549 550 551 552 553 554 555 556 557

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| NONE  | 0 |NONE。 |
| HIDE  | 1 |隐藏状态。 |
| SHOW  | 2 |显示状态。 |

## Direction<sup>10+</sup>

光标移动方向。

H
Hollokin 已提交
558
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
559 560 561 562

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| CURSOR_UP  | 1 |向上。 |
563 564 565
| CURSOR_DOWN  | 2 |向下。 |
| CURSOR_LEFT  | 3 |向左。 |
| CURSOR_RIGHT  | 4 |向右。 |
566 567 568

## ExtendAction<sup>10+</sup>

N
update  
ningning 已提交
569
编辑框中文本的扩展编辑操作类型,如剪切、复制等。
570

H
Hollokin 已提交
571
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591

| 名称 | 值 |说明 |
| -------- | -------- |-------- |
| SELECT_ALL  | 0 |全选。 |
| CUT  | 3 |剪切。 |
| COPY  | 4 |复制。 |
| PASTE  | 5 |粘贴。 |

## FunctionKey<sup>10+</sup>

输入法功能键类型。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| enterKeyType<sup>10+</sup>  | [EnterKeyType](#enterkeytype10) | 是 | 是 | 输入法enter键类型。|

## InputAttribute<sup>10+</sup>

N
update  
ningning 已提交
592
编辑框属性,包含文本输入类型和Enter键功能类型。
593 594 595 596 597 598

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| textInputType<sup>10+</sup>  | [TextInputType](#textinputtype10) | 是 | 是 | 文本输入类型。|
H
update  
Hollokin 已提交
599
| enterKeyType<sup>10+</sup>  | [EnterKeyType](#enterkeytype10) | 是 | 是 | Enter键功能类型。|
600 601 602

## TextConfig<sup>10+</sup>

N
update  
ningning 已提交
603
编辑框的配置信息。
604 605 606

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

607
| 名称 | 类型 | 只读 | 必填 | 说明 |
608
| -------- | -------- | -------- | -------- | -------- |
609 610
| inputAttribute<sup>10+</sup>  | [InputAttribute](#inputattribute10) | 否 | 是 | 编辑框属性。|
| cursorInfo<sup>10+</sup>  | [CursorInfo](#cursorinfo10) | 否 | 否 | 光标信息。|
N
update  
ningning 已提交
611 612
| selection<sup>10+</sup>  | [Range](#range10) | 否 | 否 | 文本选中的范围。|
| windowId<sup>10+</sup>  | number | 否 | 否 | 编辑框所在的窗口Id。|
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628

## CursorInfo<sup>10+</sup>

光标信息。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| left  | number | 是 | 是 | 光标的left坐标。|
| top  | number | 是 | 是 | 光标的top坐标。|
| width  | number | 是 | 是 | 光标的宽度。|
| height  | number | 是 | 是 | 光标的高度。|

## Range<sup>10+</sup>

N
update  
ningning 已提交
629
文本的选中范围。
630 631 632 633 634 635 636 637 638 639

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| start  | number | 是 | 是 | 选中文本的首字符在编辑框的索引值。|
| end  | number | 是 | 是 | 选中文本的末字符在编辑框的索引值。|

## Movement<sup>10+</sup>

N
update  
ningning 已提交
640
选中文本时,光标移动的方向。
641 642 643 644 645

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
646
| direction  | [Direction](#direction10) | 是 | 是 | 选中文本时,光标的移动方向。|
647

648 649 650 651 652 653 654 655
## InputWindowInfo<sup>10+</sup>

输入法软键盘的窗口信息。

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

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
H
update  
Hollokin 已提交
656
| name  | string | 是 | 是 | 输入法窗口的名称。|
H
Hollokin 已提交
657 658 659 660
| left  | number | 是 | 是 | 输入法窗口左上顶点的横坐标,单位为px。|
| top  | number | 是 | 是 | 输入法窗口左上顶点的纵坐标,单位为px。|
| width  | number | 是 | 是 | 输入法窗口的宽度,单位为px。|
| height  | number | 是 | 是 | 输入法窗口的高度,单位为px。|
661

H
Hollokin 已提交
662 663
## InputMethodController

N
update  
ningning 已提交
664
下列API示例中都需使用[getController](#inputmethodgetcontroller9)获取到InputMethodController实例,再通过实例调用对应方法。
665 666 667 668 669

### attach<sup>10+</sup>

attach(showKeyboard: boolean, textConfig: TextConfig, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
670
自绘控件绑定输入法。使用callback异步回调。
H
换行  
Hollokin 已提交
671

N
update  
ningning 已提交
672 673 674
> **说明**
>
> 需要先调用此接口,完成自绘控件与输入法的绑定,才能使用以下功能:显示/隐藏键盘、更新光标信息、更改编辑框选中范围、保存配置信息、监听处理由输入法应用发送的信息或命令等。
675 676 677 678 679 680 681

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
682 683
| showKeyboard | boolean | 是 | 绑定输入法成功后,是否拉起输入法键盘。<br>- ture表示拉起,false表示不拉起。 |
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑框的配置信息。 |
684 685 686 687 688 689 690 691
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当绑定输入法成功后,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
692 693
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
694 695 696 697 698

**示例:**

```js
try {
699 700 701 702 703 704 705 706 707 708 709
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
  inputMethodController.attach(true, textConfig, (err) => {
    if (err) {
      console.error(`Failed to attach: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
710
    console.log('Succeeded in attaching the inputMethod.');
711
  });
H
Hollokin 已提交
712 713
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
714 715 716 717 718 719 720
}
```

### attach<sup>10+</sup>

attach(showKeyboard: boolean, textConfig: TextConfig): Promise&lt;void&gt;

N
update  
ningning 已提交
721
自绘控件绑定输入法。使用promise异步回调。
H
换行  
Hollokin 已提交
722

N
update  
ningning 已提交
723 724 725
> **说明**
>
> 需要先调用此接口,完成自绘控件与输入法的绑定,才能使用以下功能:显示/隐藏键盘、更新光标信息、更改编辑框选中范围、保存配置信息、监听处理由输入法应用发送的信息或命令等。
726 727 728 729 730 731 732

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
733 734
| showKeyboard | boolean | 是 | 绑定输入法成功后,是否拉起输入法键盘。<br>- ture表示拉起,false表示不拉起。|
| textConfig | [TextConfig](#textconfig10) | 是 | 编辑框的配置信息。 |
735 736 737 738 739 740 741 742 743 744 745 746 747

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
748 749
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
750 751 752 753 754

**示例:**

```js
try {
755 756 757 758 759 760 761
  let textConfig: inputMethod.TextConfig = {
    inputAttribute: {
      textInputType: 0,
      enterKeyType: 1
    }
  };
  inputMethodController.attach(true, textConfig).then(() => {
H
Hollokin 已提交
762
    console.log('Succeeded in attaching inputMethod.');
763 764 765
  }).catch((err) => {
    console.error(`Failed to attach: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
766 767
} catch(err) {
  console.error(`Failed to attach: ${JSON.stringify(err)}`);
768 769 770 771 772 773 774
}
```

### showTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
775
进入文本编辑状态。使用callback异步回调。
H
换行  
Hollokin 已提交
776

N
update  
ningning 已提交
777 778 779
> **说明**
>
> 编辑框与输入法绑定成功后,可调用该接口拉起软键盘,进入文本编辑状态。
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。若成功进入编辑状态,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
795 796 797
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
798 799 800 801 802

**示例:**

```js
inputMethodController.showTextInput((err) => {
803 804 805 806
  if (err) {
    console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
807
  console.log('Succeeded in showing the inputMethod.');
808 809 810 811 812 813 814
});
```

### showTextInput<sup>10+</sup>

showTextInput(): Promise&lt;void&gt;

H
update  
Hollokin 已提交
815
进入文本编辑状态。使用promise异步回调。
H
换行  
Hollokin 已提交
816

N
update  
ningning 已提交
817 818 819
> **说明**
>
> 编辑框与输入法绑定成功后,可调用该接口拉起软键盘,进入文本编辑状态。
820 821 822 823 824 825 826 827 828 829 830 831 832 833 834

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
835 836 837
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
838 839 840 841 842

**示例:**

```js
inputMethodController.showTextInput().then(() => {
H
Hollokin 已提交
843
  console.log('Succeeded in showing text input.');
844
}).catch((err) => {
845
  console.error(`Failed to showTextInput: ${JSON.stringify(err)}`);
846 847 848 849 850 851 852
});
```

### hideTextInput<sup>10+</sup>

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

H
update  
Hollokin 已提交
853
退出文本编辑状态。使用callback异步回调。
H
换行  
Hollokin 已提交
854

N
update  
ningning 已提交
855 856 857 858 859
> **说明**
>
> 调用接口时,若软键盘处于显示状态,调用接口后软键盘会被隐藏。
>
> 调用该接口不会解除与输入法的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入文本编辑状态。
860 861 862 863 864 865 866 867 868 869 870 871 872 873 874

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功退出编辑状态时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
875 876 877
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
878 879 880 881 882

**示例:**

```js
inputMethodController.hideTextInput((err) => {
883 884 885 886
  if (err) {
    console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
887
  console.log('Succeeded in hiding text input.');
888 889 890 891 892 893 894
});
```

### hideTextInput<sup>10+</sup>

hideTextInput(): Promise&lt;void&gt;

H
update  
Hollokin 已提交
895
退出文本编辑状态。使用promise异步回调。
H
换行  
Hollokin 已提交
896

N
update  
ningning 已提交
897 898 899 900 901
> **说明**
>
> 调用接口时,若软键盘处于显示状态,调用接口后软键盘会被隐藏。
>
> 调用该接口不会解除与输入法的绑定,再次调用[showTextInput](#showtextinput10)时,可重新进入文本编辑状态。
902 903 904 905 906 907 908 909 910 911 912 913 914 915 916

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
917 918 919
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
920 921 922 923

**示例:**

```js
H
Hollokin 已提交
924
inputMethodController.hideTextInput().then(() => {
H
Hollokin 已提交
925
  console.log('Succeeded in hiding inputMethod.');
H
Hollokin 已提交
926 927 928
}).catch((err) => {
  console.error(`Failed to hideTextInput: ${JSON.stringify(err)}`);
})
929 930 931 932 933 934
```

### detach<sup>10+</sup>

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

N
update  
ningning 已提交
935
自绘控件解除与输入法的绑定。使用callback异步回调。
936 937 938 939 940 941 942 943 944 945 946 947 948 949 950

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当解绑定输入法成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
951 952
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
953 954 955 956 957

**示例:**

```js
inputMethodController.detach((err) => {
958 959 960 961
  if (err) {
    console.error(`Failed to detach: ${JSON.stringify(err)}`);
    return;
  }
H
Hollokin 已提交
962
  console.log('Succeeded in detaching inputMethod.');
963 964 965 966 967 968 969
});
```

### detach<sup>10+</sup>

detach(): Promise&lt;void&gt;

N
update  
ningning 已提交
970
自绘控件解除与输入法的绑定。使用promise异步回调。
971 972 973 974 975 976 977 978 979 980 981 982 983 984 985

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
986 987
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
988 989 990 991 992

**示例:**

```js
inputMethodController.detach().then(() => {
H
Hollokin 已提交
993
  console.log('Succeeded in detaching inputMethod.');
H
Hollokin 已提交
994 995
}).catch((err) => {
  console.error(`Failed to detach: ${JSON.stringify(err)}`);
996 997 998 999 1000 1001 1002
});
```

### setCallingWindow<sup>10+</sup>

setCallingWindow(windowId: number, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1003
设置要避让软键盘的窗口。使用callback异步回调。
H
换行  
Hollokin 已提交
1004

N
update  
ningning 已提交
1005 1006 1007
> **说明**
>
> 将绑定到输入法的应用程序所在的窗口Id传入,此窗口可以避让输入法窗口。
1008 1009 1010 1011 1012 1013 1014

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1015
| windowId | number | 是 | 绑定输入法应用的应用程序所在的窗口Id。 |
1016 1017 1018 1019 1020 1021 1022 1023
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当设置成功时,err为undefined;否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1024 1025 1026
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1027 1028 1029 1030 1031

**示例:**

```js
try {
1032 1033 1034 1035 1036 1037
  let windowId: number = 2000;
  inputMethodController.setCallingWindow(windowId, (err) => {
    if (err) {
      console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1038
    console.log('Succeeded in setting callingWindow.');
1039
  });
H
Hollokin 已提交
1040 1041
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1042 1043 1044 1045 1046 1047 1048
}
```

### setCallingWindow<sup>10+</sup>

setCallingWindow(windowId: number): Promise&lt;void&gt;

N
update  
ningning 已提交
1049
设置要避让软键盘的窗口。使用promise异步回调。
H
换行  
Hollokin 已提交
1050

N
update  
ningning 已提交
1051 1052 1053
> **说明**
>
> 将绑定到输入法的应用程序所在的窗口Id传入,此窗口可以避让输入法窗口。
1054 1055 1056 1057 1058 1059 1060

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1061
| windowId | number | 是 | 绑定输入法应用的应用程序所在的窗口Id。 |
1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1075 1076 1077
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1078 1079 1080 1081 1082

**示例:**

```js
try {
1083 1084
  let windowId: number = 2000;
  inputMethodController.setCallingWindow(windowId).then(() => {
H
Hollokin 已提交
1085
    console.log('Succeeded in setting callingWindow.');
1086 1087 1088
  }).catch((err) => {
    console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1089 1090
} catch(err) {
  console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
1091 1092 1093 1094 1095 1096 1097
}
```

### updateCursor<sup>10+</sup>

updateCursor(cursorInfo: CursorInfo, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1098
更新当前编辑框内的光标信息。当光标信息发生变化时,调用该接口使输入法感知到光标变化。使用callback异步回调。
1099 1100 1101 1102 1103 1104 1105 1106

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| cursorInfo | [CursorInfo](#cursorinfo10) | 是 | 光标信息。 |
H
update  
Hollokin 已提交
1107
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当光标信息更新成功时,err为undefined;否则为错误对象。 |
1108 1109 1110 1111 1112 1113 1114

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1115 1116 1117
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1118 1119 1120 1121 1122

**示例:**

```js
try {
1123 1124 1125 1126 1127
  inputMethodController.updateCursor({left: 0, top: 0, width: 600, height: 800}, (err) => {
    if (err) {
      console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1128
    console.log('Succeeded in updating cursorInfo.');
1129
  });
H
Hollokin 已提交
1130 1131
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1132 1133 1134 1135 1136 1137 1138
}
```

### updateCursor<sup>10+</sup>

updateCursor(cursorInfo: CursorInfo): Promise&lt;void&gt;

N
update  
ningning 已提交
1139
更新当前编辑框内的光标信息。当光标信息发生变化时,调用该接口使输入法感知到光标变化。使用promise异步回调。
1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| cursorInfo | [CursorInfo](#cursorinfo10) | 是 | 光标信息。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1161 1162 1163
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1164 1165 1166 1167 1168

**示例:**

```js
try {
1169
  inputMethodController.updateCursor({left: 0, top: 0, width: 600, height: 800}).then(() => {
H
Hollokin 已提交
1170
    console.log('Succeeded in updating cursorInfo.');
1171 1172 1173
  }).catch((err) => {
    console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1174 1175
} catch(err) {
  console.error(`Failed to updateCursor: ${JSON.stringify(err)}`);
1176 1177 1178 1179 1180 1181 1182
}
```

### changeSelection<sup>10+</sup>

changeSelection(text: string, start: number, end: number, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1183
更新当前编辑框内被选中的文本信息。当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息,使输入法应用感知到变化。使用callback异步回调。
1184 1185 1186 1187 1188 1189 1190 1191 1192 1193

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 整个输入文本。 |
| start | number | 是 | 所选文本的起始位置。 |
| end | number | 是 | 所选文本的结束位置。 |
N
update  
ningning 已提交
1194
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当文本信息更新成功时,err为undefined;否则为错误对象。 |
1195 1196 1197 1198 1199 1200 1201

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1202 1203 1204
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1205 1206 1207 1208 1209

**示例:**

```js
try {
1210 1211 1212 1213 1214
  inputMethodController.changeSelection('text', 0, 5, (err) => {
    if (err) {
      console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1215
    console.log('Succeeded in changing selection.');
1216
  });
H
Hollokin 已提交
1217 1218
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1219 1220 1221 1222 1223 1224 1225
}
```

### changeSelection<sup>10+</sup>

changeSelection(text: string, start: number, end: number): Promise&lt;void&gt;

N
update  
ningning 已提交
1226
更新当前编辑框内被选中的文本信息。当选中的文本内容或文本范围发生变化时,可调用该接口更新文本信息,使输入法应用感知到变化。使用promise异步回调。
1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 整个输入文本。 |
| start | number | 是 | 所选文本的起始位置。 |
| end | number | 是 | 所选文本的结束位置。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1250 1251 1252
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1253 1254 1255 1256 1257

**示例:**

```js
try {
1258
  inputMethodController.changeSelection('test', 0, 5).then(() => {
H
Hollokin 已提交
1259
    console.log('Succeeded in changing selection.');
1260 1261 1262
  }).catch((err) => {
    console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1263 1264
} catch(err) {
  console.error(`Failed to changeSelection: ${JSON.stringify(err)}`);
1265 1266 1267 1268 1269 1270 1271
}
```

### updateAttribute<sup>10+</sup>

updateAttribute(attribute: InputAttribute, callback: AsyncCallback&lt;void&gt;): void

N
update  
ningning 已提交
1272
更新编辑框属性信息。使用callback异步回调。
1273 1274 1275 1276 1277 1278 1279

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1280 1281
| attribute | [InputAttribute](#inputattribute10) | 是 | 编辑框属性对象。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当编辑框属性信息更新成功时,err为undefined;否则为错误对象。 |
1282 1283 1284 1285 1286 1287 1288

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1289 1290 1291
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached.             |
1292 1293 1294 1295 1296

**示例:**

```js
try {
1297 1298 1299 1300 1301
  inputMethodController.updateAttribute({textInputType: 0, enterKeyType: 1}, (err) => {
    if (err) {
      console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
      return;
    }
H
Hollokin 已提交
1302
    console.log('Succeeded in updating attribute.');
1303
  });
H
Hollokin 已提交
1304 1305
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1306 1307 1308 1309 1310 1311 1312
}
```

### updateAttribute<sup>10+</sup>

updateAttribute(attribute: InputAttribute): Promise&lt;void&gt;

N
update  
ningning 已提交
1313
更新编辑框属性信息。使用promise异步回调。
1314 1315 1316 1317 1318 1319 1320

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1321
| attribute | [InputAttribute](#inputattribute10) | 是 |  编辑框属性对象。 |
1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1335 1336 1337
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
| 12800009 | input method client is detached. |
1338 1339 1340 1341 1342

**示例:**

```js
try {
1343
  inputMethodController.updateAttribute({textInputType: 0, enterKeyType: 1}).then(() => {
H
Hollokin 已提交
1344
    console.log('Succeeded in updating attribute.');
1345 1346 1347
  }).catch((err) => {
    console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
  })
H
Hollokin 已提交
1348 1349
} catch(err) {
  console.error(`Failed to updateAttribute: ${JSON.stringify(err)}`);
1350 1351 1352 1353 1354 1355 1356
}
```

### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
1357
结束输入会话。使用callback异步回调。
H
换行  
Hollokin 已提交
1358

N
update  
ningning 已提交
1359 1360 1361
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376

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

**参数:**

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

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1377 1378
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1379 1380 1381 1382 1383

**示例:**

```js
try {
H
Hollokin 已提交
1384 1385 1386
  inputMethodController.stopInputSession((err, result) => {
    if (err) {
      console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1387 1388 1389
      return;
    }
    if (result) {
H
Hollokin 已提交
1390
      console.log('Succeeded in stopping inputSession.');
1391 1392 1393 1394
    } else {
      console.error('Failed to stopInputSession.');
    }
  });
H
Hollokin 已提交
1395 1396
} catch(err) {
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1397 1398 1399 1400 1401 1402 1403
}
```

### stopInputSession<sup>9+</sup>

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

H
Hollokin 已提交
1404
结束输入会话。使用promise异步回调。
H
换行  
Hollokin 已提交
1405

N
update  
ningning 已提交
1406 1407 1408
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
1409 1410 1411 1412 1413 1414 1415

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
N
update  
ningning 已提交
1416
| Promise&lt;boolean&gt; | Promise对象。返回true表示结束输入会话成功,返回false表示结束输入会话失败。 |
1417 1418 1419 1420 1421 1422 1423

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1424 1425
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1426 1427 1428 1429 1430

**示例:**

```js
try {
1431 1432
  inputMethodController.stopInputSession().then((result) => {
    if (result) {
H
Hollokin 已提交
1433
      console.log('Succeeded in stopping inputSession.');
1434 1435 1436 1437
    } else {
      console.error('Failed to stopInputSession.');
    }
  }).catch((err) => {
H
Hollokin 已提交
1438
    console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1439 1440
  })
} catch(err) {
H
Hollokin 已提交
1441
  console.error(`Failed to stopInputSession: ${JSON.stringify(err)}`);
1442 1443 1444 1445 1446 1447 1448
}
```

### showSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1449
显示输入法软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1450

N
update  
ningning 已提交
1451 1452 1453
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用显示当前输入法的软键盘。
1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**参数:**

| 参数名   | 类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘显示成功。err为undefined,否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1471 1472
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1473 1474 1475 1476 1477

**示例:**

```js
inputMethodController.showSoftKeyboard((err) => {
1478
  if (!err) {
H
Hollokin 已提交
1479
    console.log('Succeeded in showing softKeyboard.');
1480
  } else {
H
Hollokin 已提交
1481
    console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1482
  }
1483 1484 1485 1486 1487 1488 1489
})
```

### showSoftKeyboard<sup>9+</sup>

showSoftKeyboard(): Promise&lt;void&gt;

N
update  
ningning 已提交
1490
显示输入法软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1491

N
update  
ningning 已提交
1492 1493 1494
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用显示当前输入法的软键盘。
1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**返回值:**

| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1512 1513
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1514 1515 1516 1517 1518

**示例:**

```js
inputMethodController.showSoftKeyboard().then(() => {
1519
  console.log('Succeeded in showing softKeyboard.');
1520
}).catch((err) => {
H
Hollokin 已提交
1521
  console.error(`Failed to show softKeyboard: ${JSON.stringify(err)}`);
1522 1523 1524 1525 1526 1527 1528
});
```

### hideSoftKeyboard<sup>9+</sup>

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

N
update  
ningning 已提交
1529
隐藏输入法软键盘。使用callback异步回调。
H
换行  
Hollokin 已提交
1530

N
update  
ningning 已提交
1531 1532 1533
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用隐藏当前输入法的软键盘。
1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**参数:**

| 参数名   | 类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当软键盘隐藏成功。err为undefined,否则为错误对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1551 1552
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1553 1554 1555 1556 1557

**示例:**

```js
inputMethodController.hideSoftKeyboard((err) => {
1558
  if (!err) {
H
Hollokin 已提交
1559
    console.log('Succeeded in hiding softKeyboard.');
1560
  } else {
H
Hollokin 已提交
1561
    console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1562
  }
1563 1564 1565 1566 1567 1568 1569
})
```

### hideSoftKeyboard<sup>9+</sup>

hideSoftKeyboard(): Promise&lt;void&gt;

N
update  
ningning 已提交
1570
隐藏输入法软键盘。使用Promise异步回调。
H
换行  
Hollokin 已提交
1571

N
update  
ningning 已提交
1572 1573 1574
> **说明:**
>
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用隐藏当前输入法的软键盘。
1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591

**需要权限:** ohos.permission.CONNECT_IME_ABILITY,仅系统应用可用。

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

**返回值:**

| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1592 1593
| 12800003 | input method client error.             |
| 12800008 | input method manager service error. |
1594 1595 1596 1597 1598

**示例:**

```js
inputMethodController.hideSoftKeyboard().then(() => {
1599
  console.log('Succeeded in hiding softKeyboard.');
1600
}).catch((err) => {
H
Hollokin 已提交
1601
  console.error(`Failed to hide softKeyboard: ${JSON.stringify(err)}`);
1602 1603 1604 1605 1606 1607 1608
});
```

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

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

H
Hollokin 已提交
1609
结束输入会话。使用callback异步回调。
H
换行  
Hollokin 已提交
1610

1611
> **说明:** 
N
update  
ningning 已提交
1612 1613 1614
> 
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
> 
1615
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1616 1617 1618 1619 1620 1621 1622

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
N
update  
ningning 已提交
1623
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当会话结束成功,err为undefined,data为true;否则为错误对象。 |
1624 1625 1626 1627

**示例:**

```js
H
Hollokin 已提交
1628 1629 1630
inputMethodController.stopInput((err, result) => {
  if (err) {
    console.error(`Failed to stopInput: ${JSON.stringify(err)}`);
1631 1632 1633
    return;
  }
  if (result) {
H
Hollokin 已提交
1634
    console.log('Succeeded in stopping input.');
1635 1636 1637
  } else {
    console.error('Failed to stopInput.');
  }
1638 1639 1640 1641 1642 1643 1644
});
```

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

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

H
Hollokin 已提交
1645
结束输入会话。使用promise异步回调。
H
换行  
Hollokin 已提交
1646

1647
> **说明:** 
N
update  
ningning 已提交
1648 1649 1650
> 
> 该接口需要编辑框与输入法绑定时才能调用,即点击编辑控件后,才可调用该接口结束输入会话。
> 
1651
> 从API version 6开始支持,从API version 9开始废弃,建议使用[stopInputSession()](#stopinputsession9)替代。
1652 1653 1654 1655 1656 1657 1658

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
N
update  
ningning 已提交
1659
| Promise&lt;boolean&gt; | Promise对象。返回true表示会话结束成功;返回false表示会话结束失败。 |
1660 1661 1662 1663 1664

**示例:**

```js
inputMethodController.stopInput().then((result) => {
1665
  if (result) {
H
Hollokin 已提交
1666
    console.log('Succeeded in stopping input.');
1667 1668 1669
  } else {
    console.error('Failed to stopInput.');
  }
1670
}).catch((err) => {
H
Hollokin 已提交
1671
  console.error(`Failed to stopInput: ${JSON.stringify(err)}`);
1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686
})
```

### on('insertText')<sup>10+</sup>

on(type: 'insertText', callback: (text: string) => void): void;

订阅输入法应用插入文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1687 1688
| type     | string                                                       | 是   | 设置监听类型,固定取值为'insertText'。 |
| callback | (text: string) => void | 是   | 回调函数,返回需要插入的文本内容。<br/>根据传入的文本,在回调函数中操作编辑框中的内容。 |
1689 1690 1691 1692 1693 1694 1695

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1696
| 12800009 | input method client is detached. |
1697 1698 1699 1700 1701

**示例:**

```js
try {
1702
  inputMethodController.on('insertText', (text) => {
H
Hollokin 已提交
1703
    console.log(`Succeeded in subscribing insertText: ${text}`);
1704
  });
H
Hollokin 已提交
1705 1706
} catch(err) {
  console.error(`Failed to subscribe insertText: ${JSON.stringify(err)}`);
1707 1708 1709 1710 1711
}
```

### off('insertText')<sup>10+</sup>

G
guojin31 已提交
1712
off(type: 'insertText', callback?: (text: string) => void): void
1713 1714 1715 1716 1717 1718 1719

取消订阅输入法应用插入文本事件。

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

**参数:**

G
guojin31 已提交
1720 1721
| 参数名   | 类型                   | 必填 | 说明                                                         |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1722 1723
| type     | string                 | 是   | 设置监听类型,固定取值为'insertText'。 |
| callback | (text: string) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br/>参数不填写时,取消订阅type对应的所有回调事件。 |
1724 1725 1726 1727

**示例:**

```js
G
guojin31 已提交
1728 1729 1730 1731
let onInsertTextCallback = (text: string) => {
    console.log(`Succeeded in subscribing insertText: ${text}`);
};
inputMethodController.off('insertText', onInsertTextCallback);
H
Hollokin 已提交
1732
inputMethodController.off('insertText');
1733 1734
```

1735
### on('deleteLeft')<sup>10+</sup>
1736

1737
on(type: 'deleteLeft', callback: (length: number) => void): void
1738

1739
订阅输入法应用向左删除事件。使用callback异步回调。
1740 1741 1742 1743 1744

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

**参数:**

H
update  
Hollokin 已提交
1745 1746
| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
N
update  
ningning 已提交
1747 1748
| type     | string  | 是   | 设置监听类型,固定取值为'deleteLeft'。|
| callback | (length: number) => void | 是   | 回调函数,返回需要向左删除的文本长度。<br/>根据传入的删除长度,在回调函数中操作编辑框中的文本。 |
1749 1750 1751 1752 1753 1754 1755

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
1756
| 12800009 | input method client is detached. |
1757 1758 1759 1760 1761

**示例:**

```js
try {
1762
  inputMethodController.on('deleteLeft', (length) => {
H
Hollokin 已提交
1763
    console.log(`Succeeded in subscribing deleteLeft, length: ${length}`);
1764
  });
H
Hollokin 已提交
1765 1766
} catch(err) {
  console.error(`Failed to subscribe deleteLeft: ${JSON.stringify(err)}`);
1767
}
1768 1769
```

N
update  
ningning 已提交
1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794
### off('deleteLeft')<sup>10+</sup>

off(type: 'deleteLeft', callback?: (length: number) => void): void

取消订阅输入法应用向左删除文本事件。

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

**参数:**

| 参数名   | 类型                     | 必填 | 说明                                                         |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                   | 是   | 设置监听,固定取值为'deleteLeft'。 |
| callback | (length: number) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |

**示例:**

```js
let onDeleteLeftCallback = (length: number) => {
    console.log(`Succeeded in subscribing deleteLeft, length: ${length}`);
};
inputMethodController.off('deleteLeft', onDeleteLeftCallback);
inputMethodController.off('deleteLeft');
```

1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806
### on('deleteRight')<sup>10+</sup>

on(type: 'deleteRight', callback: (length: number) => void): void

订阅输入法应用向右删除事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ----- | ---- | ----- |
N
update  
ningning 已提交
1807 1808
| type     | string  | 是   | 设置监听类型,固定取值为'deleteRight'。|
| callback | (length: number) => void | 是   | 回调函数,返回需要向右删除的文本长度。<br/>根据传入的删除长度,在回调函数中操作编辑框中的文本。 |
1809 1810 1811 1812 1813 1814 1815 1816

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |
1817

1818 1819 1820
**示例:**

```js
1821
try {
1822
  inputMethodController.on('deleteRight', (length) => {
H
Hollokin 已提交
1823
    console.log(`Succeeded in subscribing deleteRight, length: ${length}`);
1824
  });
H
Hollokin 已提交
1825 1826
} catch(err) {
  console.error(`Failed to subscribe deleteRight: ${JSON.stringify(err)}`);
1827 1828
}
```
1829 1830 1831

### off('deleteRight')<sup>10+</sup>

G
guojin31 已提交
1832
off(type: 'deleteRight', callback?: (length: number) => void): void
1833 1834 1835 1836 1837 1838 1839

取消订阅输入法应用向右删除文本事件。

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

**参数:**

G
guojin31 已提交
1840 1841
| 参数名   | 类型                     | 必填 | 说明                                                         |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1842 1843
| type     | string                   | 是   | 设置监听类型,固定取值为`deleteRight`。 |
| callback | (length: number) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
1844 1845 1846 1847

**示例:**

```js
G
guojin31 已提交
1848 1849 1850 1851
let onDeleteRightCallback = (length: number) => {
    console.log(`Succeeded in subscribing deleteRight, length: ${length}`);
};
inputMethodController.off('deleteRight', onDeleteRightCallback);
H
Hollokin 已提交
1852
inputMethodController.off('deleteRight');
1853 1854 1855 1856
```

### on('sendKeyboardStatus')<sup>10+</sup>

G
guojin31 已提交
1857
on(type: 'sendKeyboardStatus', callback: (keyboardStatus: KeyboardStatus) => void): void
1858

N
update  
ningning 已提交
1859
订阅输入法应用发送输入法软键盘状态事件。使用callback异步回调。
1860

H
update  
Hollokin 已提交
1861
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1862 1863 1864

**参数:**

H
update  
Hollokin 已提交
1865 1866
| 参数名   | 类型  | 必填 | 说明    |
| -------- | ------ | ---- | ---- |
N
update  
ningning 已提交
1867 1868
| type     | string  | 是   | 设置监听类型,固定取值为'sendKeyboardStatus'。 |
| callback | (keyboardStatus: [KeyboardStatus](#keyboardstatus10)) => void | 是   | 回调函数,返回软键盘状态。<br/>根据传入的软键盘状态,在回调函数中做相应操作。 |
1869

H
Hollokin 已提交
1870 1871
**错误码:**

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

1874
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1875
| -------- | -------------------------------------- |
1876
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1877

1878 1879 1880
**示例:**

```js
H
Hollokin 已提交
1881
try {
G
guojin31 已提交
1882 1883
  inputMethodController.on('sendKeyboardStatus', (keyboardStatus) => {
    console.log(`Succeeded in subscribing sendKeyboardStatus, keyboardStatus: ${keyboardStatus}`);
1884
  });
H
Hollokin 已提交
1885 1886
} catch(err) {
  console.error(`Failed to subscribe sendKeyboardStatus: ${JSON.stringify(err)}`);
H
Hollokin 已提交
1887
}
1888 1889
```

1890
### off('sendKeyboardStatus')<sup>10+</sup>
1891

G
guojin31 已提交
1892
off(type: 'sendKeyboardStatus', callback?: (keyboardStatus: KeyboardStatus) => void): void
1893

N
update  
ningning 已提交
1894
取消订阅输入法应用发送软键盘状态事件。
1895

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

1898
**参数:**
1899

G
guojin31 已提交
1900 1901
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1902 1903
| type     | string                                                       | 是   | 设置监听类型,固定取值为'sendKeyboardStatus'。 |
| callback | (keyboardStatus: [KeyboardStatus](#keyboardstatus10)) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1904 1905 1906 1907

**示例:**

```js
G
guojin31 已提交
1908 1909
let onSendKeyboardStatus = (keyboardStatus: KeyboardStatus) => {
    console.log(`Succeeded in subscribing sendKeyboardStatus, keyboardStatus: ${keyboardStatus}`);
G
guojin31 已提交
1910 1911
};
inputMethodController.off('sendKeyboardStatus', onSendKeyboardStatus);
H
Hollokin 已提交
1912
inputMethodController.off('sendKeyboardStatus');
1913 1914
```

1915
### on('sendFunctionKey')<sup>10+</sup>
Z
zhaolinglan 已提交
1916

1917
on(type: 'sendFunctionKey', callback: (functionKey: FunctionKey) => void): void
Z
zhaolinglan 已提交
1918

1919
订阅输入法应用发送功能键事件。使用callback异步回调。
H
Hollokin 已提交
1920

1921
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1922 1923 1924

**参数:**

H
update  
Hollokin 已提交
1925 1926
| 参数名   | 类型  | 必填 | 说明     |
| -------- | -------- | ---- | ----- |
N
update  
ningning 已提交
1927 1928
| type     | string  | 是   | 设置监听类型,固定取值为'sendFunctionKey'。|
| callback | (functionKey: [FunctionKey](#functionkey10)) => void | 是   | 回调函数,返回输入法应用发送的功能键信息。<br/>根据返回的功能键信息,做相应操作。 |
Z
zhaolinglan 已提交
1929

H
Hollokin 已提交
1930 1931
**错误码:**

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

1934
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
1935
| -------- | -------------------------------------- |
1936
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1937

Z
zhaolinglan 已提交
1938 1939 1940
**示例:**

```js
1941
try {
1942
  inputMethodController.on('sendFunctionKey', (functionKey) => {
H
Hollokin 已提交
1943
    console.log(`Succeeded in subscribing sendFunctionKey, functionKey.enterKeyType: ${functionKey.enterKeyType}`);
1944
  });
H
Hollokin 已提交
1945 1946
} catch(err) {
  console.error(`Failed to subscribe sendFunctionKey: ${JSON.stringify(err)}`);
1947
}
Z
zhaolinglan 已提交
1948 1949
```

1950
### off('sendFunctionKey')<sup>10+</sup>
H
Hollokin 已提交
1951

G
guojin31 已提交
1952
off(type: 'sendFunctionKey', callback?: (functionKey: FunctionKey) => void): void
Z
zhaolinglan 已提交
1953

N
update  
ningning 已提交
1954
取消订阅输入法应用发送功能键事件。
H
Hollokin 已提交
1955

1956
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1957

1958
**参数:**
Z
zhaolinglan 已提交
1959

G
guojin31 已提交
1960 1961
| 参数名   | 类型                                                 | 必填 | 说明                                                         |
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
1962 1963
| type     | string                                               | 是   | 设置监听类型,固定取值为'sendFunctionKey'。 |
| callback | (functionKey: [FunctionKey](#functionkey10)) => void | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhaolinglan 已提交
1964 1965 1966 1967

**示例:**

```js
G
guojin31 已提交
1968 1969 1970 1971
let onSendFunctionKey = (functionKey: FunctionKey) => {
    console.log(`Succeeded in subscribing sendFunctionKey, functionKey: ${functionKey.enterKeyType}`);
};
inputMethodController.off('sendFunctionKey', onSendFunctionKey);
H
Hollokin 已提交
1972
inputMethodController.off('sendFunctionKey');
Z
zhaolinglan 已提交
1973 1974
```

1975
### on('moveCursor')<sup>10+</sup>
Z
zhaolinglan 已提交
1976

1977
on(type: 'moveCursor', callback: (direction: Direction) => void): void
Z
zhaolinglan 已提交
1978

1979
订阅输入法应用移动光标事件。使用callback异步回调。
H
Hollokin 已提交
1980

1981
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1982 1983 1984

**参数:**

H
update  
Hollokin 已提交
1985 1986
| 参数名   | 类型 | 必填 | 说明   |
| -------- | ------ | ---- | ------ |
N
update  
ningning 已提交
1987 1988
| type     | string | 是   | 设置监听类型,固定取值为'moveCursor'。 |
| callback | callback: (direction: [Direction<sup>10+</sup>](#direction10)) => void | 是   | 回调函数,返回光标信息。<br/>根据返回的光标移动方向,改变光标位置,如光标向上或向下。  |
Z
zhaolinglan 已提交
1989

H
Hollokin 已提交
1990 1991
**错误码:**

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

H
Hollokin 已提交
1994 1995
| 错误码ID | 错误信息                           |
| -------- | -------------------------------- |
1996
| 12800009 | input method client is detached. |
H
Hollokin 已提交
1997

Z
zhaolinglan 已提交
1998 1999 2000
**示例:**

```js
2001
try {
2002
  inputMethodController.on('moveCursor', (direction) => {
H
Hollokin 已提交
2003
    console.log(`Succeeded in subscribing moveCursor, direction: ${direction}`);
2004
  });
H
Hollokin 已提交
2005 2006
} catch(err) {
  console.error(`Failed to subscribe moveCursor: ${JSON.stringify(err)}`);
2007
}
Z
zhaolinglan 已提交
2008 2009
```

2010
### off('moveCursor')<sup>10+</sup>
Z
zhaolinglan 已提交
2011

G
guojin31 已提交
2012
off(type: 'moveCursor', callback?: (direction: Direction) => void): void
Z
zhaolinglan 已提交
2013

2014
取消订阅输入法应用移动光标事件。
H
Hollokin 已提交
2015

2016
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2017

2018
**参数:**
Z
zhaolinglan 已提交
2019

H
Hollokin 已提交
2020 2021
| 参数名  | 类型    | 必填 | 说明  |
| ------ | ------ | ---- | ---- |
N
update  
ningning 已提交
2022 2023
| type   | string | 是   | 设置监听类型,固定取值为'moveCursor'。 |
| callback | (direction: [Direction<sup>10+</sup>](#direction10)) => void | 否 | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
zhaolinglan 已提交
2024 2025 2026 2027

**示例:**

```js
G
guojin31 已提交
2028 2029 2030 2031
let onMoveCursorCallback = (direction: Direction) => {
    console.log(`Succeeded in subscribing moveCursor, direction: ${direction}`);
};
inputMethodController.off('moveCursor', onMoveCursorCallback);
H
Hollokin 已提交
2032
inputMethodController.off('moveCursor');
Z
zhaolinglan 已提交
2033 2034
```

2035
### on('handleExtendAction')<sup>10+</sup>
H
Hollokin 已提交
2036

2037
on(type: 'handleExtendAction', callback: (action: ExtendAction) => void): void
H
Hollokin 已提交
2038

N
update  
ningning 已提交
2039
订阅输入法应用发送扩展编辑操作事件。使用callback异步回调。
H
Hollokin 已提交
2040

H
update  
Hollokin 已提交
2041
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
2042 2043 2044

**参数:**

H
update  
Hollokin 已提交
2045 2046
| 参数名   | 类型  | 必填 | 说明   |
| -------- | ------ | ---- | -------- |
N
update  
ningning 已提交
2047 2048
| type     | string    | 是   | 设置监听类型,固定取值为'handleExtendAction'。 |
| callback | callback: (action: [ExtendAction](#extendaction10)) => void | 是   | 回调函数,返回扩展编辑操作类型。<br/>根据传入的扩展编辑操作类型,做相应的操作,如剪切、复制等。|
2049 2050 2051 2052 2053 2054 2055

**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
2056
| 12800009 | input method client is detached. |
H
Hollokin 已提交
2057 2058 2059 2060

**示例:**

```js
2061
try {
2062
  inputMethodController.on('handleExtendAction', (action) => {
H
Hollokin 已提交
2063
    console.log(`Succeeded in subscribing handleExtendAction, action: ${action}`);
2064
  });
H
Hollokin 已提交
2065 2066
} catch(err) {
  console.error(`Failed to subscribe handleExtendAction: ${JSON.stringify(err)}`);
2067
}
H
Hollokin 已提交
2068 2069
```

2070
### off('handleExtendAction')<sup>10+</sup>
H
Hollokin 已提交
2071

G
guojin31 已提交
2072
off(type: 'handleExtendAction', callback?: (action: ExtendAction) => void): void
H
Hollokin 已提交
2073

N
update  
ningning 已提交
2074
取消订阅输入法应用发送扩展编辑操作事件。使用callback异步回调。
H
Hollokin 已提交
2075

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

2078
**参数:**
H
Hollokin 已提交
2079

H
update  
Hollokin 已提交
2080 2081
| 参数名 | 类型   | 必填 | 说明  |
| ------ | ------ | ---- | ------- |
N
update  
ningning 已提交
2082 2083
| type   | string | 是   | 设置监听类型,固定取值为'handleExtendAction'。 |
| callback | (action: [ExtendAction](#extendaction10)) => void | 否 | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2084

H
Hollokin 已提交
2085 2086 2087
**示例:**

```js
G
guojin31 已提交
2088 2089 2090 2091
let onHandleExtendActionCallback = (action: ExtendAction) => {
    console.log(`Succeeded in subscribing handleExtendAction, action: ${action}`);
};
inputMethodController.off('handleExtendAction', onHandleExtendActionCallback);
H
Hollokin 已提交
2092
inputMethodController.off('handleExtendAction');
H
Hollokin 已提交
2093 2094
```

Z
add doc  
zhaolinglan 已提交
2095 2096 2097 2098 2099 2100 2101 2102 2103 2104
### on('selectByRange')<sup>10+</sup>

on(type: 'selectByRange', callback: Callback&lt;Range&gt;): void

订阅输入法应用按范围选中文本事件。使用callback异步回调。

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

**参数:**

H
update  
Hollokin 已提交
2105 2106
| 参数名   | 类型     | 必填 | 说明     |
| -------- | ---- | ---- | ------- |
N
update  
ningning 已提交
2107 2108
| type     | string  | 是   | 设置监听类型,固定取值为'selectByRange'。 |
| callback | Callback&lt;[Range](#range10)&gt; | 是   | 回调函数,返回需要选中的文本范围。<br/>根据传入的文本范围,开发者在回调函数中编辑框中相应文本。|
Z
add doc  
zhaolinglan 已提交
2109 2110 2111 2112 2113

**示例:**

```js
inputMethodController.on('selectByRange', (range) => {
H
Hollokin 已提交
2114
  console.log(`Succeeded in subscribing selectByRange: start: ${range.start} , end: ${range.end}`);
Z
add doc  
zhaolinglan 已提交
2115 2116 2117 2118 2119
});
```

### off('selectByRange')<sup>10+</sup>

G
guojin31 已提交
2120
off(type: 'selectByRange', callback?:  Callback&lt;Range&gt;): void
Z
add doc  
zhaolinglan 已提交
2121

N
update  
ningning 已提交
2122
取消订阅输入法应用按范围选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2123 2124 2125 2126 2127

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

**参数:**

G
guojin31 已提交
2128 2129
| 参数名   | 类型                              | 必填 | 说明                                                         |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2130 2131
| type     | string                            | 是   | 设置监听类型,固定取值为'selectByRange'。 |
| callback | Callback&lt;[Range](#range10)&gt; | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
add doc  
zhaolinglan 已提交
2132 2133 2134 2135

**示例:**

```js
G
guojin31 已提交
2136 2137 2138 2139
let onSelectByRangeCallback = (range: Range) => {
    console.log(`Succeeded in subscribing selectByRange, range: ${JSON.stringify(range)}`);
};
inputMethodController.off('selectByRange', onSelectByRangeCallback);
Z
add doc  
zhaolinglan 已提交
2140 2141 2142 2143 2144
inputMethodController.off('selectByRange');
```

### on('selectByMovement')<sup>10+</sup>

2145
on(type: 'selectByMovement', callback: Callback&lt;Movement&gt;): void
Z
add doc  
zhaolinglan 已提交
2146

N
update  
ningning 已提交
2147
订阅输入法应用按光标移动方向,选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2148 2149 2150 2151 2152

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

**参数:**

H
update  
Hollokin 已提交
2153 2154
| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2155 2156
| type     | string  | 是   | 设置监听类型,固定取值为'selectByMovement'。 |
| callback | Callback&lt;[Movement](#movement10)&gt; | 是   | 回调函数,返回光标移动的方向。<br/>根据传入的光标移动方向,选中编辑框中相应文本。 |
Z
add doc  
zhaolinglan 已提交
2157 2158 2159 2160 2161

**示例:**

```js
inputMethodController.on('selectByMovement', (movement) => {
H
Hollokin 已提交
2162
  console.log('Succeeded in subscribing selectByMovement: direction: ' + movement.direction);
Z
add doc  
zhaolinglan 已提交
2163 2164 2165 2166 2167
});
```

### off('selectByMovement')<sup>10+</sup>

G
guojin31 已提交
2168
off(type: 'selectByMovement', callback?: Callback&lt;Movement&gt;): void
Z
add doc  
zhaolinglan 已提交
2169

N
update  
ningning 已提交
2170
取消订阅输入法应用按光标移动方向,选中文本事件。使用callback异步回调。
Z
add doc  
zhaolinglan 已提交
2171 2172 2173 2174 2175

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

**参数:**

G
guojin31 已提交
2176 2177
| 参数名   | 类型                                 | 必填 | 说明                                                         |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2178 2179
| type     | string                               | 是   | 设置监听类型,固定取值为'selectByMovement'。 |
| callback | Callback&lt;[Movement](#movement10)> | 否   | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
Z
add doc  
zhaolinglan 已提交
2180 2181 2182 2183

**示例:**

```js
G
guojin31 已提交
2184 2185 2186 2187
let onSelectByMovementCallback = (movement: Movement) => {
    console.log(`Succeeded in subscribing selectByMovement, movement.direction: ${movement.direction}`);
};
inputMethodController.off('selectByMovement', onSelectByMovementCallback);
Z
add doc  
zhaolinglan 已提交
2188 2189 2190
inputMethodController.off('selectByMovement');
```

C
cy7717 已提交
2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202
### on('getLeftTextOfCursor')<sup>10+</sup>

on(type: 'getLeftTextOfCursor', callback: (length: number) => string): void;

订阅输入法应用获取光标左侧指定长度文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2203 2204
| type     | string  | 是   | 设置监听类型,固定取值为'getLeftTextOfCursor'。 |
| callback | (length: number) => string | 是   | 回调函数,获取编辑框最新状态下光标左侧指定长度的文本内容并返回。 |
C
cy7717 已提交
2205

C
cy7717 已提交
2206 2207 2208 2209 2210 2211 2212 2213
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2214 2215 2216 2217 2218
**示例:**

```js
try {
  inputMethodController.on('getLeftTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2219
    console.info(`Succeeded in subscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2220
    let text:string = "";
C
mod  
cy7717 已提交
2221
    return text;
C
cy7717 已提交
2222 2223
  });
} catch(err) {
C
mod  
cy7717 已提交
2224
  console.error(`Failed to subscribe getLeftTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2225 2226 2227 2228 2229 2230 2231
}
```

### off('getLeftTextOfCursor')<sup>10+</sup>

off(type: 'getLeftTextOfCursor', callback?: (length: number) => string): void;

N
update  
ningning 已提交
2232
取消订阅输入法应用获取光标左侧指定长度文本事件。使用callback异步回调。
C
cy7717 已提交
2233 2234 2235 2236 2237 2238 2239

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2240 2241
| type   | string | 是   | 设置监听类型,固定取值为'getLeftTextOfCursor'。 |
| callback | (length: number) => string | 否  | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2242 2243 2244 2245 2246 2247

**示例:**

```js
try {
  inputMethodController.off('getLeftTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2248
    console.info(`Succeeded in unsubscribing getLeftTextOfCursor, length: ${length}`);
C
cy7717 已提交
2249
    let text:string = "";
C
mod  
cy7717 已提交
2250
    return text;
C
cy7717 已提交
2251 2252
  });
} catch(err) {
C
mod  
cy7717 已提交
2253
  console.error(`Failed to unsubscribing getLeftTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268
}
```

### on('getRightTextOfCursor')<sup>10+</sup>

on(type: 'getRightTextOfCursor', callback: (length: number) => string): void;

订阅输入法应用获取光标右侧指定长度文本事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2269 2270
| type     | string  | 是   | 设置监听类型,固定取值为'getRightTextOfCursor'。 |
| callback | (length: number) => string | 是   | 回调函数,获取编辑框最新状态下光标右侧指定长度的文本内容并返回。 |
C
cy7717 已提交
2271

C
cy7717 已提交
2272 2273 2274 2275 2276 2277 2278 2279
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2280 2281 2282 2283 2284
**示例:**

```js
try {
  inputMethodController.on('getRightTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2285
    console.info(`Succeeded in subscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2286
    let text:string = "";
C
mod  
cy7717 已提交
2287
    return text;
C
cy7717 已提交
2288 2289
  });
} catch(err) {
C
mod  
cy7717 已提交
2290
  console.error(`Failed to subscribe getRightTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2291 2292 2293 2294 2295 2296 2297
}
```

### off('getRightTextOfCursor')<sup>10+</sup>

off(type: 'getRightTextOfCursor', callback?: (length: number) => string): void;

N
update  
ningning 已提交
2298
取消订阅输入法应用获取光标右侧指定长度文本事件。使用callback异步回调。
C
cy7717 已提交
2299 2300 2301 2302 2303 2304 2305

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2306 2307
| type   | string | 是   | 设置监听类型,固定取值为'getRightTextOfCursor'。 |
| callback | (length: number) => string | 否  |取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2308 2309 2310 2311 2312 2313

**示例:**

```js
try {
  inputMethodController.off('getRightTextOfCursor', (length) => {
C
mod  
cy7717 已提交
2314
    console.info(`Succeeded in unsubscribing getRightTextOfCursor, length: ${length}`);
C
cy7717 已提交
2315
    let text:string = "";
C
mod  
cy7717 已提交
2316
    return text;
C
cy7717 已提交
2317 2318
  });
} catch(err) {
C
mod  
cy7717 已提交
2319
  console.error(`Failed to unsubscribing getRightTextOfCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334
}
```

### on('getTextIndexAtCursor')<sup>10+</sup>

on(type: 'getTextIndexAtCursor', callback: () => number): void;

订阅输入法应用获取光标处文本索引事件。使用callback异步回调。

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

**参数:**

| 参数名   | 类型   | 必填 | 说明     |
| -------- | ----- | ---- | ------ |
N
update  
ningning 已提交
2335 2336
| type     | string  | 是   | 设置监听类型,固定取值为'getTextIndexAtCursor'。 |
| callback | () => number | 是   | 回调函数,获取编辑框最新状态下光标处文本索引并返回。 |
C
cy7717 已提交
2337

C
cy7717 已提交
2338 2339 2340 2341 2342 2343 2344 2345
**错误码:**

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

| 错误码ID | 错误信息                             |
| -------- | -------------------------------------- |
| 12800009 | input method client is detached. |

C
cy7717 已提交
2346 2347 2348 2349 2350
**示例:**

```js
try {
  inputMethodController.on('getTextIndexAtCursor', () => {
C
mod  
cy7717 已提交
2351
    console.info(`Succeeded in subscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2352
    let index:number = 0;
C
mod  
cy7717 已提交
2353
    return index;
C
cy7717 已提交
2354 2355
  });
} catch(err) {
C
mod  
cy7717 已提交
2356
  console.error(`Failed to subscribe getTextIndexAtCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2357 2358 2359 2360 2361 2362 2363
}
```

### off('getTextIndexAtCursor')<sup>10+</sup>

off(type: 'getTextIndexAtCursor', callback?: () => number): void;

N
update  
ningning 已提交
2364
取消订阅输入法应用获取光标处文本索引事件。使用callback异步回调。
C
cy7717 已提交
2365 2366 2367 2368 2369 2370 2371

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2372 2373
| type   | string | 是   | 设置监听类型,固定取值为'getTextIndexAtCursor'。 |
| callback | () => number | 否  | 取消订阅的回调函数,需要与on接口传入的保持一致。<br>参数不填写时,取消订阅type对应的所有回调事件。|
C
cy7717 已提交
2374 2375 2376 2377 2378 2379

**示例:**

```js
try {
  inputMethodController.off('getTextIndexAtCursor', () => {
C
mod  
cy7717 已提交
2380
    console.info(`Succeeded in unsubscribing getTextIndexAtCursor.`);
C
cy7717 已提交
2381
    let index:number = 0;
C
mod  
cy7717 已提交
2382
    return index;
C
cy7717 已提交
2383 2384
  });
} catch(err) {
C
mod  
cy7717 已提交
2385
  console.error(`Failed to unsubscribing getTextIndexAtCursor. Code: ${err.code}, message: ${err.message}`);
C
cy7717 已提交
2386 2387 2388
}
```

2389
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
2390

N
update  
ningning 已提交
2391
下列API均需使用[getSetting](#inputmethodgetsetting9)获取到InputMethodSetting实例后,通过实例调用。
Z
zhouyongfei 已提交
2392

H
Hollokin 已提交
2393
### on('imeChange')<sup>9+</sup>
2394 2395 2396

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

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

H
update  
Hollokin 已提交
2399
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2400 2401 2402 2403 2404

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
N
update  
ningning 已提交
2405 2406
| type     | string                        | 是   | 设置监听类型,固定取值为'imeChange'。 |
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 是 | 回调函数,返回输入法属性对象及子类型对象。 |
2407 2408 2409

**示例:**

H
Hollokin 已提交
2410
```js
H
Hollokin 已提交
2411
inputMethodSetting.on('imeChange', (inputMethodProperty, inputMethodSubtype) => {
H
Hollokin 已提交
2412
  console.log('Succeeded in subscribing imeChange: inputMethodProperty: ' + JSON.stringify(inputMethodProperty) + " , inputMethodSubtype: " + JSON.stringify(inputMethodSubtype));
H
Hollokin 已提交
2413 2414
});
```
2415

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

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

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

H
update  
Hollokin 已提交
2422
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2423 2424 2425

**参数:**

H
update  
Hollokin 已提交
2426 2427
| 参数名   | 类型    | 必填 | 说明          |
| -------- | --------- | ---- | --------------- |
N
update  
ningning 已提交
2428 2429
| type     | string    | 是   | 设置监听类型,固定取值为'imeChange'。 |
| callback | (inputMethodProperty: [InputMethodProperty](#inputmethodproperty8), inputMethodSubtype: [InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)) => void  | 否 | 回调函数,返回取消订阅的输入法属性对象及子类型对象。 |
2430 2431 2432

**示例:**

H
Hollokin 已提交
2433
```js
H
Hollokin 已提交
2434
inputMethodSetting.off('imeChange');
H
Hollokin 已提交
2435
```
2436

2437
### on('imeShow')<sup>10+</sup>
2438

2439
on(type: 'imeShow', callback: (info: Array\<InputWindowInfo>) => void): void
2440

2441
订阅输入法软键盘显示事件。使用callback异步回调。
2442

H
update  
Hollokin 已提交
2443 2444
**系统接口**:此接口为系统接口。

2445 2446 2447 2448 2449 2450
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
N
update  
ningning 已提交
2451
| type     | string | 是 | 设置监听类型,固定取值为'imeShow'。 |
2452 2453 2454 2455 2456 2457 2458 2459 2460 2461
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

```js
inputMethodSetting.on('imeShow', (info) => {
    console.info('Succeeded in subscribing imeShow event.');
});
```

2462
### on('imeHide')<sup>10+</sup>
2463

2464
on(type: 'imeHide', callback: (info: Array\<InputWindowInfo>) => void): void
2465

2466 2467 2468 2469 2470 2471 2472 2473 2474 2475
订阅输入法软键盘隐藏事件。使用callback异步回调。

**系统接口**:此接口为系统接口。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明 |
| -------- | ---- | ---- | ---- |
N
update  
ningning 已提交
2476
| type     | string | 是 | 设置监听类型,固定取值为'imeHide'。 |
2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491
| callback | (info: Array\<InputWindowInfo>) => void | 是 | 回调函数,返回输入法软键盘信息。 |

**示例:**

```js
inputMethodSetting.on('imeHide', (info) => {
    console.info('Succeeded in subscribing imeHide event.');
});
```

### off('imeShow')<sup>10+</sup>

off(type: 'imeShow', callback?: (info: Array\<InputWindowInfo>) => void): void

取消订阅输入法软键盘显示事件。
2492

H
update  
Hollokin 已提交
2493 2494
**系统接口**:此接口为系统接口。

2495 2496 2497 2498 2499 2500
**系统能力:** SystemCapability.MiscServices.InputMethodFramework

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
N
update  
ningning 已提交
2501 2502
| type     | string | 是 | 设置监听类型,固定取值`imeShow`。 |
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2503 2504 2505 2506 2507 2508 2509

**示例:**

```js
inputMethodSetting.off('imeShow');
```

2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523
### off('imeHide')<sup>10+</sup>

off(type: 'imeHide', callback?: (info: Array\<InputWindowInfo>) => void): void

取消订阅输入法软键盘隐藏事件。

**系统接口**:此接口为系统接口。

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

**参数:**

| 参数名   | 类型 | 必填 | 说明   |
| -------- | ---- | ---- | ------ |
N
update  
ningning 已提交
2524 2525
| type     | string | 是 | 设置监听类型,固定取值'imeHide'。 |
| callback | (info: Array\<InputWindowInfo>) => void  | 否 | 取消订阅的回调函数。<br>参数不填写时,取消订阅type对应的所有回调事件。 |
2526 2527 2528 2529 2530 2531 2532

**示例:**

```js
inputMethodSetting.off('imeHide');
```

2533 2534 2535 2536
### listInputMethodSubtype<sup>9+</sup>

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

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

H
update  
Hollokin 已提交
2539
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2540 2541 2542 2543 2544

**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
N
update  
ningning 已提交
2545
| inputMethodProperty | [InputMethodProperty](#inputmethodproperty8)| 是 | 输入法应用。 |
2546
| callback | AsyncCallback&lt;Array<[InputMethodSubtype](./js-apis-inputmethod-subtype.md#inputmethodsubtype)>&gt; | 是 | 回调函数,返回指定输入法应用的所有子类型。 |
2547

H
Hollokin 已提交
2548 2549
**错误码:**

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

2552
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2553
| -------- | -------------------------------------- |
2554 2555
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2556

2557 2558
**示例:**

H
Hollokin 已提交
2559
```js
H
update  
Hollokin 已提交
2560
let inputMethodProperty = {
2561
  name: 'com.example.kikakeyboard',
2562
  id: 'propertyId',
H
Hollokin 已提交
2563 2564
}
try {
2565
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty, (err, data) => {
2566
    if (err) {
H
Hollokin 已提交
2567
      console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2568 2569 2570 2571
      return;
    }
    console.log('Succeeded in listing inputMethodSubtype.');
  });
H
Hollokin 已提交
2572
} catch (err) {
H
Hollokin 已提交
2573
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2574
}
2575 2576 2577 2578 2579 2580
```

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

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

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

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

H
Hollokin 已提交
2585 2586 2587 2588
**参数:**

| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
N
update  
ningning 已提交
2589
| inputMethodProperty | [InputMethodProperty](#inputmethodproperty8)| 是 | 输入法应用。 |
H
Hollokin 已提交
2590

2591 2592 2593 2594
**返回值:**

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

H
Hollokin 已提交
2597 2598
**错误码:**

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

2601
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2602
| -------- | -------------------------------------- |
2603 2604
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2605

2606 2607
**示例:**

H
Hollokin 已提交
2608
```js
H
Hollokin 已提交
2609
let inputMethodProperty = {
2610
  name: 'com.example.kikakeyboard',
2611
  id: 'propertyId',
H
Hollokin 已提交
2612 2613
}
try {
2614
  inputMethodSetting.listInputMethodSubtype(inputMethodProperty).then((data) => {
H
Hollokin 已提交
2615
    console.log('Succeeded in listing inputMethodSubtype.');
2616
  }).catch((err) => {
H
Hollokin 已提交
2617
    console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
2618 2619
  })
} catch(err) {
H
Hollokin 已提交
2620
  console.error(`Failed to listInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2621
}
2622 2623 2624 2625 2626
```

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

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

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

H
update  
Hollokin 已提交
2630
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2631 2632 2633 2634 2635

**参数:**

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

H
Hollokin 已提交
2638 2639
**错误码:**

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

2642
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2643
| -------- | -------------------------------------- |
2644 2645
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2646

2647 2648
**示例:**

H
Hollokin 已提交
2649
```js
H
Hollokin 已提交
2650
try {
2651 2652
  inputMethodSetting.listCurrentInputMethodSubtype((err, data) => {
    if (err) {
H
Hollokin 已提交
2653
      console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2654 2655 2656 2657
      return;
    }
    console.log('Succeeded in listing currentInputMethodSubtype.');
  });
H
Hollokin 已提交
2658
} catch(err) {
H
Hollokin 已提交
2659
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2660
}
2661 2662 2663 2664 2665 2666
```

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

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

N
update  
ningning 已提交
2667
查询当前输入法应用的所有子类型。使用promise异步回调。
2668

H
update  
Hollokin 已提交
2669
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2670 2671 2672 2673 2674

**返回值:**

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

H
Hollokin 已提交
2677 2678
**错误码:**

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

2681
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2682
| -------- | -------------------------------------- |
2683 2684
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2685

2686 2687
**示例:**

H
Hollokin 已提交
2688
```js
H
Hollokin 已提交
2689
try {
2690
  inputMethodSetting.listCurrentInputMethodSubtype().then((data) => {
H
Hollokin 已提交
2691
    console.log('Succeeded in listing currentInputMethodSubtype.');
2692
  }).catch((err) => {
H
Hollokin 已提交
2693
    console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
2694 2695
  })
} catch(err) {
H
Hollokin 已提交
2696
  console.error(`Failed to listCurrentInputMethodSubtype: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2697
}
2698 2699 2700 2701 2702
```

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

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

N
update  
ningning 已提交
2704
获取已激活/未激活的输入法应用列表。使用callback异步回调。
2705

N
update  
ningning 已提交
2706 2707 2708 2709 2710
> **说明**
> 
> 已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
> 
> 已激活/未激活为预留概念,暂不支持。
Z
zhaolinglan 已提交
2711

H
update  
Hollokin 已提交
2712
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2713 2714 2715 2716 2717

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                          |
| -------- | --------------------------------------------------- | ---- | ----------------------------- |
N
update  
ningning 已提交
2718
| enable   | boolean                                             | 是   |true表示返回已激活输入法列表,false表示返回未激活输入法列表。 |
2719
| callback | AsyncCallback&lt;Array<[InputMethodProperty](#inputmethodproperty8)>&gt; | 是   | 回调函数,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2720

H
Hollokin 已提交
2721 2722
**错误码:**

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

2725
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2726
| -------- | -------------------------------------- |
2727 2728
| 12800001 | package manager error.                 |
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2729

Z
zhaolinglan 已提交
2730 2731
**示例:**

H
Hollokin 已提交
2732
```js
H
Hollokin 已提交
2733
try {
2734
  inputMethodSetting.getInputMethods(true, (err, data) => {
2735
    if (err) {
H
Hollokin 已提交
2736
      console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2737 2738 2739 2740
      return;
    }
    console.log('Succeeded in getting inputMethods.');
  });
H
Hollokin 已提交
2741
} catch (err) {
H
Hollokin 已提交
2742
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2743
}
Z
zhaolinglan 已提交
2744 2745
```

2746
### getInputMethods<sup>9+</sup>
Z
zhaolinglan 已提交
2747

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

N
update  
ningning 已提交
2750
获取已激活/未激活的输入法应用列表。使用promise异步回调。
2751

N
update  
ningning 已提交
2752 2753 2754 2755 2756
> **说明**
> 
> 已激活输入法包括当前使用的输入法,未激活输入法包括当前输入法以外的其他已安装的输入法。
> 
> 已激活/未激活为预留概念,暂不支持。
Z
zhaolinglan 已提交
2757

H
update  
Hollokin 已提交
2758
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2759 2760 2761 2762 2763

**参数:**

| 参数名 | 类型    | 必填 | 说明                    |
| ------ | ------- | ---- | ----------------------- |
N
update  
ningning 已提交
2764
| enable | boolean | 是   |- true表示返回已激活输入法列表,false表示返回未激活输入法列表。 |
Z
zhaolinglan 已提交
2765

H
Hollokin 已提交
2766 2767
**错误码:**

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

2770
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2771
| -------- | -------------------------------------- |
2772 2773
| 12800001 | package manager error.                 |
| 12800008 |input method manager service error. |
H
Hollokin 已提交
2774

Z
zhaolinglan 已提交
2775 2776 2777 2778
**返回值:**

| 类型                                                         | 说明                          |
| ------------------------------------------------------------ | ----------------------------- |
N
update  
ningning 已提交
2779
| Promise\<Array\<[InputMethodProperty](#inputmethodproperty8)>> | Promise对象,返回已激活/未激活输入法列表。 |
Z
zhaolinglan 已提交
2780 2781 2782

**示例:**

H
Hollokin 已提交
2783
```js
H
Hollokin 已提交
2784
try {
2785
  inputMethodSetting.getInputMethods(true).then((data) => {
H
Hollokin 已提交
2786
    console.log('Succeeded in getting inputMethods.');
2787
  }).catch((err) => {
H
Hollokin 已提交
2788
    console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
2789 2790
  })
} catch(err) {
H
Hollokin 已提交
2791
  console.error(`Failed to getInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2792
}
Z
zhaolinglan 已提交
2793 2794
```

H
Hollokin 已提交
2795 2796
### showOptionalInputMethods<sup>9+</sup>

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

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

H
update  
Hollokin 已提交
2801
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
2802 2803 2804 2805 2806

**参数:**

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

H
Hollokin 已提交
2809 2810
**错误码:**

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

2813
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2814
| -------- | -------------------------------------- |
2815
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2816

H
Hollokin 已提交
2817 2818
**示例:**

H
Hollokin 已提交
2819
```js
H
Hollokin 已提交
2820
try {
2821 2822
  inputMethodSetting.showOptionalInputMethods((err, data) => {
    if (err) {
H
Hollokin 已提交
2823
      console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
2824 2825
      return;
    }
H
Hollokin 已提交
2826
    console.log('Succeeded in showing optionalInputMethods.');
2827
  });
H
Hollokin 已提交
2828
} catch (err) {
H
Hollokin 已提交
2829
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2830 2831 2832 2833 2834
}
```

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

H
Hollokin 已提交
2835
showOptionalInputMethods(): Promise&lt;boolean&gt;
H
Hollokin 已提交
2836

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

H
update  
Hollokin 已提交
2839
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
2840 2841 2842 2843 2844

**返回值:**

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

H
Hollokin 已提交
2847 2848
**错误码:**

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

2851
| 错误码ID | 错误信息                             |
H
Hollokin 已提交
2852
| -------- | -------------------------------------- |
2853
| 12800008 | input method manager service error. |
H
Hollokin 已提交
2854

H
Hollokin 已提交
2855 2856
**示例:**

H
Hollokin 已提交
2857
```js
H
Hollokin 已提交
2858
inputMethodSetting.showOptionalInputMethods().then((data) => {
H
Hollokin 已提交
2859
  console.log('Succeeded in showing optionalInputMethods.');
H
Hollokin 已提交
2860
}).catch((err) => {
H
Hollokin 已提交
2861
  console.error(`Failed to showOptionalInputMethods: ${JSON.stringify(err)}`);
H
Hollokin 已提交
2862 2863 2864
})
```

H
Hollokin 已提交
2865
### listInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2866 2867 2868

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

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

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

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

2877
**参数:**
B
bmeangel 已提交
2878

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

2883
**示例:**
T
explain  
tianyu 已提交
2884

2885
```js
2886
inputMethodSetting.listInputMethod((err, data) => {
2887
  if (err) {
H
Hollokin 已提交
2888
    console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
2889 2890 2891
    return;
  }
  console.log('Succeeded in listing inputMethod.');
2892
 });
2893
```
Z
zhouyongfei 已提交
2894

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

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

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

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

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

2907
**返回值:**
B
bmeangel 已提交
2908

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

2913
**示例:**
2914 2915

```js
H
Hollokin 已提交
2916
inputMethodSetting.listInputMethod().then((data) => {
H
Hollokin 已提交
2917
  console.log('Succeeded in listing inputMethod.');
Z
zhaolinglan 已提交
2918
}).catch((err) => {
H
Hollokin 已提交
2919
  console.error(`Failed to listInputMethod: ${JSON.stringify(err)}`);
Z
zhaolinglan 已提交
2920
})
2921
```
Z
zhouyongfei 已提交
2922

H
Hollokin 已提交
2923
### displayOptionalInputMethod<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2924 2925 2926

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

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

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

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

2935
**参数:**
Z
zhouyongfei 已提交
2936 2937 2938

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

2941
**示例:**
2942 2943

```js
H
Hollokin 已提交
2944
inputMethodSetting.displayOptionalInputMethod((err) => {
2945
  if (err) {
H
Hollokin 已提交
2946
    console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2947 2948
    return;
  }
H
Hollokin 已提交
2949
  console.log('Succeeded in displaying optionalInputMethod.');
2950
});
2951
```
Z
zhouyongfei 已提交
2952

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

2955 2956
displayOptionalInputMethod(): Promise&lt;void&gt;

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

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

H
update  
Hollokin 已提交
2963
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2964 2965 2966 2967 2968

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
H
Hollokin 已提交
2969
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2970 2971 2972 2973

**示例:**

```js
H
Hollokin 已提交
2974
inputMethodSetting.displayOptionalInputMethod().then(() => {
H
Hollokin 已提交
2975
  console.log('Succeeded in displaying optionalInputMethod.');
2976
}).catch((err) => {
H
Hollokin 已提交
2977
  console.error(`Failed to displayOptionalInputMethod: ${JSON.stringify(err)}`);
2978
})
G
guojin31 已提交
2979
```