js-apis-inputmethodengine.md 78.1 KB
Newer Older
1
# @ohos.inputMethodEngine (输入法服务)
Z
zhouyongfei 已提交
2

Z
zhaolinglan 已提交
3
本模块面向输入法应用提供能力(包括系统输入法应用、三方输入法应用),功能包括:隐藏软键盘、插入/删除字符、选中文本、物理键盘按键事件监听等。
4

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

## 导入模块

```
12
import inputMethodEngine from '@ohos.inputMethodEngine';
Z
zhouyongfei 已提交
13 14
```

H
Hollokin 已提交
15 16 17 18
## 常量

功能键常量值、编辑框常量值及光标常量值。

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

21
| 名称 | 类型 | 值 | 说明 |
H
Hollokin 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| -------- | -------- | -------- | -------- |
| ENTER_KEY_TYPE_UNSPECIFIED | number | 0 | 无功能键。 |
| ENTER_KEY_TYPE_GO | number | 2 | “前往”功能键。 |
| ENTER_KEY_TYPE_SEARCH | number | 3 | “搜索”功能键。 |
| ENTER_KEY_TYPE_SEND | number | 4 | “发送”功能键。 |
| ENTER_KEY_TYPE_NEXT | number | 5 | “下一个”功能键。 |
| ENTER_KEY_TYPE_DONE | number | 6 | “回车”功能键。 |
| ENTER_KEY_TYPE_PREVIOUS | number | 7 | “前一个”功能键。 |
| PATTERN_NULL | number | -1 | 无特殊性编辑框。 |
| PATTERN_TEXT | number | 0 | 文本编辑框。 |
| PATTERN_NUMBER | number | 2 | 数字编辑框。 |
| PATTERN_PHONE | number | 3 | 电话号码编辑框。 |
| PATTERN_DATETIME | number | 4 | 日期编辑框。 |
| PATTERN_EMAIL | number | 5 | 邮件编辑框。 |
| PATTERN_URI | number | 6 | 超链接编辑框。 |
| PATTERN_PASSWORD | number | 7 | 密码编辑框。 |
| OPTION_ASCII | number | 20 | 允许输入ASCII值。 |
| OPTION_NONE | number | 0 | 不指定编辑框输入属性。 |
| OPTION_AUTO_CAP_CHARACTERS | number | 2 | 允许输入字符。 |
| OPTION_AUTO_CAP_SENTENCES | number | 8 | 允许输入句子。 |
| OPTION_AUTO_WORDS | number | 4 | 允许输入单词。 |
| OPTION_MULTI_LINE | number | 1 | 允许输入多行。 |
| OPTION_NO_FULLSCREEN | number | 10 | 半屏样式。 |
| FLAG_SELECTING | number | 2 | 编辑框处于选择状态。 |
| FLAG_SINGLE_LINE | number | 1 | 编辑框为单行。 |
| DISPLAY_MODE_PART | number | 0 | 编辑框显示为半屏。 |
| DISPLAY_MODE_FULL | number | 1 | 编辑框显示为全屏。 |
| CURSOR_UP<sup>9+</sup> | number | 1 | 光标上移。 |
| CURSOR_DOWN<sup>9+</sup> | number | 2 | 光标下移。 |
| CURSOR_LEFT<sup>9+</sup> | number | 3 | 光标左移。 |
| CURSOR_RIGHT<sup>9+</sup> | number | 4 | 光标右移。 |
| WINDOW_TYPE_INPUT_METHOD_FLOAT<sup>9+</sup> | number | 2105 | 输入法应用窗口风格标识。 |

## inputMethodEngine.getInputMethodAbility<sup>9+</sup>
Z
zhouyongfei 已提交
56

H
Hollokin 已提交
57
getInputMethodAbility(): InputMethodAbility
Z
zhouyongfei 已提交
58

Z
refresh  
zhouyongfei 已提交
59
获取服务端实例。
Z
zhouyongfei 已提交
60

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

63
**返回值:**
Z
zhouyongfei 已提交
64

W
wz 已提交
65 66
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
H
Hollokin 已提交
67
| [InputMethodAbility](#inputmethodability) | 服务端实例。 |
Z
zhouyongfei 已提交
68

69
**示例:**
Z
zhouyongfei 已提交
70

H
Hollokin 已提交
71
```js
72
let InputMethodAbility = inputMethodEngine.getInputMethodAbility();
H
Hollokin 已提交
73
```
Z
zhouyongfei 已提交
74

H
Hollokin 已提交
75
## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
76

H
Hollokin 已提交
77
getKeyboardDelegate(): KeyboardDelegate
78

H
Hollokin 已提交
79
获取客户端监听实例。
80

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

**返回值:**

H
Hollokin 已提交
85 86
| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
H
Hollokin 已提交
87
| [KeyboardDelegate](#keyboarddelegate) | 客户端监听实例。 |
88 89 90

**示例:**

H
Hollokin 已提交
91
```js
92
let KeyboardDelegate = inputMethodEngine.getKeyboardDelegate();
H
Hollokin 已提交
93
```
94

H
Hollokin 已提交
95
## inputMethodEngine.getInputMethodEngine<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
96

H
Hollokin 已提交
97
getInputMethodEngine(): InputMethodEngine
Z
zhouyongfei 已提交
98

H
Hollokin 已提交
99
获取服务端实例。
Z
zhouyongfei 已提交
100

H
update  
Hollokin 已提交
101 102
> **说明:**
>
103
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getInputMethodAbility()](#inputmethodenginegetinputmethodability9)替代。
H
Hollokin 已提交
104

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

107
**返回值:**
Z
zhouyongfei 已提交
108

H
Hollokin 已提交
109 110 111
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
| [InputMethodEngine](#inputmethodengine-1) | 服务端实例。 |
Z
zhouyongfei 已提交
112

113
**示例:**
Z
zhouyongfei 已提交
114

H
Hollokin 已提交
115 116 117
```js
let InputMethodEngine = inputMethodEngine.getInputMethodEngine();
```
Z
zhouyongfei 已提交
118

H
Hollokin 已提交
119
## inputMethodEngine.createKeyboardDelegate<sup>(deprecated)</sup>
120

H
Hollokin 已提交
121
createKeyboardDelegate(): KeyboardDelegate
122 123 124

获取客户端监听实例。

H
update  
Hollokin 已提交
125 126 127
> **说明:**
>
>从API version 8开始支持,API version 9开始废弃, 建议使用[getKeyboardDelegate()](#inputmethodenginegetkeyboarddelegate9)替代。
H
Hollokin 已提交
128

H
update  
Hollokin 已提交
129
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
130 131 132 133 134

**返回值:**

| 类型                                  | 说明             |
| ------------------------------------- | ---------------- |
H
Hollokin 已提交
135
| [KeyboardDelegate](#keyboarddelegate) | 客户端监听实例。 |
136 137 138

**示例:**

H
Hollokin 已提交
139
```js
H
Hollokin 已提交
140
let keyboardDelegate = inputMethodEngine.createKeyboardDelegate();
H
Hollokin 已提交
141
```
142

H
Hollokin 已提交
143
## InputMethodEngine
Z
zhouyongfei 已提交
144

H
Hollokin 已提交
145
下列API示例中都需使用[getInputMethodEngine](#inputmethodenginegetinputmethodenginedeprecated)回调获取到InputMethodEngine实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
146

H
Hollokin 已提交
147
### on('inputStart')
Z
zhouyongfei 已提交
148

Z
zhouyongfei 已提交
149
on(type: 'inputStart', callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
Z
zhouyongfei 已提交
150

H
Hollokin 已提交
151
订阅输入法绑定成功事件。使用callback异步回调。
Z
zhouyongfei 已提交
152

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

155
**参数:**
Z
zhouyongfei 已提交
156 157 158

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
159
| type     | string                        | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
160
| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 是 | 回调函数,返回订阅输入法的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
161

162
**示例:**
Z
zhouyongfei 已提交
163

H
Hollokin 已提交
164
```js
H
Hollokin 已提交
165 166 167
inputMethodEngine.getInputMethodEngine().on('inputStart', (kbController, textClient) => {
    let keyboardController = kbController;
    let textInputClient = textClient;
H
Hollokin 已提交
168 169
});
```
Z
zhouyongfei 已提交
170 171 172

### off('inputStart')

Z
zhouyongfei 已提交
173
off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
Z
zhouyongfei 已提交
174

H
update  
Hollokin 已提交
175
取消订阅输入法绑定成功事件。
Z
zhouyongfei 已提交
176

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

179
**参数:**
Z
zhouyongfei 已提交
180

W
wz 已提交
181 182
| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
183
| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
184
| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 否 | 回调函数,返回取消订阅的KeyboardController和TextInputClient实例。 |
Z
zhouyongfei 已提交
185

186
**示例:**
Z
zhouyongfei 已提交
187

H
Hollokin 已提交
188 189 190 191 192
```js
inputMethodEngine.getInputMethodEngine().off('inputStart', (kbController, textInputClient) => {
    console.log('delete inputStart notification.');
});
```
Z
zhouyongfei 已提交
193 194 195

### on('keyboardShow'|'keyboardHide')

Z
zhouyongfei 已提交
196
on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
Z
zhouyongfei 已提交
197

H
Hollokin 已提交
198
订阅输入法事件。使用callback异步回调。
Z
zhouyongfei 已提交
199

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

202
**参数:**
Z
zhouyongfei 已提交
203

W
wz 已提交
204 205 206
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
207
| callback | () => void   | 是   | 回调函数。                                                   |
Z
zhouyongfei 已提交
208

209
**示例:**
Z
zhouyongfei 已提交
210

H
Hollokin 已提交
211 212 213 214 215 216 217 218
```js
inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
    console.log('inputMethodEngine keyboardShow.');
});
inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
    console.log('inputMethodEngine keyboardHide.');
});
```
Z
zhouyongfei 已提交
219 220 221

### off('keyboardShow'|'keyboardHide')

Z
zhouyongfei 已提交
222
off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
Z
zhouyongfei 已提交
223

H
Hollokin 已提交
224
取消订阅输入法事件。使用callback异步回调。
Z
zhouyongfei 已提交
225

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

228
**参数:**
Z
zhouyongfei 已提交
229

W
wz 已提交
230 231 232
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
233
| callback | () => void   | 否   | 回调函数。 |
Z
zhouyongfei 已提交
234

235
**示例:**
Z
zhouyongfei 已提交
236

H
Hollokin 已提交
237
```js
H
Hollokin 已提交
238 239
inputMethodEngine.getInputMethodEngine().off('keyboardShow');
inputMethodEngine.getInputMethodEngine().off('keyboardHide');
H
Hollokin 已提交
240
```
W
wz 已提交
241

H
Hollokin 已提交
242
## InputMethodAbility
243

H
Hollokin 已提交
244
下列API示例中都需使用[getInputMethodAbility](#inputmethodenginegetinputmethodability9)回调获取到InputMethodAbility实例,再通过此实例调用对应方法。
245

H
Hollokin 已提交
246
### on('inputStart')<sup>9+</sup>
247 248 249

on(type: 'inputStart', callback: (kbController: KeyboardController, inputClient: InputClient) => void): void

H
Hollokin 已提交
250
订阅输入法绑定成功事件。使用callback异步回调。
251

H
update  
Hollokin 已提交
252
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
253 254 255 256 257

**参数:**

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
258 259
| type     | string                        | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 是 | 回调函数,返回输入法操作相关实例。 |
260 261 262

**示例:**

H
Hollokin 已提交
263
```js
H
Hollokin 已提交
264 265 266
inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, client) => {
    let keyboardController = kbController;
    let inputClient = client;
H
Hollokin 已提交
267 268
});
```
269 270 271 272 273

### off('inputStart')<sup>9+</sup>

off(type: 'inputStart', callback?: (kbController: KeyboardController, inputClient: InputClient) => void): void

H
Hollokin 已提交
274
取消订阅输入法绑定成功事件。使用callback异步回调。
275

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

**参数:**

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
282 283
| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 否 | 回调函数,返回输入法操作相关实例。 |
284 285 286

**示例:**

H
Hollokin 已提交
287
```js
H
Hollokin 已提交
288
inputMethodEngine.getInputMethodAbility().off('inputStart');
H
Hollokin 已提交
289
```
290 291 292 293 294

### on('inputStop')<sup>9+</sup>

on(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
295
订阅停止输入法应用事件。使用callback异步回调。
296

H
update  
Hollokin 已提交
297
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
298 299 300 301 302

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
303
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStop’时表示订阅停止输入法应用事件。 |
304
| callback | () => void   | 是   | 回调函数。                                                   |
305 306 307

**示例:**

H
Hollokin 已提交
308
```js
H
Hollokin 已提交
309
inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
310 311
    console.log('inputMethodAbility inputStop');
});
H
Hollokin 已提交
312
```
313 314 315 316 317

### off('inputStop')<sup>9+</sup>

off(type: 'inputStop', callback: () => void): void

H
Hollokin 已提交
318
取消订阅停止输入法应用事件。使用callback异步回调。
319

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
326
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStop’时表示订阅停止输入法应用事件。 |
327
| callback | () => void   | 是   | 回调函数。                                                   |
328 329 330

**示例:**

H
Hollokin 已提交
331
```js
H
Hollokin 已提交
332
inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
333 334
    console.log('inputMethodAbility delete inputStop notification.');
});
H
Hollokin 已提交
335
```
336 337 338

### on('setCallingWindow')<sup>9+</sup>

339
on(type: 'setCallingWindow', callback: (wid: number) => void): void
340

H
Hollokin 已提交
341
订阅设置调用窗口事件。使用callback异步回调。
342

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
349 350
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
| callback | (wid: number) => void | 是   | 回调函数,返回调用方window id。                                            |
351 352 353

**示例:**

H
Hollokin 已提交
354
```js
H
Hollokin 已提交
355
inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid) => {
356 357
    console.log('inputMethodAbility setCallingWindow');
});
H
Hollokin 已提交
358
```
359 360 361 362 363

### off('setCallingWindow')<sup>9+</sup>

off(type: 'setCallingWindow', callback: (wid:number) => void): void

H
Hollokin 已提交
364
取消订阅设置调用窗口事件。使用callback异步回调。
365

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
372
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
373
| callback | (wid:number) => void | 是   | 回调函数,返回调用方window id。                                 |
374 375 376

**示例:**

H
Hollokin 已提交
377
```js
H
Hollokin 已提交
378
inputMethodEngine.getInputMethodAbility().off('setCallingWindow', () => {
379 380
    console.log('inputMethodAbility delete setCallingWindow notification.');
});
H
Hollokin 已提交
381
```
382 383 384 385 386

### on('keyboardShow'|'keyboardHide')<sup>9+</sup>

on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void

H
Hollokin 已提交
387
订阅输入法事件。使用callback异步回调。
388

H
update  
Hollokin 已提交
389
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
390 391 392 393 394

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
395
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅显示键盘事件。<br/>-&nbsp;type为'keyboardHide',表示订阅隐藏键盘事件。 |
396
| callback | () => void   | 是   | 回调函数。                                                   |
397 398 399

**示例:**

H
Hollokin 已提交
400 401 402 403 404 405 406 407
```js
inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
    console.log('InputMethodAbility keyboardShow.');
});
inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
    console.log('InputMethodAbility keyboardHide.');
});
```
408 409 410 411 412

### off('keyboardShow'|'keyboardHide')<sup>9+</sup>

off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void

H
Hollokin 已提交
413
取消订阅输入法事件。使用callback异步回调。
414

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

**参数:**

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
421 422
| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示取消订阅显示键盘事件。<br/>-&nbsp;type为'keyboardHide',表示取消订阅隐藏键盘事件。 |
| callback | () => void   | 否   | 回调函数。     |
423 424 425

**示例:**

H
Hollokin 已提交
426 427 428 429 430 431 432 433
```js
inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
    console.log('InputMethodAbility delete keyboardShow notification.');
});
inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
    console.log('InputMethodAbility delete keyboardHide notification.');
});
```
434 435 436 437 438

### on('setSubtype')<sup>9+</sup>

on(type: 'setSubtype', callback: (inputMethodSubtype: InputMethodSubtype) => void): void

H
Hollokin 已提交
439
订阅设置输入法子类型事件。使用callback异步回调。
440

H
update  
Hollokin 已提交
441
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
442 443 444

**参数:**

445 446 447 448
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示订阅输入法子类型的设置事件。 |
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 是   | 回调函数,返回设置的输入法子类型。                           |
449 450 451

**示例:**

H
Hollokin 已提交
452 453 454 455 456
```js
inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype) => {
    console.log('InputMethodAbility setSubtype.');
});
```
457 458 459

### off('setSubtype')<sup>9+</sup>

460
off(type: 'setSubtype', callback?: (inputMethodSubtype: InputMethodSubtype) => void): void
461

H
Hollokin 已提交
462
取消订阅输入法子类型事件。使用callback异步回调。
463

H
update  
Hollokin 已提交
464
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
465 466 467

**参数:**

468 469 470 471
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示取消订阅输入法子类型的设置事件。 |
| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 否   | 回调函数,返回设置的输入法子类型。  |
472 473 474

**示例:**

H
Hollokin 已提交
475 476 477 478 479
```js
inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
    console.log('InputMethodAbility delete setSubtype notification.');
});
```
Z
zhouyongfei 已提交
480

H
Hollokin 已提交
481
## KeyboardDelegate
Z
zhouyongfei 已提交
482

H
Hollokin 已提交
483
下列API示例中都需使用[getKeyboardDelegate](#inputmethodenginegetkeyboarddelegate9)回调获取到KeyboardDelegate实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
484 485 486

### on('keyDown'|'keyUp')

Z
zhouyongfei 已提交
487
on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
Z
zhouyongfei 已提交
488

H
Hollokin 已提交
489
订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhouyongfei 已提交
490

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

493
**参数:**
Z
zhouyongfei 已提交
494

W
wz 已提交
495 496
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
497
| type   | string         | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示订阅硬键盘抬起事件。 |
498
| callback | (event: [KeyEvent](#keyevent)) => boolean | 是 | 回调函数,返回按键信息。 |
Z
zhouyongfei 已提交
499

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

H
Hollokin 已提交
502 503 504 505 506 507 508 509 510 511 512 513
```js
inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent) => {
    console.info('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
    console.info('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
    return true;
});
inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent) => {
    console.info('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
    console.info('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
    return true;
});
```
Z
zhouyongfei 已提交
514 515 516

### off('keyDown'|'keyUp')

Z
zhouyongfei 已提交
517
off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void
Z
zhouyongfei 已提交
518

H
Hollokin 已提交
519
取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
Z
zhouyongfei 已提交
520

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

523
**参数:**
Z
zhouyongfei 已提交
524

525 526 527 528
| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                    | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示取消订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示取消订阅硬键盘抬起事件。 |
| callback | (event: [KeyEvent](#keyevent)) => boolean | 否   | 回调函数,返回按键信息。  |
Z
zhouyongfei 已提交
529

530
**示例:**
Z
zhouyongfei 已提交
531

H
Hollokin 已提交
532 533 534 535 536 537 538 539 540 541
```js
inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent) => {
    console.log('delete keyUp notification.');
    return true;
});
inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent) => {
    console.log('delete keyDown notification.');
    return true;
});
```
Z
zhouyongfei 已提交
542 543 544

### on('cursorContextChange')

Z
zhouyongfei 已提交
545
on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) => void): void
Z
zhouyongfei 已提交
546

H
Hollokin 已提交
547
订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
548

549
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
550

551
**参数:**
Z
zhouyongfei 已提交
552

553 554 555 556
| 参数名   | 类型                                           | 必填 | 说明                                                         |
| -------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                         | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示订阅光标变化事件。 |
| callback | (x: number, y: number, height: number) => void | 是   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。 |
Z
zhouyongfei 已提交
557

558
**示例:**
W
wz 已提交
559 560

```js
H
Hollokin 已提交
561
inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
Z
zhaolinglan 已提交
562 563 564
    console.log('inputMethodEngine cursorContextChange x:' + x);
    console.log('inputMethodEngine cursorContextChange y:' + y);
    console.log('inputMethodEngine cursorContextChange height:' + height);
W
wz 已提交
565 566
});
```
Z
zhouyongfei 已提交
567 568 569

### off('cursorContextChange')

570
off(type: 'cursorContextChange', callback?: (x: number, y: number, height: number) => void): void
Z
zhouyongfei 已提交
571

H
Hollokin 已提交
572
取消订阅光标变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
573

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

576
  **参数:**
Z
zhouyongfei 已提交
577

578 579 580 581
| 参数名   | 类型                                         | 必填 | 说明                                                         |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                       | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示光标变化。 |
| callback | (x: number, y:number, height:number) => void | 否   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。<br/> |
Z
zhouyongfei 已提交
582 583


584
  **示例:**
Z
zhouyongfei 已提交
585

W
wz 已提交
586
```js
H
Hollokin 已提交
587
inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
Z
zhaolinglan 已提交
588
    console.log('delete cursorContextChange notification.');
589
});
W
wz 已提交
590
```
Z
zhouyongfei 已提交
591 592
### on('selectionChange')

Z
zhouyongfei 已提交
593
on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
Z
zhouyongfei 已提交
594

H
Hollokin 已提交
595
订阅文本选择变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
596

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

H
Hollokin 已提交
599
**参数:**
Z
zhouyongfei 已提交
600

601 602 603 604
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 是   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。 |
Z
zhouyongfei 已提交
605

H
Hollokin 已提交
606
**示例:**
W
wz 已提交
607 608

```js
H
Hollokin 已提交
609
inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
610 611 612 613
    console.log('inputMethodEngine beforeEach selectionChange oldBegin:' + oldBegin);
    console.log('inputMethodEngine beforeEach selectionChange oldEnd:' + oldEnd);
    console.log('inputMethodEngine beforeEach selectionChange newBegin:' + newBegin);
    console.log('inputMethodEngine beforeEach selectionChange newEnd:' + newEnd);
W
wz 已提交
614 615
});
```
Z
zhouyongfei 已提交
616 617 618

### off('selectionChange')

Z
zhouyongfei 已提交
619
off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
Z
zhouyongfei 已提交
620

H
Hollokin 已提交
621
取消订阅文本选择变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
622

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

625
**参数:**
Z
zhouyongfei 已提交
626

627 628 629 630
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type     | string                                                       | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 否   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。<br/> |
Z
zhouyongfei 已提交
631

632
**示例:**
Z
zhouyongfei 已提交
633

W
wz 已提交
634
```js
H
Hollokin 已提交
635
inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
Z
zhaolinglan 已提交
636
  console.log('delete selectionChange notification.');
637
});
W
wz 已提交
638
```
Z
zhouyongfei 已提交
639 640 641 642


### on('textChange')

Z
zhouyongfei 已提交
643
on(type: 'textChange', callback: (text: string) => void): void
Z
zhouyongfei 已提交
644

H
Hollokin 已提交
645
订阅文本变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
646

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

H
Hollokin 已提交
649
**参数:**
Z
zhouyongfei 已提交
650

W
wz 已提交
651 652
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
653 654
| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示订阅文本变化事件。 |
| callback | (text: string) => void | 是   | 回调函数,返回订阅的文本内容。                                   |
Z
zhouyongfei 已提交
655

H
Hollokin 已提交
656
**示例:**
Z
zhouyongfei 已提交
657

W
wz 已提交
658
```js
H
Hollokin 已提交
659
inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
Z
zhaolinglan 已提交
660
    console.log('inputMethodEngine textChange. text:' + text);
W
wz 已提交
661 662
});
```
Z
zhouyongfei 已提交
663 664 665

### off('textChange')

Z
zhouyongfei 已提交
666
off(type: 'textChange', callback?: (text: string) => void): void
Z
zhouyongfei 已提交
667

H
Hollokin 已提交
668
取消订阅文本变化事件。使用callback异步回调。
Z
zhouyongfei 已提交
669

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

672
**参数:**
Z
zhouyongfei 已提交
673

W
wz 已提交
674 675
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
676 677
| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示取消订阅文本变化事件。 |
| callback | (text: string) => void | 否   | 回调函数,返回取消订阅的文本内容。 |
Z
zhouyongfei 已提交
678

679
**示例:**
Z
zhouyongfei 已提交
680

W
wz 已提交
681
```js
H
Hollokin 已提交
682
inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
Z
zhaolinglan 已提交
683
    console.log('delete textChange notification. text:' + text);
684
});
W
wz 已提交
685
```
Z
zhouyongfei 已提交
686

H
Hollokin 已提交
687
## KeyboardController
Z
zhouyongfei 已提交
688

H
Hollokin 已提交
689
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到KeyboardController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
690

H
Hollokin 已提交
691
### hide<sup>9+</sup>
H
Hollokin 已提交
692

H
Hollokin 已提交
693
hide(callback: AsyncCallback&lt;void&gt;): void
H
Hollokin 已提交
694 695 696

隐藏输入法。使用callback异步回调。

H
update  
Hollokin 已提交
697
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
698 699 700 701 702

**参数:**

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

H
Hollokin 已提交
705 706
**错误码:**

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

709
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
710
| -------- | -------------------------- |
711
| 12800003 | input method client error. |
H
Hollokin 已提交
712

H
Hollokin 已提交
713 714 715
**示例:**

```js
H
Hollokin 已提交
716 717 718
keyboardController.hide((err) => {
    if (err !== undefined) {
        console.error('Failed to hide keyboard: ' + JSON.stringify(err));
H
Hollokin 已提交
719 720
        return;
    }
H
Hollokin 已提交
721
    console.log('Succeeded in hiding keyboard.');
H
Hollokin 已提交
722 723 724 725 726 727 728 729 730
});
```

### hide<sup>9+</sup>

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

隐藏输入法。使用promise异步回调。

H
update  
Hollokin 已提交
731
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
732 733 734 735 736

**返回值:**

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

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

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

743
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
744
| -------- | -------------------------- |
745
| 12800003 | input method client error. |
H
Hollokin 已提交
746

H
Hollokin 已提交
747 748 749
**示例:**

```js
H
Hollokin 已提交
750 751
keyboardController.hide().then(() => {
    console.info('Succeeded in hiding keyboard.');
752
}).catch((err) => {
H
Hollokin 已提交
753
    console.info('Failed to hide keyboard: ' + JSON.stringify(err));
754
});
H
Hollokin 已提交
755 756 757
```

### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
758 759 760

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

H
Hollokin 已提交
761
隐藏输入法。使用callback异步回调。
Z
zhouyongfei 已提交
762

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

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

769
**参数:**
Z
refresh  
zhouyongfei 已提交
770

W
wz 已提交
771 772
| 参数名   | 类型                   | 必填 | 说明     |
| -------- | ---------------------- | ---- | -------- |
773
| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
Z
refresh  
zhouyongfei 已提交
774

775
**示例:**
Z
zhouyongfei 已提交
776

777
```js
H
Hollokin 已提交
778 779 780
keyboardController.hideKeyboard((err) => {
    if (err !== undefined) {
        console.error('Failed to hide Keyboard: ' + JSON.stringify(err));
781 782
        return;
    }
H
Hollokin 已提交
783
    console.log('Succeeded in hiding keyboard.');
784
});
Z
zhouyongfei 已提交
785 786
```

H
Hollokin 已提交
787
### hideKeyboard<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
788 789 790

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

H
Hollokin 已提交
791
隐藏输入法。使用promise异步回调。
Z
zhouyongfei 已提交
792

H
update  
Hollokin 已提交
793 794
> **说明:**
>
H
Hollokin 已提交
795 796
> 从API version 8开始支持,API version 9开始废弃, 建议使用[hide](#hide9-1)替代。

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

799
**返回值:**
Z
refresh  
zhouyongfei 已提交
800

801 802
| 类型             | 说明                      |
| ---------------- | ------------------------- |
H
Hollokin 已提交
803
| Promise&lt;void> | 无返回结果的Promise对象。 |
Z
refresh  
zhouyongfei 已提交
804

805
**示例:**
Z
zhouyongfei 已提交
806

807
```js
H
Hollokin 已提交
808 809
keyboardController.hideKeyboard().then(() => {
    console.info('Succeeded in hiding keyboard.');
810
}).catch((err) => {
H
Hollokin 已提交
811
    console.info('Failed to hide Keyboard: ' + JSON.stringify(err));
812
});
Z
zhouyongfei 已提交
813 814
```

H
Hollokin 已提交
815
## InputClient<sup>9+</sup>
Z
zhouyongfei 已提交
816

H
update  
Hollokin 已提交
817
下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
818 819 820 821 822

### sendKeyFunction<sup>9+</sup>

sendKeyFunction(action:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
823
发送功能键。使用callback异步回调。
H
Hollokin 已提交
824

H
update  
Hollokin 已提交
825
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
826 827 828 829 830

  **参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
831
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
832
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
H
Hollokin 已提交
833

H
Hollokin 已提交
834 835
**错误码:**

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

838
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
839
| -------- | -------------------------- |
840
| 12800003 | input method client error. |
H
Hollokin 已提交
841 842

 **示例:**
H
Hollokin 已提交
843 844

```js
845
let action = 1;
H
Hollokin 已提交
846
try {
H
Hollokin 已提交
847 848 849
    inputClient.sendKeyFunction(action, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
H
Hollokin 已提交
850 851 852
            return;
        }
        if (result) {
H
Hollokin 已提交
853
            console.info('Succeeded in sending key function. ');
H
Hollokin 已提交
854
        } else {
H
Hollokin 已提交
855
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
856 857 858 859 860 861 862 863 864
        }
    });
} catch (err) {
    console.error('sendKeyFunction err: ' + JSON.stringify(err));
}
```

### sendKeyFunction<sup>9+</sup>

865
sendKeyFunction(action: number): Promise&lt;boolean&gt;
H
Hollokin 已提交
866

H
Hollokin 已提交
867
发送功能键。使用promise异步回调。
H
Hollokin 已提交
868

H
update  
Hollokin 已提交
869
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
H
Hollokin 已提交
870 871 872 873 874

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
875
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
876 877 878 879 880

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
881
| Promise&lt;boolean&gt; |  Promise对象。返回true表示功能键发送成功;返回false表示功能键发送失败。|
H
Hollokin 已提交
882

H
Hollokin 已提交
883 884
**错误码:**

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

887
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
888
| -------- | -------------------------- |
889
| 12800003 | input method client error. |
H
Hollokin 已提交
890

H
Hollokin 已提交
891 892 893
**示例:**

```js
894
let action = 1;
H
Hollokin 已提交
895
try {
H
Hollokin 已提交
896
    inputClient.sendKeyFunction(action).then((result) => {
H
Hollokin 已提交
897
        if (result) {
H
Hollokin 已提交
898
            console.info('Succeeded in sending key function. ');
H
Hollokin 已提交
899
        } else {
H
Hollokin 已提交
900
            console.error('Failed to sendKeyFunction. ');
H
Hollokin 已提交
901 902
        }
    }).catch((err) => {
H
Hollokin 已提交
903
        console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
H
Hollokin 已提交
904 905
    });
} catch (err) {
H
Hollokin 已提交
906
    console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
H
Hollokin 已提交
907 908 909 910
}
```

### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
911 912 913

getForward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
914
获取光标前固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
915

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

918
**参数:**
Z
zhouyongfei 已提交
919

W
wz 已提交
920 921 922
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
923
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
Z
zhouyongfei 已提交
924

H
Hollokin 已提交
925 926
**错误码:**

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

929
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
930
| -------- | ------------------------------ |
931
| 12800003 | input method client error.     |
H
Hollokin 已提交
932 933
| 12800006 | Input method controller error. |

934 935
**示例:**

H
Hollokin 已提交
936 937 938
```js
let length = 1;
try {
H
Hollokin 已提交
939 940 941
    inputClient.getForward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
942 943
            return;
        }
H
Hollokin 已提交
944
        console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
945 946
    });
} catch (err) {
H
Hollokin 已提交
947
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
948 949
}
```
Z
zhouyongfei 已提交
950

H
Hollokin 已提交
951
### getForward<sup>9+</sup>
Z
zhouyongfei 已提交
952 953 954

getForward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
955
获取光标前固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
956

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

959
**参数:**
Z
zhouyongfei 已提交
960

W
wz 已提交
961 962 963
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
964

965 966
**返回值:**

W
wz 已提交
967 968
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
969
| Promise&lt;string&gt;           |  Promise对象,返回光标前固定长度的文本。                     |
Z
refresh  
zhouyongfei 已提交
970

H
Hollokin 已提交
971 972
**错误码:**

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

975
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
976
| -------- | ------------------------------ |
977
| 12800003 | input method client error.     |
H
Hollokin 已提交
978 979
| 12800006 | Input method controller error. |

980 981
**示例:**

H
Hollokin 已提交
982
```js
983 984
let length = 1;
try {
H
Hollokin 已提交
985 986
    inputClient.getForward(length).then((text) => {
        console.info('Succeeded in getting forward, text: ' + text);
987
    }).catch((err) => {
H
Hollokin 已提交
988
        console.error('Failed to getForward: ' + JSON.stringify(err));
989 990
    });
} catch (err) {
H
Hollokin 已提交
991
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
992 993
}
```
Z
zhouyongfei 已提交
994

H
Hollokin 已提交
995
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
996 997 998

getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
999
获取光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1000

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

1003
**参数:**
Z
zhouyongfei 已提交
1004

W
wz 已提交
1005 1006 1007
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1008
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
Z
zhouyongfei 已提交
1009

H
Hollokin 已提交
1010 1011
**错误码:**

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

1014
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1015
| -------- | ------------------------------ |
1016
| 12800003 | input method client error.     |
H
Hollokin 已提交
1017 1018
| 12800006 | Input method controller error. |

1019 1020
**示例:**

H
Hollokin 已提交
1021 1022 1023
```js
let length = 1;
try {
H
Hollokin 已提交
1024 1025 1026
    inputClient.getBackward(length, (err, text) => {
        if (err !== undefined) {
            console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1027 1028
            return;
        }
H
Hollokin 已提交
1029
        console.log('Succeeded in getting backward, text: ' + text);
H
Hollokin 已提交
1030 1031
    });
} catch (err) {
H
Hollokin 已提交
1032
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1033 1034
}
```
Z
zhouyongfei 已提交
1035

H
Hollokin 已提交
1036
### getBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1037 1038 1039

getBackward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1040
获取光标后固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
1041

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

1044
**参数:**
Z
zhouyongfei 已提交
1045

W
wz 已提交
1046 1047 1048
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1049

1050 1051
**返回值:**

W
wz 已提交
1052 1053
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1054
| Promise&lt;string&gt;           |  Promise对象,返回光标后固定长度的文本。                     |
Z
zhouyongfei 已提交
1055

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

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

1060
| 错误码ID | 错误信息                     |
H
Hollokin 已提交
1061
| -------- | ------------------------------ |
1062
| 12800003 | input method client error.     |
H
Hollokin 已提交
1063 1064
| 12800006 | Input method controller error. |

1065 1066
**示例:**

H
Hollokin 已提交
1067
```js
1068 1069
let length = 1;
try {
H
Hollokin 已提交
1070 1071
    inputClient.getBackward(length).then((text) => {
        console.info('Succeeded in getting backward, text: ' + text);
1072
    }).catch((err) => {
H
Hollokin 已提交
1073
        console.error('Failed to getForward: ' + JSON.stringify(err));
1074 1075
    });
} catch (err) {
H
Hollokin 已提交
1076
    console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1077 1078
}
```
Z
zhouyongfei 已提交
1079

H
Hollokin 已提交
1080
### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1081 1082 1083

deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1084
删除光标前固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1085

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

1088
**参数:**
Z
zhouyongfei 已提交
1089

W
wz 已提交
1090 1091 1092
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1093
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1094

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

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

1099
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1100 1101
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1102
| 12800003 | input method client error. |
H
Hollokin 已提交
1103

1104 1105
**示例:**

H
Hollokin 已提交
1106 1107 1108
```js
let length = 1;
try {
H
Hollokin 已提交
1109 1110 1111
    inputClient.deleteForward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1112 1113 1114
            return;
        }
        if (result) {
H
Hollokin 已提交
1115
            console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
1116
        } else {
H
Hollokin 已提交
1117
            console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1118 1119 1120
        }
    });
} catch (err) {
H
Hollokin 已提交
1121
    console.error('Failed to delete forward: ' + JSON.stringify(err));
H
Hollokin 已提交
1122 1123 1124 1125
}
```

### deleteForward<sup>9+</sup>
Z
zhouyongfei 已提交
1126 1127 1128

deleteForward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
1129
删除光标前固定长度的文本。使用promise异步回调。
Z
zhouyongfei 已提交
1130

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

1133
**参数:**
W
wz 已提交
1134 1135 1136 1137 1138

| 参数名 | 类型   | 必填 | 说明       |
| ------ | ------ | ---- | ---------- |
| length | number | 是   | 文本长度。 |

1139 1140
**返回值:**  

W
wz 已提交
1141 1142
| 类型                   | 说明           |
| ---------------------- | -------------- |
H
Hollokin 已提交
1143
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
Z
zhouyongfei 已提交
1144

H
Hollokin 已提交
1145 1146
**错误码:**

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

1149
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1150 1151
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1152
| 12800003 | input method client error. |
H
Hollokin 已提交
1153

1154 1155
**示例:**

W
wz 已提交
1156
```js
1157 1158
let length = 1;
try {
H
Hollokin 已提交
1159
    inputClient.deleteForward(length).then((result) => {
1160
        if (result) {
H
Hollokin 已提交
1161
            console.info('Succeeded in deleting forward. ');
1162
        } else {
H
Hollokin 已提交
1163
            console.error('Failed to delete Forward. ');
1164 1165
        }
    }).catch((err) => {
H
Hollokin 已提交
1166
        console.error('Failed to delete Forward: ' + JSON.stringify(err));
1167 1168
    });
} catch (err) {
H
Hollokin 已提交
1169
    console.error('Failed to delete Forward: ' + JSON.stringify(err));
1170
}
W
wz 已提交
1171 1172
```

H
Hollokin 已提交
1173
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1174 1175 1176

deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1177
删除光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1178

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

H
Hollokin 已提交
1181
**参数:**
Z
zhouyongfei 已提交
1182

W
wz 已提交
1183 1184 1185
| 参数名   | 类型                         | 必填 | 说明           |
| -------- | ---------------------------- | ---- | -------------- |
| length   | number                       | 是   | 文本长度。     |
H
Hollokin 已提交
1186
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1187

H
Hollokin 已提交
1188 1189
**错误码:**

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

1192
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1193 1194
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1195
| 12800003 | input method client error. |
H
Hollokin 已提交
1196 1197

**示例:**
1198

W
wz 已提交
1199
```js
H
Hollokin 已提交
1200 1201
let length = 1;
try {
H
Hollokin 已提交
1202 1203 1204
    inputClient.deleteBackward(length, (err, result) => {
        if (err !== undefined) {
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1205 1206 1207
            return;
        }
        if (result) {
H
Hollokin 已提交
1208
            console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
1209
        } else {
H
Hollokin 已提交
1210
            console.error('Failed to delete Backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1211 1212 1213 1214 1215
        }
    });
} catch (err) {
    console.error('deleteBackward err: ' + JSON.stringify(err));
}
W
wz 已提交
1216
```
Z
zhouyongfei 已提交
1217

H
Hollokin 已提交
1218
### deleteBackward<sup>9+</sup>
Z
zhouyongfei 已提交
1219 1220

deleteBackward(length:number): Promise&lt;boolean&gt;
Z
refresh  
zhouyongfei 已提交
1221

H
Hollokin 已提交
1222
删除光标后固定长度的文本。使用callback异步回调。
Z
zhouyongfei 已提交
1223

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

1226
**参数:**
B
bmeangel 已提交
1227

W
wz 已提交
1228 1229 1230
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
Z
zhouyongfei 已提交
1231

1232 1233
**返回值:** 

W
wz 已提交
1234 1235
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1236
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。 |
Z
zhouyongfei 已提交
1237

H
Hollokin 已提交
1238 1239
**错误码:**

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

1242
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1243 1244
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1245
| 12800003 | input method client error. |
H
Hollokin 已提交
1246

1247
**示例:**
Z
zhouyongfei 已提交
1248

W
wz 已提交
1249
```js
1250
let length = 1;
H
Hollokin 已提交
1251
inputClient.deleteBackward(length).then((result) => {
1252
    if (result) {
H
Hollokin 已提交
1253
        console.info('Succeeded in deleting backward. ');
1254 1255 1256 1257
    } else {
        console.error('Failed to deleteBackward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
1258
    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
1259
});
W
wz 已提交
1260
```
Z
zhouyongfei 已提交
1261

H
Hollokin 已提交
1262
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1263 1264 1265

insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1266
插入文本。使用callback异步回调。
Z
zhouyongfei 已提交
1267

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

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

W
wz 已提交
1272 1273 1274
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
1275
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
Z
zhouyongfei 已提交
1276

H
Hollokin 已提交
1277 1278
**错误码:**

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

1281
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1282 1283
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1284
| 12800003 | input method client error. |
H
Hollokin 已提交
1285

1286 1287
**示例:**

W
wz 已提交
1288
```js
H
Hollokin 已提交
1289 1290 1291
inputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
1292 1293 1294
        return;
    }
    if (result) {
H
Hollokin 已提交
1295
        console.info('Succeeded in inserting text. ');
1296
    } else {
H
Hollokin 已提交
1297
        console.error('Failed to insertText. ');
1298
    }
W
wz 已提交
1299 1300
});
```
Z
zhouyongfei 已提交
1301

H
Hollokin 已提交
1302
### insertText<sup>9+</sup>
Z
zhouyongfei 已提交
1303 1304

insertText(text:string): Promise&lt;boolean&gt;
Z
refresh  
zhouyongfei 已提交
1305

H
Hollokin 已提交
1306
插入文本。使用promise异步回调。
Z
zhouyongfei 已提交
1307

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

1310 1311
**参数:**

W
wz 已提交
1312 1313 1314
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
Z
zhouyongfei 已提交
1315

1316
**返回值:**  
W
wz 已提交
1317 1318 1319

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1320
| Promise&lt;boolean&gt;  |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。  |
Z
zhouyongfei 已提交
1321

H
Hollokin 已提交
1322 1323
**错误码:**

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

1326
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1327 1328
| -------- | -------------------------- |
| 12800002 | Input method engine error. |
1329
| 12800003 | input method client error. |
H
Hollokin 已提交
1330

1331
**示例:**
Z
zhouyongfei 已提交
1332

H
Hollokin 已提交
1333
```js
1334
try {
H
Hollokin 已提交
1335
    inputClient.insertText('test').then((result) => {
1336
        if (result) {
H
Hollokin 已提交
1337
            console.info('Succeeded in inserting text. ');
1338 1339 1340 1341
        } else {
            console.error('Failed to insertText. ');
        }
    }).catch((err) => {
H
Hollokin 已提交
1342
        console.error('Failed to insertText: ' + JSON.stringify(err));
1343 1344
    });
} catch (err) {
H
Hollokin 已提交
1345
    console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
1346 1347
}
```
W
wz 已提交
1348

H
Hollokin 已提交
1349
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
1350 1351 1352

getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void

H
Hollokin 已提交
1353
获取编辑框属性值。使用callback异步回调。
Z
zhouyongfei 已提交
1354

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

1357 1358
**参数:**

W
wz 已提交
1359 1360
| 参数名                         | 类型                          | 必填                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
H
Hollokin 已提交
1361
| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
Z
zhouyongfei 已提交
1362

H
Hollokin 已提交
1363 1364
**错误码:**

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

1367
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1368
| -------- | -------------------------- |
1369
| 12800003 | input method client error. |
H
Hollokin 已提交
1370

1371 1372
**示例:**

H
Hollokin 已提交
1373
```js
H
Hollokin 已提交
1374 1375 1376
inputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
1377 1378
        return;
    }
H
Hollokin 已提交
1379 1380
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
1381 1382
});
```
Z
zhouyongfei 已提交
1383

H
Hollokin 已提交
1384
### getEditorAttribute<sup>9+</sup>
Z
zhouyongfei 已提交
1385

Z
zhaolinglan 已提交
1386
getEditorAttribute(): Promise&lt;EditorAttribute&gt;
Z
refresh  
zhouyongfei 已提交
1387

H
Hollokin 已提交
1388
获取编辑框属性值。使用promise异步回调。
Z
zhouyongfei 已提交
1389

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

1392 1393
**返回值:**

W
wz 已提交
1394 1395
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1396
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
zhouyongfei 已提交
1397

H
Hollokin 已提交
1398 1399
**错误码:**

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

1402
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1403
| -------- | -------------------------- |
1404
| 12800003 | input method client error. |
H
Hollokin 已提交
1405

1406 1407
**示例:**

H
Hollokin 已提交
1408
```js
H
Hollokin 已提交
1409
inputClient.getEditorAttribute().then((editorAttribute) => {
1410 1411 1412
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
1413
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
1414
});
H
Hollokin 已提交
1415
```
Z
zhaolinglan 已提交
1416

H
Hollokin 已提交
1417
### moveCursor<sup>9+</sup>
1418

H
Hollokin 已提交
1419
moveCursor(direction: number, callback: AsyncCallback&lt;void&gt;): void
1420

H
Hollokin 已提交
1421
移动光标。使用callback异步回调。
Z
zhaolinglan 已提交
1422

H
update  
Hollokin 已提交
1423
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
1424

H
Hollokin 已提交
1425
**参数:**
Z
zhaolinglan 已提交
1426

H
Hollokin 已提交
1427 1428 1429
| 参数名    | 类型                      | 必填 | 说明           |
| --------- | ------------------------- | ---- | -------------- |
| direction | number                    | 是   | 光标移动方向。 |
H
update  
Hollokin 已提交
1430
| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象。    |
1431

H
Hollokin 已提交
1432 1433
**错误码:**

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

1436
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1437
| -------- | -------------------------- |
1438
| 12800003 | input method client error. |
H
Hollokin 已提交
1439

H
Hollokin 已提交
1440
**示例:**
1441

H
Hollokin 已提交
1442
```js
H
Hollokin 已提交
1443
try {
H
Hollokin 已提交
1444 1445 1446
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
        if (err !== undefined) {
            console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
1447 1448
            return;
        }
H
Hollokin 已提交
1449
        console.info('Succeeded in moving cursor.');
H
Hollokin 已提交
1450 1451
    });
} catch (err) {
H
Hollokin 已提交
1452
    console.error('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
1453
}
1454 1455
```

H
Hollokin 已提交
1456
### moveCursor<sup>9+</sup>
1457

H
Hollokin 已提交
1458
moveCursor(direction: number): Promise&lt;void&gt;
1459

H
Hollokin 已提交
1460
移动光标。使用promise异步回调。
1461

H
update  
Hollokin 已提交
1462
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1463 1464 1465

**参数:**

H
Hollokin 已提交
1466 1467 1468
| 参数名    | 类型   | 必填 | 说明           |
| --------- | ------ | ---- | -------------- |
| direction | number | 是   | 光标移动方向。 |
1469

H
Hollokin 已提交
1470
**返回值:**  
1471

H
Hollokin 已提交
1472 1473
| 类型                | 说明                      |
| ------------------- | ------------------------- |
H
Hollokin 已提交
1474
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1475

H
Hollokin 已提交
1476 1477
**错误码:**

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

1480
| 错误码ID | 错误信息                 |
H
Hollokin 已提交
1481
| -------- | -------------------------- |
1482
| 12800003 | input method client error. |
H
Hollokin 已提交
1483

1484 1485
**示例:**

H
Hollokin 已提交
1486
```js
1487
try {
H
Hollokin 已提交
1488 1489
    inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
        console.log('Succeeded in moving cursor.');
1490
    }).catch((err) => {
H
Hollokin 已提交
1491
        console.error('Failed to moveCursor: ' + JSON.stringify(err));
1492 1493
    });
} catch (err) {
H
Hollokin 已提交
1494
    console.log('Failed to moveCursor: ' + JSON.stringify(err));
H
Hollokin 已提交
1495
}
H
Hollokin 已提交
1496
```
1497

Z
add doc  
zhaolinglan 已提交
1498 1499 1500 1501 1502 1503 1504 1505 1506 1507
### selectByRange<sup>10+</sup>

selectByRange(range: Range, callback: AsyncCallback&lt;void&gt;): void

根据索引范围选中文本。使用callback异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
1508 1509 1510 1511
| 参数名   | 类型                                                      | 必填 | 说明                                                         |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| range    | [Range](./js-apis-inputmethod-InputMethodCommon.md#range) | 是   | 选中文本的范围。                                             |
| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
1512 1513 1514 1515 1516 1517 1518 1519

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
1520
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
1521 1522 1523 1524 1525 1526 1527

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
1528
            console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1529 1530 1531 1532 1533
            return;
        }
        console.info('Succeeded in selecting by range.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
1534
    console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547
}
```

### selectByRange<sup>10+</sup>

selectByRange(range: Range): Promise&lt;void&gt;

根据索引范围选中文本。使用promise异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
1548 1549 1550
| 参数名 | 类型                                                      | 必填 | 说明             |
| ------ | --------------------------------------------------------- | ---- | ---------------- |
| range  | [Range](./js-apis-inputmethod-InputMethodCommon.md#range) | 是   | 选中文本的范围。 |
Z
add doc  
zhaolinglan 已提交
1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
1565
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
1566 1567 1568 1569 1570 1571 1572 1573

**示例:**

```js
try {
    inputClient.selectByRange({start: 0, end:1}).then(() => {
        console.log('Succeeded in selecting by range.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
1574
        console.error('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1575 1576
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
1577
    console.log('Failed to selectByRange: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
}
```

### selectByMovement<sup>10+</sup>

selectByMovement(movement: Movement, callback: AsyncCallback&lt;void&gt;): void

根据光标移动方向选中文本。使用callback异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
1591 1592 1593 1594
| 参数名   | 类型                                                         | 必填 | 说明                                                         |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| movement | [Movement](./js-apis-inputmethod-InputMethodCommon.md#movement) | 是   | 选中时光标移动的方向。                                       |
| callback | AsyncCallback&lt;void&gt;                                    | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
1595 1596 1597 1598 1599 1600 1601 1602

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
1603
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
1604 1605 1606 1607 1608 1609 1610

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}, (err) => {
        if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
1611
            console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1612 1613 1614 1615 1616
            return;
        }
        console.info('Succeeded in selecting by movement.');
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
1617
    console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1618 1619 1620 1621 1622
}
```

### selectByMovement<sup>10+</sup>

1623
selectByMovement(movement: Movement): Promise&lt;void&gt;
Z
add doc  
zhaolinglan 已提交
1624 1625 1626 1627 1628 1629 1630

根据索引范围选中文本。使用promise异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
1631 1632 1633
| 参数名   | 类型                                                         | 必填 | 说明                   |
| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
| movement | [Movement](./js-apis-inputmethod-InputMethodCommon.md#movement) | 是   | 选中时光标移动的方向。 |
Z
add doc  
zhaolinglan 已提交
1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647

**返回值:**

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

**错误码:**

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

| 错误码ID | 错误信息                   |
| -------- | -------------------------- |
| 401      | parameter error.           |
1648
| 12800003 | input method client error. |
Z
add doc  
zhaolinglan 已提交
1649 1650 1651 1652 1653 1654 1655 1656

**示例:**

```js
try {
    inputClient.selectByMovement({direction: 1}).then(() => {
        console.log('Succeeded in selecting by movement.');
    }).catch((err) => {
Z
add doc  
zhaolinglan 已提交
1657
        console.error('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1658 1659
    });
} catch (err) {
Z
add doc  
zhaolinglan 已提交
1660
    console.log('Failed to selectByMovement: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1661 1662 1663
}
```

Z
add doc  
zhaolinglan 已提交
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673
### getTextIndexAtCursor<sup>10+</sup>

getTextIndexAtCursor(callback: AsyncCallback&lt;number&gt;): void

获取光标所在处的文本索引。使用callback异步回调。

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

**参数:**

Z
add doc  
zhaolinglan 已提交
1674 1675 1676
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
Z
add doc  
zhaolinglan 已提交
1677 1678 1679 1680 1681 1682 1683 1684

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
| 401      | parameter error.               |
1685
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
1686 1687 1688 1689 1690 1691 1692
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor((err, index) => {
    if (err !== undefined) {
Z
add doc  
zhaolinglan 已提交
1693
        console.error('Failed to getTextIndexAtCursor: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709
        return;
    }
    console.info('Succeeded in getTextIndexAtCursor: ' + index);
});
```

### getTextIndexAtCursor<sup>10+</sup>

getTextIndexAtCursor(): Promise&lt;number&gt;

获取光标所在处的文本索引。使用promise异步回调。

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

**返回值:**

Z
add doc  
zhaolinglan 已提交
1710 1711 1712
| 类型                  | 说明                                    |
| --------------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
Z
add doc  
zhaolinglan 已提交
1713 1714 1715 1716 1717 1718 1719

**错误码:**

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

| 错误码ID | 错误信息                       |
| -------- | ------------------------------ |
1720
| 12800003 | input method client error.     |
Z
add doc  
zhaolinglan 已提交
1721 1722 1723 1724 1725 1726 1727 1728
| 12800006 | Input method controller error. |

**示例:**

```js
inputClient.getTextIndexAtCursor().then((index) => {
    console.info('Succeeded in getTextIndexAtCursor: ' + index);
}).catch((err) => {
Z
add doc  
zhaolinglan 已提交
1729
    console.error('Failed to getTextIndexAtCursor: ${err.message}');
Z
add doc  
zhaolinglan 已提交
1730 1731 1732
});
```

H
Hollokin 已提交
1733
## EditorAttribute
1734

H
Hollokin 已提交
1735
编辑框属性值。
1736

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

1739
| 名称         | 类型 | 可读 | 可写 | 说明               |
H
Hollokin 已提交
1740 1741 1742 1743
| ------------ | -------- | ---- | ---- | ------------------ |
| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |

H
Hollokin 已提交
1744
## KeyEvent
H
Hollokin 已提交
1745 1746 1747

按键属性值。

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

1750
| 名称      | 类型 | 可读 | 可写 | 说明         |
H
Hollokin 已提交
1751 1752 1753 1754
| --------- | -------- | ---- | ---- | ------------ |
| keyCode   | number   | 是   | 否   | 按键的键值。 |
| keyAction | number   | 是   | 否   | 按键的状态。 |

H
Hollokin 已提交
1755 1756
## TextInputClient<sup>(deprecated)</sup>

H
update  
Hollokin 已提交
1757 1758
> **说明:** 
>
H
Hollokin 已提交
1759
> 从API version 8开始支持,API version 9开始废弃, 建议使用[InputClient](#inputclient9)替代。
H
Hollokin 已提交
1760

H
Hollokin 已提交
1761
下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
H
Hollokin 已提交
1762 1763 1764 1765 1766

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

getForward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
1767
获取光标前固定长度的文本。使用callback异步回调。
H
Hollokin 已提交
1768

H
update  
Hollokin 已提交
1769 1770
> **说明:**
>
H
Hollokin 已提交
1771
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代。
1772

H
update  
Hollokin 已提交
1773
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1774 1775 1776 1777 1778 1779

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1780
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
1781 1782 1783

**示例:**

H
Hollokin 已提交
1784 1785
```js
let length = 1;
H
Hollokin 已提交
1786 1787 1788
textInputClient.getForward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1789 1790
        return;
    }
H
Hollokin 已提交
1791
    console.log('Succeeded in getting forward, text: ' + text);
H
Hollokin 已提交
1792 1793
});
```
1794

H
Hollokin 已提交
1795
### getForward<sup>(deprecated)</sup>
1796 1797 1798

getForward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1799
获取光标前固定长度的文本。使用promise异步回调。
1800

H
update  
Hollokin 已提交
1801 1802
> **说明:**
>
H
update  
Hollokin 已提交
1803
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代。
H
Hollokin 已提交
1804

H
update  
Hollokin 已提交
1805
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1817
| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
1818 1819 1820

**示例:**

H
Hollokin 已提交
1821
```js
1822
let length = 1;
H
Hollokin 已提交
1823 1824
textInputClient.getForward(length).then((text) => {
    console.info('Succeeded in getting forward, text: ' + text);
1825
}).catch((err) => {
H
Hollokin 已提交
1826
    console.error('Failed to getForward: ' + JSON.stringify(err));
1827
});
H
Hollokin 已提交
1828
```
1829

H
Hollokin 已提交
1830
### getBackward<sup>(deprecated)</sup>
1831 1832 1833

getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void

H
Hollokin 已提交
1834
获取光标后固定长度的文本。使用callback异步回调。
1835

H
update  
Hollokin 已提交
1836 1837
> **说明:**
>
H
update  
Hollokin 已提交
1838
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代。
H
Hollokin 已提交
1839

H
update  
Hollokin 已提交
1840
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1841 1842 1843 1844 1845 1846

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1847
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
1848 1849 1850

**示例:**

H
Hollokin 已提交
1851 1852
```js
let length = 1;
H
Hollokin 已提交
1853 1854 1855
textInputClient.getBackward(length, (err, text) => {
    if (err !== undefined) {
        console.error('Failed to getBackward: ' + JSON.stringify(err));
H
Hollokin 已提交
1856 1857
        return;
    }
H
Hollokin 已提交
1858
    console.log('Succeeded in getting borward, text: ' + text);
H
Hollokin 已提交
1859 1860
});
```
1861

H
Hollokin 已提交
1862
### getBackward<sup>(deprecated)</sup>
1863 1864 1865

getBackward(length:number): Promise&lt;string&gt;

H
Hollokin 已提交
1866
获取光标后固定长度的文本。使用promise异步回调。
1867

H
update  
Hollokin 已提交
1868 1869
> **说明:**
>
H
update  
Hollokin 已提交
1870
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代。
H
Hollokin 已提交
1871

H
update  
Hollokin 已提交
1872
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |

**返回值:**

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
1884
| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
1885 1886 1887

**示例:**

H
Hollokin 已提交
1888
```js
1889
let length = 1;
H
Hollokin 已提交
1890 1891
textInputClient.getBackward(length).then((text) => {
    console.info('Succeeded in getting backward: ' + JSON.stringify(text));
1892
}).catch((err) => {
H
Hollokin 已提交
1893
    console.error('Failed to getBackward: ' + JSON.stringify(err));
1894
});
H
Hollokin 已提交
1895
```
1896

H
Hollokin 已提交
1897
### deleteForward<sup>(deprecated)</sup>
1898 1899 1900

deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1901
删除光标前固定长度的文本。使用callback异步回调。
1902

H
update  
Hollokin 已提交
1903 1904
> **说明:**
>
H
update  
Hollokin 已提交
1905
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代。
H
Hollokin 已提交
1906

H
update  
Hollokin 已提交
1907
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1908 1909 1910 1911 1912 1913

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
H
Hollokin 已提交
1914
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
1915 1916 1917

**示例:**

H
Hollokin 已提交
1918 1919
```js
let length = 1;
H
Hollokin 已提交
1920 1921 1922
textInputClient.deleteForward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to deleteForward: ' + JSON.stringify(err));
H
Hollokin 已提交
1923 1924 1925
        return;
    }
    if (result) {
H
Hollokin 已提交
1926
        console.info('Succeeded in deleting forward. ');
H
Hollokin 已提交
1927
    } else {
H
Hollokin 已提交
1928
        console.error('Failed to deleteForward. ');
H
Hollokin 已提交
1929 1930 1931
    }
});
```
H
Hollokin 已提交
1932

H
Hollokin 已提交
1933
### deleteForward<sup>(deprecated)</sup>
1934 1935 1936

deleteForward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
1937
删除光标前固定长度的文本。使用promise异步回调。
1938

H
update  
Hollokin 已提交
1939 1940
> **说明:**
>
H
update  
Hollokin 已提交
1941
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代。
H
Hollokin 已提交
1942

H
update  
Hollokin 已提交
1943
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954

**参数:**

| 参数名 | 类型   | 必填 | 说明       |
| ------ | ------ | ---- | ---------- |
| length | number | 是   | 文本长度。 |

**返回值:**  

| 类型                   | 说明           |
| ---------------------- | -------------- |
H
Hollokin 已提交
1955
| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
1956 1957 1958 1959

**示例:**

```js
1960
let length = 1;
H
Hollokin 已提交
1961
textInputClient.deleteForward(length).then((result) => {
1962
    if (result) {
H
Hollokin 已提交
1963
        console.info('Succeeded in deleting forward. ');
1964 1965 1966 1967
    } else {
        console.error('Failed to delete forward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
1968
    console.error('Failed to delete forward: ' + JSON.stringify(err));
1969
});
1970 1971
```

H
Hollokin 已提交
1972
### deleteBackward<sup>(deprecated)</sup>
1973 1974 1975

deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void

H
Hollokin 已提交
1976
删除光标后固定长度的文本。使用callback异步回调。
1977

H
update  
Hollokin 已提交
1978 1979
> **说明:**
>
H
update  
Hollokin 已提交
1980
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代。
H
Hollokin 已提交
1981

H
update  
Hollokin 已提交
1982
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1983 1984 1985 1986 1987 1988

  **参数:**

| 参数名   | 类型                         | 必填 | 说明           |
| -------- | ---------------------------- | ---- | -------------- |
| length   | number                       | 是   | 文本长度。     |
H
Hollokin 已提交
1989
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。|
1990 1991 1992 1993

  **示例:**

```js
H
Hollokin 已提交
1994
let length = 1;
H
Hollokin 已提交
1995 1996 1997
textInputClient.deleteBackward(length, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to delete backward: ' + JSON.stringify(err));
H
Hollokin 已提交
1998 1999 2000
        return;
    }
    if (result) {
H
Hollokin 已提交
2001
        console.info('Succeeded in deleting backward. ');
H
Hollokin 已提交
2002
    } else {
H
Hollokin 已提交
2003
        console.error('Failed to deleteBackward. ');
H
Hollokin 已提交
2004 2005
    }
});
2006 2007
```

H
Hollokin 已提交
2008
### deleteBackward<sup>(deprecated)</sup>
2009 2010 2011

deleteBackward(length:number): Promise&lt;boolean&gt;

H
Hollokin 已提交
2012
删除光标后固定长度的文本。使用callback异步回调。
2013

H
update  
Hollokin 已提交
2014 2015
> **说明:**
>
H
update  
Hollokin 已提交
2016
> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代。
H
Hollokin 已提交
2017

H
update  
Hollokin 已提交
2018
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |

**返回值:** 

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2030
| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
2031 2032 2033 2034

**示例:**

```js
2035
let length = 1;
H
Hollokin 已提交
2036
textInputClient.deleteBackward(length).then((result) => {
2037
    if (result) {
H
Hollokin 已提交
2038
        console.info('Succeeded in deleting backward. ');
2039 2040 2041 2042
    } else {
        console.error('Failed to deleteBackward. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2043
    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
2044
});
2045
```
H
Hollokin 已提交
2046
### sendKeyFunction<sup>(deprecated)</sup>
2047

2048
sendKeyFunction(action: number, callback: AsyncCallback&lt;boolean&gt;): void
2049

H
Hollokin 已提交
2050
发送功能键。使用callback异步回调。
2051

H
update  
Hollokin 已提交
2052 2053
> **说明:**
>
H
update  
Hollokin 已提交
2054
> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代。
2055

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

H
Hollokin 已提交
2058
  **参数:**
2059 2060 2061

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
2062
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
H
Hollokin 已提交
2063
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
2064

H
Hollokin 已提交
2065
  **示例:**
2066 2067

```js
2068
let action = 1;
H
Hollokin 已提交
2069 2070 2071
textInputClient.sendKeyFunction(action, (err, result) => {
    if (err !== undefined) {
        console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
2072 2073 2074
        return;
    }
    if (result) {
H
Hollokin 已提交
2075
        console.info('Succeeded in sending key function. ');
2076
    } else {
H
Hollokin 已提交
2077
        console.error('Failed to sendKeyFunction. ');
2078 2079 2080 2081
    }
});
```

H
Hollokin 已提交
2082
### sendKeyFunction<sup>(deprecated)</sup>
2083

2084
sendKeyFunction(action: number): Promise&lt;boolean&gt;
2085

H
Hollokin 已提交
2086
发送功能键。使用promise异步回调。
H
Hollokin 已提交
2087

H
update  
Hollokin 已提交
2088 2089
> **说明:**
>
H
update  
Hollokin 已提交
2090
> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代。
2091

H
update  
Hollokin 已提交
2092
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2093 2094 2095 2096 2097

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
2098
| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
2099

H
Hollokin 已提交
2100
**返回值:**
2101 2102 2103

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2104
| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
2105 2106 2107

**示例:**

H
Hollokin 已提交
2108
```js
2109
let action = 1;
H
Hollokin 已提交
2110
textInputClient.sendKeyFunction(action).then((result) => {
2111
    if (result) {
H
Hollokin 已提交
2112
        console.info('Succeeded in sending key function. ');
2113 2114 2115 2116
    } else {
        console.error('Failed to sendKeyFunction. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2117
    console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
2118
});
H
Hollokin 已提交
2119
```
2120

H
Hollokin 已提交
2121
### insertText<sup>(deprecated)</sup>
2122

H
Hollokin 已提交
2123
insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
2124

H
Hollokin 已提交
2125
插入文本。使用callback异步回调。
H
Hollokin 已提交
2126

H
update  
Hollokin 已提交
2127 2128
> **说明:**
>
H
update  
Hollokin 已提交
2129
> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代。
2130

H
update  
Hollokin 已提交
2131
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2132 2133 2134

**参数:**

H
Hollokin 已提交
2135 2136 2137
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
H
Hollokin 已提交
2138
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
2139 2140 2141

**示例:**

H
Hollokin 已提交
2142
```js
H
Hollokin 已提交
2143 2144 2145
textInputClient.insertText('test', (err, result) => {
    if (err !== undefined) {
        console.error('Failed to insertText: ' + JSON.stringify(err));
H
Hollokin 已提交
2146 2147 2148
        return;
    }
    if (result) {
H
Hollokin 已提交
2149
        console.info('Succeeded in inserting text. ');
H
Hollokin 已提交
2150
    } else {
H
Hollokin 已提交
2151
        console.error('Failed to insertText. ');
H
Hollokin 已提交
2152 2153 2154
    }
});
```
2155

H
Hollokin 已提交
2156
### insertText<sup>(deprecated)</sup>
2157

H
Hollokin 已提交
2158
insertText(text:string): Promise&lt;boolean&gt;
2159

H
Hollokin 已提交
2160
插入文本。使用promise异步回调。
2161

H
update  
Hollokin 已提交
2162 2163
> **说明:**
>
H
update  
Hollokin 已提交
2164
> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代。
2165

H
update  
Hollokin 已提交
2166
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2167 2168 2169

**参数:**

H
Hollokin 已提交
2170 2171 2172 2173 2174 2175 2176 2177
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |

**返回值:**  

| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2178
| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
Z
zhaolinglan 已提交
2179 2180 2181 2182

**示例:**

```js
H
Hollokin 已提交
2183
textInputClient.insertText('test').then((result) => {
2184
    if (result) {
H
Hollokin 已提交
2185
        console.info('Succeeded in inserting text. ');
2186 2187 2188 2189
    } else {
        console.error('Failed to insertText. ');
    }
}).catch((err) => {
H
Hollokin 已提交
2190
    console.error('Failed to insertText: ' + JSON.stringify(err));
2191
});
Z
zhaolinglan 已提交
2192 2193
```

H
Hollokin 已提交
2194
### getEditorAttribute<sup>(deprecated)</sup>
Z
zhaolinglan 已提交
2195

H
Hollokin 已提交
2196
getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
Z
zhaolinglan 已提交
2197

H
Hollokin 已提交
2198
获取编辑框属性值。使用callback异步回调。
H
Hollokin 已提交
2199

H
update  
Hollokin 已提交
2200 2201
> **说明:**
>
H
update  
Hollokin 已提交
2202
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代。
Z
zhaolinglan 已提交
2203

H
update  
Hollokin 已提交
2204
**系统能力:** SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
2205 2206 2207

**参数:**

H
Hollokin 已提交
2208 2209
| 参数名                         | 类型                          | 必填                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
H
Hollokin 已提交
2210
| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框的属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
Z
zhaolinglan 已提交
2211 2212 2213

**示例:**

H
Hollokin 已提交
2214
```js
H
Hollokin 已提交
2215 2216 2217
textInputClient.getEditorAttribute((err, editorAttribute) => {
    if (err !== undefined) {
        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
H
Hollokin 已提交
2218
        return;
H
Hollokin 已提交
2219
    }
H
Hollokin 已提交
2220 2221
    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
H
Hollokin 已提交
2222 2223
});
```
Z
zhaolinglan 已提交
2224

H
Hollokin 已提交
2225
### getEditorAttribute<sup>(deprecated)</sup>
Z
zhouyongfei 已提交
2226

H
Hollokin 已提交
2227
getEditorAttribute(): Promise&lt;EditorAttribute&gt;
Z
zhouyongfei 已提交
2228

H
Hollokin 已提交
2229
获取编辑框属性值。使用promise异步回调。
Z
刷新  
zhouyongfei 已提交
2230

H
update  
Hollokin 已提交
2231 2232
> **说明:**
>
H
update  
Hollokin 已提交
2233
> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代。
Z
zhouyongfei 已提交
2234

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

H
Hollokin 已提交
2237
**返回值:**
Z
zhouyongfei 已提交
2238

H
Hollokin 已提交
2239 2240
| 类型                            | 说明                                                         |
| ------------------------------- | ------------------------------------------------------------ |
H
Hollokin 已提交
2241
| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
Z
刷新  
zhouyongfei 已提交
2242

H
Hollokin 已提交
2243
**示例:**
Z
zhouyongfei 已提交
2244

H
Hollokin 已提交
2245
```js
H
Hollokin 已提交
2246
textInputClient.getEditorAttribute().then((editorAttribute) => {
2247 2248 2249
    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
}).catch((err) => {
H
Hollokin 已提交
2250
    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
2251
});
2252
```