• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.inputMethodEngine (输入法服务)
2
3本模块面向输入法应用(包括系统输入法应用、三方输入法应用),为输入法应用提供能力,功能包括:创建软键盘窗口、插入/删除字符、选中文本、物理键盘按键事件监听等。
4
5> **说明:**
6>
7>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```
12import inputMethodEngine from '@ohos.inputMethodEngine';
13```
14
15## 常量
16
17功能键常量值、编辑框常量值及光标常量值。
18
19**系统能力:** SystemCapability.MiscServices.InputMethodFramework
20
21| 名称 | 类型 | 值 | 说明 |
22| -------- | -------- | -------- | -------- |
23| ENTER_KEY_TYPE_UNSPECIFIED | number | 0 | 无功能键。 |
24| ENTER_KEY_TYPE_GO | number | 2 | “前往”功能键。 |
25| ENTER_KEY_TYPE_SEARCH | number | 3 | “搜索”功能键。 |
26| ENTER_KEY_TYPE_SEND | number | 4 | “发送”功能键。 |
27| ENTER_KEY_TYPE_NEXT | number | 5 | “下一个”功能键。 |
28| ENTER_KEY_TYPE_DONE | number | 6 | “回车”功能键。 |
29| ENTER_KEY_TYPE_PREVIOUS | number | 7 | “前一个”功能键。 |
30| PATTERN_NULL | number | -1 | 无特殊性编辑框。 |
31| PATTERN_TEXT | number | 0 | 文本编辑框。 |
32| PATTERN_NUMBER | number | 2 | 数字编辑框。 |
33| PATTERN_PHONE | number | 3 | 电话号码编辑框。 |
34| PATTERN_DATETIME | number | 4 | 日期编辑框。 |
35| PATTERN_EMAIL | number | 5 | 邮件编辑框。 |
36| PATTERN_URI | number | 6 | 超链接编辑框。 |
37| PATTERN_PASSWORD | number | 7 | 密码编辑框。 |
38| OPTION_ASCII | number | 20 | 允许输入ASCII值。 |
39| OPTION_NONE | number | 0 | 不指定编辑框输入属性。 |
40| OPTION_AUTO_CAP_CHARACTERS | number | 2 | 允许输入字符。 |
41| OPTION_AUTO_CAP_SENTENCES | number | 8 | 允许输入句子。 |
42| OPTION_AUTO_WORDS | number | 4 | 允许输入单词。 |
43| OPTION_MULTI_LINE | number | 1 | 允许输入多行。 |
44| OPTION_NO_FULLSCREEN | number | 10 | 半屏样式。 |
45| FLAG_SELECTING | number | 2 | 编辑框处于选择状态。 |
46| FLAG_SINGLE_LINE | number | 1 | 编辑框为单行。 |
47| DISPLAY_MODE_PART | number | 0 | 编辑框显示为半屏。 |
48| DISPLAY_MODE_FULL | number | 1 | 编辑框显示为全屏。 |
49| CURSOR_UP<sup>9+</sup> | number | 1 | 光标上移。 |
50| CURSOR_DOWN<sup>9+</sup> | number | 2 | 光标下移。 |
51| CURSOR_LEFT<sup>9+</sup> | number | 3 | 光标左移。 |
52| CURSOR_RIGHT<sup>9+</sup> | number | 4 | 光标右移。 |
53| WINDOW_TYPE_INPUT_METHOD_FLOAT<sup>9+</sup> | number | 2105 | 输入法应用窗口风格标识。 |
54
55## inputMethodEngine.getInputMethodAbility<sup>9+</sup>
56
57getInputMethodAbility(): InputMethodAbility
58
59为输入法应用获取输入法应用客户端实例[InputMethodAbility](#inputmethodability)。输入法应用获取该实例可订阅软键盘显示/隐藏请求事件等。
60
61**系统能力:** SystemCapability.MiscServices.InputMethodFramework
62
63**返回值:**
64
65| 类型                                      | 说明               |
66| ----------------------------------------- | ------------------ |
67| [InputMethodAbility](#inputmethodability) | 输入法应用客户端。 |
68
69**示例:**
70
71```js
72let InputMethodAbility = inputMethodEngine.getInputMethodAbility();
73```
74
75## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
76
77getKeyboardDelegate(): KeyboardDelegate
78
79为输入法应用获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。输入法应用获取该实例可订阅物理键盘按键事件、选中文本变化事件等。
80
81**系统能力:** SystemCapability.MiscServices.InputMethodFramework
82
83**返回值:**
84
85| 类型                                  | 说明                     |
86| ------------------------------------- | ------------------------ |
87| [KeyboardDelegate](#keyboarddelegate) | 客户端编辑事件监听代理。 |
88
89**示例:**
90
91```js
92let KeyboardDelegate = inputMethodEngine.getKeyboardDelegate();
93```
94
95## inputMethodEngine.getInputMethodEngine<sup>(deprecated)</sup>
96
97getInputMethodEngine(): InputMethodEngine
98
99为输入法应用获取输入法应用客户端实例[InputMethodEngine](#inputmethodengine-1)。输入法应用获取该实例可订阅软键盘显示/隐藏请求事件等。
100
101> **说明:**
102>
103> 从API version 8开始支持,API version 9开始废弃, 建议使用[getInputMethodAbility()](#inputmethodenginegetinputmethodability9)替代。
104
105**系统能力:** SystemCapability.MiscServices.InputMethodFramework
106
107**返回值:**
108
109| 类型                                      | 说明               |
110| ----------------------------------------- | ------------------ |
111| [InputMethodEngine](#inputmethodengine-1) | 输入法应用客户端。 |
112
113**示例:**
114
115```js
116let InputMethodEngine = inputMethodEngine.getInputMethodEngine();
117```
118
119## inputMethodEngine.createKeyboardDelegate<sup>(deprecated)</sup>
120
121createKeyboardDelegate(): KeyboardDelegate
122
123为输入法应用获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。输入法应用获取该实例可订阅物理键盘按键事件、选中文本变化事件等。
124
125> **说明:**
126>
127>从API version 8开始支持,API version 9开始废弃, 建议使用[getKeyboardDelegate()](#inputmethodenginegetkeyboarddelegate9)替代。
128
129**系统能力:** SystemCapability.MiscServices.InputMethodFramework
130
131**返回值:**
132
133| 类型                                  | 说明                     |
134| ------------------------------------- | ------------------------ |
135| [KeyboardDelegate](#keyboarddelegate) | 客户端编辑事件监听代理。 |
136
137**示例:**
138
139```js
140let keyboardDelegate = inputMethodEngine.createKeyboardDelegate();
141```
142
143## InputMethodEngine
144
145下列API示例中都需使用[getInputMethodEngine](#inputmethodenginegetinputmethodenginedeprecated)回调获取到InputMethodEngine实例,再通过此实例调用对应方法。
146
147### on('inputStart')
148
149on(type: 'inputStart', callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
150
151订阅输入法绑定成功事件。使用callback异步回调。
152
153**系统能力:** SystemCapability.MiscServices.InputMethodFramework
154
155**参数:**
156
157| 参数名   | 类型                            | 必填 | 说明                                                         |
158| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
159| type     | string                        | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
160| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 是 | 回调函数,返回订阅输入法的KeyboardController和TextInputClient实例。 |
161
162**示例:**
163
164```js
165inputMethodEngine.getInputMethodEngine().on('inputStart', (kbController, textClient) => {
166    let keyboardController = kbController;
167    let textInputClient = textClient;
168});
169```
170
171### off('inputStart')
172
173off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
174
175取消订阅输入法绑定成功事件。
176
177**系统能力:** SystemCapability.MiscServices.InputMethodFramework
178
179**参数:**
180
181| 参数名   | 类型                 | 必填 | 说明                     |
182| -------- | -------------------- | ---- | ------------------------ |
183| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
184| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 否 | 回调函数,返回取消订阅的KeyboardController和TextInputClient实例。 |
185
186**示例:**
187
188```js
189inputMethodEngine.getInputMethodEngine().off('inputStart', (kbController, textInputClient) => {
190    console.log('delete inputStart notification.');
191});
192```
193
194### on('keyboardShow'|'keyboardHide')
195
196on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
197
198订阅输入法事件。使用callback异步回调。
199
200**系统能力:** SystemCapability.MiscServices.InputMethodFramework
201
202**参数:**
203
204| 参数名   | 类型   | 必填 | 说明                                                         |
205| -------- | ------ | ---- | ------------------------------------------------------------ |
206| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
207| callback | () => void   | 是   | 回调函数。                                                   |
208
209**示例:**
210
211```js
212inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
213    console.log('inputMethodEngine keyboardShow.');
214});
215inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
216    console.log('inputMethodEngine keyboardHide.');
217});
218```
219
220### off('keyboardShow'|'keyboardHide')
221
222off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
223
224取消订阅输入法事件。使用callback异步回调。
225
226**系统能力:** SystemCapability.MiscServices.InputMethodFramework
227
228**参数:**
229
230| 参数名   | 类型   | 必填 | 说明                                                         |
231| -------- | ------ | ---- | ------------------------------------------------------------ |
232| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示订阅输入法显示。<br/>-&nbsp;type为'keyboardHide',表示订阅输入法隐藏。 |
233| callback | () => void   | 否   | 回调函数。 |
234
235**示例:**
236
237```js
238inputMethodEngine.getInputMethodEngine().off('keyboardShow');
239inputMethodEngine.getInputMethodEngine().off('keyboardHide');
240```
241
242## InputMethodAbility
243
244下列API示例中都需使用[getInputMethodAbility](#inputmethodenginegetinputmethodability9)回调获取到InputMethodAbility实例,再通过此实例调用对应方法。
245
246### on('inputStart')<sup>9+</sup>
247
248on(type: 'inputStart', callback: (kbController: KeyboardController, inputClient: InputClient) => void): void
249
250订阅输入法绑定成功事件。使用callback异步回调。
251
252**系统能力:** SystemCapability.MiscServices.InputMethodFramework
253
254**参数:**
255
256| 参数名   | 类型                            | 必填 | 说明                                                         |
257| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
258| type     | string                        | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
259| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 是 | 回调函数,返回输入法操作相关实例。 |
260
261**示例:**
262
263```js
264inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, client) => {
265    let keyboardController = kbController;
266    let inputClient = client;
267});
268```
269
270### off('inputStart')<sup>9+</sup>
271
272off(type: 'inputStart', callback?: (kbController: KeyboardController, inputClient: InputClient) => void): void
273
274取消订阅输入法绑定成功事件。使用callback异步回调。
275
276**系统能力:** SystemCapability.MiscServices.InputMethodFramework
277
278**参数:**
279
280| 参数名   | 类型                 | 必填 | 说明                     |
281| -------- | -------------------- | ---- | ------------------------ |
282| type | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStart’时表示订阅输入法绑定。 |
283| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 否 | 回调函数,返回输入法操作相关实例。 |
284
285**示例:**
286
287```js
288inputMethodEngine.getInputMethodAbility().off('inputStart');
289```
290
291### on('inputStop')<sup>9+</sup>
292
293on(type: 'inputStop', callback: () => void): void
294
295订阅停止输入法应用事件。使用callback异步回调。
296
297**系统能力:** SystemCapability.MiscServices.InputMethodFramework
298
299**参数:**
300
301| 参数名   | 类型   | 必填 | 说明                                                         |
302| -------- | ------ | ---- | ------------------------------------------------------------ |
303| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStop’时表示订阅停止输入法应用事件。 |
304| callback | () => void   | 是   | 回调函数。                                                   |
305
306**示例:**
307
308```js
309inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
310    console.log('inputMethodAbility inputStop');
311});
312```
313
314### off('inputStop')<sup>9+</sup>
315
316off(type: 'inputStop', callback: () => void): void
317
318取消订阅停止输入法应用事件。使用callback异步回调。
319
320**系统能力:** SystemCapability.MiscServices.InputMethodFramework
321
322**参数:**
323
324| 参数名   | 类型   | 必填 | 说明                                                         |
325| -------- | ------ | ---- | ------------------------------------------------------------ |
326| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘inputStop’时表示订阅停止输入法应用事件。 |
327| callback | () => void   | 是   | 回调函数。                                                   |
328
329**示例:**
330
331```js
332inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
333    console.log('inputMethodAbility delete inputStop notification.');
334});
335```
336
337### on('setCallingWindow')<sup>9+</sup>
338
339on(type: 'setCallingWindow', callback: (wid: number) => void): void
340
341订阅设置调用窗口事件。使用callback异步回调。
342
343**系统能力:** SystemCapability.MiscServices.InputMethodFramework
344
345**参数:**
346
347| 参数名   | 类型   | 必填 | 说明                                                         |
348| -------- | ------ | ---- | ------------------------------------------------------------ |
349| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为‘setCallingWindow’时表示订阅设置调用窗口事件。 |
350| callback | (wid: number) => void | 是   | 回调函数,返回调用方window id。                                            |
351
352**示例:**
353
354```js
355inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid) => {
356    console.log('inputMethodAbility setCallingWindow');
357});
358```
359
360### off('setCallingWindow')<sup>9+</sup>
361
362off(type: 'setCallingWindow', callback: (wid:number) => void): void
363
364取消订阅设置调用窗口事件。使用callback异步回调。
365
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
377```js
378inputMethodEngine.getInputMethodAbility().off('setCallingWindow', () => {
379    console.log('inputMethodAbility delete setCallingWindow notification.');
380});
381```
382
383### on('keyboardShow'|'keyboardHide')<sup>9+</sup>
384
385on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
386
387订阅输入法事件。使用callback异步回调。
388
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
400```js
401inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
402    console.log('InputMethodAbility keyboardShow.');
403});
404inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
405    console.log('InputMethodAbility keyboardHide.');
406});
407```
408
409### off('keyboardShow'|'keyboardHide')<sup>9+</sup>
410
411off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
412
413取消订阅输入法事件。使用callback异步回调。
414
415**系统能力:** SystemCapability.MiscServices.InputMethodFramework
416
417**参数:**
418
419| 参数名   | 类型   | 必填 | 说明                                                         |
420| -------- | ------ | ---- | ------------------------------------------------------------ |
421| type     | string | 是   | 设置监听类型。<br/>-&nbsp;type为'keyboardShow',表示取消订阅显示键盘事件。<br/>-&nbsp;type为'keyboardHide',表示取消订阅隐藏键盘事件。 |
422| callback | () => void   | 否   | 回调函数。     |
423
424**示例:**
425
426```js
427inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
428    console.log('InputMethodAbility delete keyboardShow notification.');
429});
430inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
431    console.log('InputMethodAbility delete keyboardHide notification.');
432});
433```
434
435### on('setSubtype')<sup>9+</sup>
436
437on(type: 'setSubtype', callback: (inputMethodSubtype: InputMethodSubtype) => void): void
438
439订阅设置输入法子类型事件。使用callback异步回调。
440
441**系统能力:** SystemCapability.MiscServices.InputMethodFramework
442
443**参数:**
444
445| 参数名   | 类型                                                         | 必填 | 说明                                                         |
446| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
447| type     | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示订阅输入法子类型的设置事件。 |
448| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 是   | 回调函数,返回设置的输入法子类型。                           |
449
450**示例:**
451
452```js
453inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype) => {
454    console.log('InputMethodAbility setSubtype.');
455});
456```
457
458### off('setSubtype')<sup>9+</sup>
459
460off(type: 'setSubtype', callback?: (inputMethodSubtype: InputMethodSubtype) => void): void
461
462取消订阅输入法子类型事件。使用callback异步回调。
463
464**系统能力:** SystemCapability.MiscServices.InputMethodFramework
465
466**参数:**
467
468| 参数名   | 类型                                                         | 必填 | 说明                                                         |
469| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
470| type     | string                                                       | 是   | 设置监听类型。<br/>-&nbsp;type为'setSubtype',表示取消订阅输入法子类型的设置事件。 |
471| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 否   | 回调函数,返回设置的输入法子类型。  |
472
473**示例:**
474
475```js
476inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
477    console.log('InputMethodAbility delete setSubtype notification.');
478});
479```
480
481## KeyboardDelegate
482
483下列API示例中都需使用[getKeyboardDelegate](#inputmethodenginegetkeyboarddelegate9)回调获取到KeyboardDelegate实例,再通过此实例调用对应方法。
484
485### on('keyDown'|'keyUp')
486
487on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
488
489订阅硬键盘(即物理键盘)事件。使用callback异步回调。
490
491**系统能力:** SystemCapability.MiscServices.InputMethodFramework
492
493**参数:**
494
495| 参数名   | 类型                            | 必填 | 说明                                                         |
496| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
497| type   | string         | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示订阅硬键盘抬起事件。 |
498| callback | (event: [KeyEvent](#keyevent)) => boolean | 是 | 回调函数,返回按键信息。 |
499
500**示例:**
501
502```js
503inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent) => {
504    console.info('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
505    console.info('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
506    return true;
507});
508inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent) => {
509    console.info('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
510    console.info('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
511    return true;
512});
513```
514
515### off('keyDown'|'keyUp')
516
517off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void
518
519取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
520
521**系统能力:** SystemCapability.MiscServices.InputMethodFramework
522
523**参数:**
524
525| 参数名   | 类型                                      | 必填 | 说明                                                         |
526| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
527| type     | string                                    | 是   | 设置监听类型。<br/>-&nbsp;type为'keyDown',表示取消订阅硬键盘按下事件。<br/>-&nbsp;type为'keyUp',表示取消订阅硬键盘抬起事件。 |
528| callback | (event: [KeyEvent](#keyevent)) => boolean | 否   | 回调函数,返回按键信息。  |
529
530**示例:**
531
532```js
533inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent) => {
534    console.log('delete keyUp notification.');
535    return true;
536});
537inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent) => {
538    console.log('delete keyDown notification.');
539    return true;
540});
541```
542
543### on('cursorContextChange')
544
545on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) => void): void
546
547订阅光标变化事件。使用callback异步回调。
548
549**系统能力:** SystemCapability.MiscServices.InputMethodFramework
550
551**参数:**
552
553| 参数名   | 类型                                           | 必填 | 说明                                                         |
554| -------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ |
555| type     | string                                         | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示订阅光标变化事件。 |
556| callback | (x: number, y: number, height: number) => void | 是   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。 |
557
558**示例:**
559
560```js
561inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x, y, height) => {
562    console.log('inputMethodEngine cursorContextChange x:' + x);
563    console.log('inputMethodEngine cursorContextChange y:' + y);
564    console.log('inputMethodEngine cursorContextChange height:' + height);
565});
566```
567
568### off('cursorContextChange')
569
570off(type: 'cursorContextChange', callback?: (x: number, y: number, height: number) => void): void
571
572取消订阅光标变化事件。使用callback异步回调。
573
574**系统能力:** SystemCapability.MiscServices.InputMethodFramework
575
576  **参数:**
577
578| 参数名   | 类型                                         | 必填 | 说明                                                         |
579| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
580| type     | string                                       | 是   | 光标变化事件。<br/>-&nbsp;type为’cursorContextChange‘时,表示光标变化。 |
581| callback | (x: number, y:number, height:number) => void | 否   | 回调函数,返回光标信息。<br/>-&nbsp;x为光标上端的的x坐标值。<br/>-&nbsp;y为光标上端的y坐标值。<br/>-&nbsp;height为光标的高度值。<br/> |
582
583
584  **示例:**
585
586```js
587inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x, y, height) => {
588    console.log('delete cursorContextChange notification.');
589});
590```
591### on('selectionChange')
592
593on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
594
595订阅文本选择变化事件。使用callback异步回调。
596
597**系统能力:** SystemCapability.MiscServices.InputMethodFramework
598
599**参数:**
600
601| 参数名   | 类型                                                         | 必填 | 说明                                                         |
602| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
603| type     | string                                                       | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
604| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 是   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。 |
605
606**示例:**
607
608```js
609inputMethodEngine.getKeyboardDelegate().on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
610    console.log('inputMethodEngine beforeEach selectionChange oldBegin:' + oldBegin);
611    console.log('inputMethodEngine beforeEach selectionChange oldEnd:' + oldEnd);
612    console.log('inputMethodEngine beforeEach selectionChange newBegin:' + newBegin);
613    console.log('inputMethodEngine beforeEach selectionChange newEnd:' + newEnd);
614});
615```
616
617### off('selectionChange')
618
619off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
620
621取消订阅文本选择变化事件。使用callback异步回调。
622
623**系统能力:** SystemCapability.MiscServices.InputMethodFramework
624
625**参数:**
626
627| 参数名   | 类型                                                         | 必填 | 说明                                                         |
628| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
629| type     | string                                                       | 是   | 文本选择变化事件。<br/>-&nbsp;type为’selectionChange‘时,表示选择文本变化。 |
630| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 否   | 回调函数,返回文本选择信息。<br/>-&nbsp;oldBegin为变化之前被选中文本的起始下标。<br/>-&nbsp;oldEnd为变化之前被选中文本的终止下标。<br/>-&nbsp;newBegin为变化之后被选中文本的起始下标。<br/>-&nbsp;newEnd为变化之后被选中文本的终止下标。<br/> |
631
632**示例:**
633
634```js
635inputMethodEngine.getKeyboardDelegate().off('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
636  console.log('delete selectionChange notification.');
637});
638```
639
640
641### on('textChange')
642
643on(type: 'textChange', callback: (text: string) => void): void
644
645订阅文本变化事件。使用callback异步回调。
646
647**系统能力:** SystemCapability.MiscServices.InputMethodFramework
648
649**参数:**
650
651| 参数名   | 类型   | 必填 | 说明                                                         |
652| -------- | ------ | ---- | ------------------------------------------------------------ |
653| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示订阅文本变化事件。 |
654| callback | (text: string) => void | 是   | 回调函数,返回订阅的文本内容。                                   |
655
656**示例:**
657
658```js
659inputMethodEngine.getKeyboardDelegate().on('textChange', (text) => {
660    console.log('inputMethodEngine textChange. text:' + text);
661});
662```
663
664### off('textChange')
665
666off(type: 'textChange', callback?: (text: string) => void): void
667
668取消订阅文本变化事件。使用callback异步回调。
669
670**系统能力:** SystemCapability.MiscServices.InputMethodFramework
671
672**参数:**
673
674| 参数名   | 类型   | 必填 | 说明                                                         |
675| -------- | ------ | ---- | ------------------------------------------------------------ |
676| type     | string | 是   | 文本变化事件。<br/>-&nbsp;type为’textChange‘时,表示取消订阅文本变化事件。 |
677| callback | (text: string) => void | 否   | 回调函数,返回取消订阅的文本内容。 |
678
679**示例:**
680
681```js
682inputMethodEngine.getKeyboardDelegate().off('textChange', (text) => {
683    console.log('delete textChange notification. text:' + text);
684});
685```
686
687## KeyboardController
688
689下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到KeyboardController实例,再通过此实例调用对应方法。
690
691### hide<sup>9+</sup>
692
693hide(callback: AsyncCallback&lt;void&gt;): void
694
695隐藏输入法。使用callback异步回调。
696
697**系统能力:** SystemCapability.MiscServices.InputMethodFramework
698
699**参数:**
700
701| 参数名   | 类型                   | 必填 | 说明     |
702| -------- | ---------------------- | ---- | -------- |
703| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
704
705**错误码:**
706
707以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
708
709| 错误码ID | 错误信息                 |
710| -------- | -------------------------- |
711| 12800003 | input method client error. |
712
713**示例:**
714
715```js
716keyboardController.hide((err) => {
717    if (err !== undefined) {
718        console.error('Failed to hide keyboard: ' + JSON.stringify(err));
719        return;
720    }
721    console.log('Succeeded in hiding keyboard.');
722});
723```
724
725### hide<sup>9+</sup>
726
727hide(): Promise&lt;void&gt;
728
729隐藏输入法。使用promise异步回调。
730
731**系统能力:** SystemCapability.MiscServices.InputMethodFramework
732
733**返回值:**
734
735| 类型             | 说明                      |
736| ---------------- | ------------------------- |
737| Promise&lt;void> | 无返回结果的Promise对象。 |
738
739**错误码:**
740
741以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
742
743| 错误码ID | 错误信息                 |
744| -------- | -------------------------- |
745| 12800003 | input method client error. |
746
747**示例:**
748
749```js
750keyboardController.hide().then(() => {
751    console.info('Succeeded in hiding keyboard.');
752}).catch((err) => {
753    console.info('Failed to hide keyboard: ' + JSON.stringify(err));
754});
755```
756
757### hideKeyboard<sup>(deprecated)</sup>
758
759hideKeyboard(callback: AsyncCallback&lt;void&gt;): void
760
761隐藏输入法。使用callback异步回调。
762
763> **说明:**
764>
765> 从API version 8开始支持,API version 9开始废弃, 建议使用[hide](#hide9)替代。
766
767**系统能力:** SystemCapability.MiscServices.InputMethodFramework
768
769**参数:**
770
771| 参数名   | 类型                   | 必填 | 说明     |
772| -------- | ---------------------- | ---- | -------- |
773| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
774
775**示例:**
776
777```js
778keyboardController.hideKeyboard((err) => {
779    if (err !== undefined) {
780        console.error('Failed to hide Keyboard: ' + JSON.stringify(err));
781        return;
782    }
783    console.log('Succeeded in hiding keyboard.');
784});
785```
786
787### hideKeyboard<sup>(deprecated)</sup>
788
789hideKeyboard(): Promise&lt;void&gt;
790
791隐藏输入法。使用promise异步回调。
792
793> **说明:**
794>
795> 从API version 8开始支持,API version 9开始废弃, 建议使用[hide](#hide9-1)替代。
796
797**系统能力:** SystemCapability.MiscServices.InputMethodFramework
798
799**返回值:**
800
801| 类型             | 说明                      |
802| ---------------- | ------------------------- |
803| Promise&lt;void> | 无返回结果的Promise对象。 |
804
805**示例:**
806
807```js
808keyboardController.hideKeyboard().then(() => {
809    console.info('Succeeded in hiding keyboard.');
810}).catch((err) => {
811    console.info('Failed to hide Keyboard: ' + JSON.stringify(err));
812});
813```
814
815## InputClient<sup>9+</sup>
816
817下列API示例中都需使用[on('inputStart')](#oninputstart9)回调获取到InputClient实例,再通过此实例调用对应方法。
818
819### sendKeyFunction<sup>9+</sup>
820
821sendKeyFunction(action:number, callback: AsyncCallback&lt;boolean&gt;): void
822
823发送功能键。使用callback异步回调。
824
825**系统能力:** SystemCapability.MiscServices.InputMethodFramework
826
827  **参数:**
828
829| 参数名 | 类型 | 必填 | 说明 |
830| -------- | -------- | -------- | -------- |
831| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
832| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
833
834**错误码:**
835
836以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
837
838| 错误码ID | 错误信息                 |
839| -------- | -------------------------- |
840| 12800003 | input method client error. |
841
842 **示例:**
843
844```js
845let action = 1;
846try {
847    inputClient.sendKeyFunction(action, (err, result) => {
848        if (err !== undefined) {
849            console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
850            return;
851        }
852        if (result) {
853            console.info('Succeeded in sending key function. ');
854        } else {
855            console.error('Failed to sendKeyFunction. ');
856        }
857    });
858} catch (err) {
859    console.error('sendKeyFunction err: ' + JSON.stringify(err));
860}
861```
862
863### sendKeyFunction<sup>9+</sup>
864
865sendKeyFunction(action: number): Promise&lt;boolean&gt;
866
867发送功能键。使用promise异步回调。
868
869**系统能力:** SystemCapability.MiscServices.InputMethodFramework
870
871**参数:**
872
873| 参数名 | 类型 | 必填 | 说明 |
874| -------- | -------- | -------- | -------- |
875| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
876
877**返回值:**
878
879| 类型                            | 说明                                                         |
880| ------------------------------- | ------------------------------------------------------------ |
881| Promise&lt;boolean&gt; |  Promise对象。返回true表示功能键发送成功;返回false表示功能键发送失败。|
882
883**错误码:**
884
885以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
886
887| 错误码ID | 错误信息                 |
888| -------- | -------------------------- |
889| 12800003 | input method client error. |
890
891**示例:**
892
893```js
894let action = 1;
895try {
896    inputClient.sendKeyFunction(action).then((result) => {
897        if (result) {
898            console.info('Succeeded in sending key function. ');
899        } else {
900            console.error('Failed to sendKeyFunction. ');
901        }
902    }).catch((err) => {
903        console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
904    });
905} catch (err) {
906    console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
907}
908```
909
910### getForward<sup>9+</sup>
911
912getForward(length:number, callback: AsyncCallback&lt;string&gt;): void
913
914获取光标前固定长度的文本。使用callback异步回调。
915
916**系统能力:** SystemCapability.MiscServices.InputMethodFramework
917
918**参数:**
919
920| 参数名 | 类型 | 必填 | 说明 |
921| -------- | -------- | -------- | -------- |
922| length | number | 是 | 文本长度。 |
923| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
924
925**错误码:**
926
927以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
928
929| 错误码ID | 错误信息                     |
930| -------- | ------------------------------ |
931| 12800003 | input method client error.     |
932| 12800006 | Input method controller error. |
933
934**示例:**
935
936```js
937let length = 1;
938try {
939    inputClient.getForward(length, (err, text) => {
940        if (err !== undefined) {
941            console.error('Failed to getForward: ' + JSON.stringify(err));
942            return;
943        }
944        console.log('Succeeded in getting forward, text: ' + text);
945    });
946} catch (err) {
947    console.error('Failed to getForward: ' + JSON.stringify(err));
948}
949```
950
951### getForward<sup>9+</sup>
952
953getForward(length:number): Promise&lt;string&gt;
954
955获取光标前固定长度的文本。使用promise异步回调。
956
957**系统能力:** SystemCapability.MiscServices.InputMethodFramework
958
959**参数:**
960
961| 参数名 | 类型 | 必填 | 说明 |
962| -------- | -------- | -------- | -------- |
963| length | number | 是 | 文本长度。 |
964
965**返回值:**
966
967| 类型                            | 说明                                                         |
968| ------------------------------- | ------------------------------------------------------------ |
969| Promise&lt;string&gt;           |  Promise对象,返回光标前固定长度的文本。                     |
970
971**错误码:**
972
973以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
974
975| 错误码ID | 错误信息                     |
976| -------- | ------------------------------ |
977| 12800003 | input method client error.     |
978| 12800006 | Input method controller error. |
979
980**示例:**
981
982```js
983let length = 1;
984try {
985    inputClient.getForward(length).then((text) => {
986        console.info('Succeeded in getting forward, text: ' + text);
987    }).catch((err) => {
988        console.error('Failed to getForward: ' + JSON.stringify(err));
989    });
990} catch (err) {
991    console.error('Failed to getForward: ' + JSON.stringify(err));
992}
993```
994
995### getBackward<sup>9+</sup>
996
997getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void
998
999获取光标后固定长度的文本。使用callback异步回调。
1000
1001**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1002
1003**参数:**
1004
1005| 参数名 | 类型 | 必填 | 说明 |
1006| -------- | -------- | -------- | -------- |
1007| length | number | 是 | 文本长度。 |
1008| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
1009
1010**错误码:**
1011
1012以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1013
1014| 错误码ID | 错误信息                     |
1015| -------- | ------------------------------ |
1016| 12800003 | input method client error.     |
1017| 12800006 | Input method controller error. |
1018
1019**示例:**
1020
1021```js
1022let length = 1;
1023try {
1024    inputClient.getBackward(length, (err, text) => {
1025        if (err !== undefined) {
1026            console.error('Failed to getForward: ' + JSON.stringify(err));
1027            return;
1028        }
1029        console.log('Succeeded in getting backward, text: ' + text);
1030    });
1031} catch (err) {
1032    console.error('Failed to getForward: ' + JSON.stringify(err));
1033}
1034```
1035
1036### getBackward<sup>9+</sup>
1037
1038getBackward(length:number): Promise&lt;string&gt;
1039
1040获取光标后固定长度的文本。使用promise异步回调。
1041
1042**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1043
1044**参数:**
1045
1046| 参数名 | 类型 | 必填 | 说明 |
1047| -------- | -------- | -------- | -------- |
1048| length | number | 是 | 文本长度。 |
1049
1050**返回值:**
1051
1052| 类型                            | 说明                                                         |
1053| ------------------------------- | ------------------------------------------------------------ |
1054| Promise&lt;string&gt;           |  Promise对象,返回光标后固定长度的文本。                     |
1055
1056**错误码:**
1057
1058以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1059
1060| 错误码ID | 错误信息                     |
1061| -------- | ------------------------------ |
1062| 12800003 | input method client error.     |
1063| 12800006 | Input method controller error. |
1064
1065**示例:**
1066
1067```js
1068let length = 1;
1069try {
1070    inputClient.getBackward(length).then((text) => {
1071        console.info('Succeeded in getting backward, text: ' + text);
1072    }).catch((err) => {
1073        console.error('Failed to getForward: ' + JSON.stringify(err));
1074    });
1075} catch (err) {
1076    console.error('Failed to getForward: ' + JSON.stringify(err));
1077}
1078```
1079
1080### deleteForward<sup>9+</sup>
1081
1082deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
1083
1084删除光标前固定长度的文本。使用callback异步回调。
1085
1086**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1087
1088**参数:**
1089
1090| 参数名 | 类型 | 必填 | 说明 |
1091| -------- | -------- | -------- | -------- |
1092| length | number | 是 | 文本长度。 |
1093| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
1094
1095**错误码:**
1096
1097以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1098
1099| 错误码ID | 错误信息                 |
1100| -------- | -------------------------- |
1101| 12800002 | Input method engine error. |
1102| 12800003 | input method client error. |
1103
1104**示例:**
1105
1106```js
1107let length = 1;
1108try {
1109    inputClient.deleteForward(length, (err, result) => {
1110        if (err !== undefined) {
1111            console.error('Failed to delete forward: ' + JSON.stringify(err));
1112            return;
1113        }
1114        if (result) {
1115            console.info('Succeeded in deleting forward. ');
1116        } else {
1117            console.error('Failed to delete forward: ' + JSON.stringify(err));
1118        }
1119    });
1120} catch (err) {
1121    console.error('Failed to delete forward: ' + JSON.stringify(err));
1122}
1123```
1124
1125### deleteForward<sup>9+</sup>
1126
1127deleteForward(length:number): Promise&lt;boolean&gt;
1128
1129删除光标前固定长度的文本。使用promise异步回调。
1130
1131**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1132
1133**参数:**
1134
1135| 参数名 | 类型   | 必填 | 说明       |
1136| ------ | ------ | ---- | ---------- |
1137| length | number | 是   | 文本长度。 |
1138
1139**返回值:**
1140
1141| 类型                   | 说明           |
1142| ---------------------- | -------------- |
1143| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
1144
1145**错误码:**
1146
1147以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1148
1149| 错误码ID | 错误信息                 |
1150| -------- | -------------------------- |
1151| 12800002 | Input method engine error. |
1152| 12800003 | input method client error. |
1153
1154**示例:**
1155
1156```js
1157let length = 1;
1158try {
1159    inputClient.deleteForward(length).then((result) => {
1160        if (result) {
1161            console.info('Succeeded in deleting forward. ');
1162        } else {
1163            console.error('Failed to delete Forward. ');
1164        }
1165    }).catch((err) => {
1166        console.error('Failed to delete Forward: ' + JSON.stringify(err));
1167    });
1168} catch (err) {
1169    console.error('Failed to delete Forward: ' + JSON.stringify(err));
1170}
1171```
1172
1173### deleteBackward<sup>9+</sup>
1174
1175deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
1176
1177删除光标后固定长度的文本。使用callback异步回调。
1178
1179**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1180
1181**参数:**
1182
1183| 参数名   | 类型                         | 必填 | 说明           |
1184| -------- | ---------------------------- | ---- | -------------- |
1185| length   | number                       | 是   | 文本长度。     |
1186| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
1187
1188**错误码:**
1189
1190以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1191
1192| 错误码ID | 错误信息                 |
1193| -------- | -------------------------- |
1194| 12800002 | Input method engine error. |
1195| 12800003 | input method client error. |
1196
1197**示例:**
1198
1199```js
1200let length = 1;
1201try {
1202    inputClient.deleteBackward(length, (err, result) => {
1203        if (err !== undefined) {
1204            console.error('Failed to delete Backward: ' + JSON.stringify(err));
1205            return;
1206        }
1207        if (result) {
1208            console.info('Succeeded in deleting backward. ');
1209        } else {
1210            console.error('Failed to delete Backward: ' + JSON.stringify(err));
1211        }
1212    });
1213} catch (err) {
1214    console.error('deleteBackward err: ' + JSON.stringify(err));
1215}
1216```
1217
1218### deleteBackward<sup>9+</sup>
1219
1220deleteBackward(length:number): Promise&lt;boolean&gt;
1221
1222删除光标后固定长度的文本。使用callback异步回调。
1223
1224**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1225
1226**参数:**
1227
1228| 参数名 | 类型 | 必填 | 说明 |
1229| -------- | -------- | -------- | -------- |
1230| length | number | 是 | 文本长度。 |
1231
1232**返回值:**
1233
1234| 类型                            | 说明                                                         |
1235| ------------------------------- | ------------------------------------------------------------ |
1236| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。 |
1237
1238**错误码:**
1239
1240以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1241
1242| 错误码ID | 错误信息                 |
1243| -------- | -------------------------- |
1244| 12800002 | Input method engine error. |
1245| 12800003 | input method client error. |
1246
1247**示例:**
1248
1249```js
1250let length = 1;
1251inputClient.deleteBackward(length).then((result) => {
1252    if (result) {
1253        console.info('Succeeded in deleting backward. ');
1254    } else {
1255        console.error('Failed to deleteBackward. ');
1256    }
1257}).catch((err) => {
1258    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
1259});
1260```
1261
1262### insertText<sup>9+</sup>
1263
1264insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
1265
1266插入文本。使用callback异步回调。
1267
1268**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1269
1270**参数:**
1271
1272| 参数名 | 类型 | 必填 | 说明 |
1273| -------- | -------- | -------- | -------- |
1274| text | string | 是 | 文本。 |
1275| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
1276
1277**错误码:**
1278
1279以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1280
1281| 错误码ID | 错误信息                 |
1282| -------- | -------------------------- |
1283| 12800002 | Input method engine error. |
1284| 12800003 | input method client error. |
1285
1286**示例:**
1287
1288```js
1289inputClient.insertText('test', (err, result) => {
1290    if (err !== undefined) {
1291        console.error('Failed to insertText: ' + JSON.stringify(err));
1292        return;
1293    }
1294    if (result) {
1295        console.info('Succeeded in inserting text. ');
1296    } else {
1297        console.error('Failed to insertText. ');
1298    }
1299});
1300```
1301
1302### insertText<sup>9+</sup>
1303
1304insertText(text:string): Promise&lt;boolean&gt;
1305
1306插入文本。使用promise异步回调。
1307
1308**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1309
1310**参数:**
1311
1312| 参数名 | 类型 | 必填 | 说明 |
1313| -------- | -------- | -------- | -------- |
1314| text | string | 是 | 文本。 |
1315
1316**返回值:**
1317
1318| 类型                            | 说明                                                         |
1319| ------------------------------- | ------------------------------------------------------------ |
1320| Promise&lt;boolean&gt;  |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。  |
1321
1322**错误码:**
1323
1324以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1325
1326| 错误码ID | 错误信息                 |
1327| -------- | -------------------------- |
1328| 12800002 | Input method engine error. |
1329| 12800003 | input method client error. |
1330
1331**示例:**
1332
1333```js
1334try {
1335    inputClient.insertText('test').then((result) => {
1336        if (result) {
1337            console.info('Succeeded in inserting text. ');
1338        } else {
1339            console.error('Failed to insertText. ');
1340        }
1341    }).catch((err) => {
1342        console.error('Failed to insertText: ' + JSON.stringify(err));
1343    });
1344} catch (err) {
1345    console.error('Failed to insertText: ' + JSON.stringify(err));
1346}
1347```
1348
1349### getEditorAttribute<sup>9+</sup>
1350
1351getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
1352
1353获取编辑框属性值。使用callback异步回调。
1354
1355**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1356
1357**参数:**
1358
1359| 参数名                         | 类型                          | 必填                            | 说明                                                         |
1360| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
1361| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
1362
1363**错误码:**
1364
1365以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1366
1367| 错误码ID | 错误信息                 |
1368| -------- | -------------------------- |
1369| 12800003 | input method client error. |
1370
1371**示例:**
1372
1373```js
1374inputClient.getEditorAttribute((err, editorAttribute) => {
1375    if (err !== undefined) {
1376        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
1377        return;
1378    }
1379    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
1380    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
1381});
1382```
1383
1384### getEditorAttribute<sup>9+</sup>
1385
1386getEditorAttribute(): Promise&lt;EditorAttribute&gt;
1387
1388获取编辑框属性值。使用promise异步回调。
1389
1390**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1391
1392**返回值:**
1393
1394| 类型                            | 说明                                                         |
1395| ------------------------------- | ------------------------------------------------------------ |
1396| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
1397
1398**错误码:**
1399
1400以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1401
1402| 错误码ID | 错误信息                 |
1403| -------- | -------------------------- |
1404| 12800003 | input method client error. |
1405
1406**示例:**
1407
1408```js
1409inputClient.getEditorAttribute().then((editorAttribute) => {
1410    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
1411    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
1412}).catch((err) => {
1413    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
1414});
1415```
1416
1417### moveCursor<sup>9+</sup>
1418
1419moveCursor(direction: number, callback: AsyncCallback&lt;void&gt;): void
1420
1421移动光标。使用callback异步回调。
1422
1423**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1424
1425**参数:**
1426
1427| 参数名    | 类型                      | 必填 | 说明           |
1428| --------- | ------------------------- | ---- | -------------- |
1429| direction | number                    | 是   | 光标移动方向。 |
1430| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象。    |
1431
1432**错误码:**
1433
1434以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1435
1436| 错误码ID | 错误信息                 |
1437| -------- | -------------------------- |
1438| 12800003 | input method client error. |
1439
1440**示例:**
1441
1442```js
1443try {
1444    inputClient.moveCursor(inputMethodEngine.CURSOR_UP, (err) => {
1445        if (err !== undefined) {
1446            console.error('Failed to moveCursor: ' + JSON.stringify(err));
1447            return;
1448        }
1449        console.info('Succeeded in moving cursor.');
1450    });
1451} catch (err) {
1452    console.error('Failed to moveCursor: ' + JSON.stringify(err));
1453}
1454```
1455
1456### moveCursor<sup>9+</sup>
1457
1458moveCursor(direction: number): Promise&lt;void&gt;
1459
1460移动光标。使用promise异步回调。
1461
1462**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1463
1464**参数:**
1465
1466| 参数名    | 类型   | 必填 | 说明           |
1467| --------- | ------ | ---- | -------------- |
1468| direction | number | 是   | 光标移动方向。 |
1469
1470**返回值:**
1471
1472| 类型                | 说明                      |
1473| ------------------- | ------------------------- |
1474| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1475
1476**错误码:**
1477
1478以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1479
1480| 错误码ID | 错误信息                 |
1481| -------- | -------------------------- |
1482| 12800003 | input method client error. |
1483
1484**示例:**
1485
1486```js
1487try {
1488    inputClient.moveCursor(inputMethodEngine.CURSOR_UP).then(() => {
1489        console.log('Succeeded in moving cursor.');
1490    }).catch((err) => {
1491        console.error('Failed to moveCursor: ' + JSON.stringify(err));
1492    });
1493} catch (err) {
1494    console.log('Failed to moveCursor: ' + JSON.stringify(err));
1495}
1496```
1497
1498## EditorAttribute
1499
1500编辑框属性值。
1501
1502**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1503
1504| 名称         | 类型 | 可读 | 可写 | 说明               |
1505| ------------ | -------- | ---- | ---- | ------------------ |
1506| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
1507| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |
1508
1509## KeyEvent
1510
1511按键属性值。
1512
1513**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1514
1515| 名称      | 类型 | 可读 | 可写 | 说明         |
1516| --------- | -------- | ---- | ---- | ------------ |
1517| keyCode   | number   | 是   | 否   | 按键的键值。 |
1518| keyAction | number   | 是   | 否   | 按键的状态。 |
1519
1520## TextInputClient<sup>(deprecated)</sup>
1521
1522> **说明:**
1523>
1524> 从API version 8开始支持,API version 9开始废弃, 建议使用[InputClient](#inputclient9)替代。
1525
1526下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
1527
1528### getForward<sup>(deprecated)</sup>
1529
1530getForward(length:number, callback: AsyncCallback&lt;string&gt;): void
1531
1532获取光标前固定长度的文本。使用callback异步回调。
1533
1534> **说明:**
1535>
1536> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代。
1537
1538**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1539
1540**参数:**
1541
1542| 参数名 | 类型 | 必填 | 说明 |
1543| -------- | -------- | -------- | -------- |
1544| length | number | 是 | 文本长度。 |
1545| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
1546
1547**示例:**
1548
1549```js
1550let length = 1;
1551textInputClient.getForward(length, (err, text) => {
1552    if (err !== undefined) {
1553        console.error('Failed to getForward: ' + JSON.stringify(err));
1554        return;
1555    }
1556    console.log('Succeeded in getting forward, text: ' + text);
1557});
1558```
1559
1560### getForward<sup>(deprecated)</sup>
1561
1562getForward(length:number): Promise&lt;string&gt;
1563
1564获取光标前固定长度的文本。使用promise异步回调。
1565
1566> **说明:**
1567>
1568> 从API version 8开始支持,API version 9开始废弃, 建议使用[getForward](#getforward9)替代。
1569
1570**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1571
1572**参数:**
1573
1574| 参数名 | 类型 | 必填 | 说明 |
1575| -------- | -------- | -------- | -------- |
1576| length | number | 是 | 文本长度。 |
1577
1578**返回值:**
1579
1580| 类型                            | 说明                                                         |
1581| ------------------------------- | ------------------------------------------------------------ |
1582| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
1583
1584**示例:**
1585
1586```js
1587let length = 1;
1588textInputClient.getForward(length).then((text) => {
1589    console.info('Succeeded in getting forward, text: ' + text);
1590}).catch((err) => {
1591    console.error('Failed to getForward: ' + JSON.stringify(err));
1592});
1593```
1594
1595### getBackward<sup>(deprecated)</sup>
1596
1597getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void
1598
1599获取光标后固定长度的文本。使用callback异步回调。
1600
1601> **说明:**
1602>
1603> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代。
1604
1605**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1606
1607**参数:**
1608
1609| 参数名 | 类型 | 必填 | 说明 |
1610| -------- | -------- | -------- | -------- |
1611| length | number | 是 | 文本长度。 |
1612| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
1613
1614**示例:**
1615
1616```js
1617let length = 1;
1618textInputClient.getBackward(length, (err, text) => {
1619    if (err !== undefined) {
1620        console.error('Failed to getBackward: ' + JSON.stringify(err));
1621        return;
1622    }
1623    console.log('Succeeded in getting borward, text: ' + text);
1624});
1625```
1626
1627### getBackward<sup>(deprecated)</sup>
1628
1629getBackward(length:number): Promise&lt;string&gt;
1630
1631获取光标后固定长度的文本。使用promise异步回调。
1632
1633> **说明:**
1634>
1635> 从API version 8开始支持,API version 9开始废弃, 建议使用[getBackward](#getbackward9)替代。
1636
1637**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1638
1639**参数:**
1640
1641| 参数名 | 类型 | 必填 | 说明 |
1642| -------- | -------- | -------- | -------- |
1643| length | number | 是 | 文本长度。 |
1644
1645**返回值:**
1646
1647| 类型                            | 说明                                                         |
1648| ------------------------------- | ------------------------------------------------------------ |
1649| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
1650
1651**示例:**
1652
1653```js
1654let length = 1;
1655textInputClient.getBackward(length).then((text) => {
1656    console.info('Succeeded in getting backward: ' + JSON.stringify(text));
1657}).catch((err) => {
1658    console.error('Failed to getBackward: ' + JSON.stringify(err));
1659});
1660```
1661
1662### deleteForward<sup>(deprecated)</sup>
1663
1664deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
1665
1666删除光标前固定长度的文本。使用callback异步回调。
1667
1668> **说明:**
1669>
1670> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代。
1671
1672**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1673
1674**参数:**
1675
1676| 参数名 | 类型 | 必填 | 说明 |
1677| -------- | -------- | -------- | -------- |
1678| length | number | 是 | 文本长度。 |
1679| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
1680
1681**示例:**
1682
1683```js
1684let length = 1;
1685textInputClient.deleteForward(length, (err, result) => {
1686    if (err !== undefined) {
1687        console.error('Failed to deleteForward: ' + JSON.stringify(err));
1688        return;
1689    }
1690    if (result) {
1691        console.info('Succeeded in deleting forward. ');
1692    } else {
1693        console.error('Failed to deleteForward. ');
1694    }
1695});
1696```
1697
1698### deleteForward<sup>(deprecated)</sup>
1699
1700deleteForward(length:number): Promise&lt;boolean&gt;
1701
1702删除光标前固定长度的文本。使用promise异步回调。
1703
1704> **说明:**
1705>
1706> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteForward](#deleteforward9)替代。
1707
1708**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1709
1710**参数:**
1711
1712| 参数名 | 类型   | 必填 | 说明       |
1713| ------ | ------ | ---- | ---------- |
1714| length | number | 是   | 文本长度。 |
1715
1716**返回值:**
1717
1718| 类型                   | 说明           |
1719| ---------------------- | -------------- |
1720| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
1721
1722**示例:**
1723
1724```js
1725let length = 1;
1726textInputClient.deleteForward(length).then((result) => {
1727    if (result) {
1728        console.info('Succeeded in deleting forward. ');
1729    } else {
1730        console.error('Failed to delete forward. ');
1731    }
1732}).catch((err) => {
1733    console.error('Failed to delete forward: ' + JSON.stringify(err));
1734});
1735```
1736
1737### deleteBackward<sup>(deprecated)</sup>
1738
1739deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
1740
1741删除光标后固定长度的文本。使用callback异步回调。
1742
1743> **说明:**
1744>
1745> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代。
1746
1747**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1748
1749  **参数:**
1750
1751| 参数名   | 类型                         | 必填 | 说明           |
1752| -------- | ---------------------------- | ---- | -------------- |
1753| length   | number                       | 是   | 文本长度。     |
1754| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。|
1755
1756  **示例:**
1757
1758```js
1759let length = 1;
1760textInputClient.deleteBackward(length, (err, result) => {
1761    if (err !== undefined) {
1762        console.error('Failed to delete backward: ' + JSON.stringify(err));
1763        return;
1764    }
1765    if (result) {
1766        console.info('Succeeded in deleting backward. ');
1767    } else {
1768        console.error('Failed to deleteBackward. ');
1769    }
1770});
1771```
1772
1773### deleteBackward<sup>(deprecated)</sup>
1774
1775deleteBackward(length:number): Promise&lt;boolean&gt;
1776
1777删除光标后固定长度的文本。使用callback异步回调。
1778
1779> **说明:**
1780>
1781> 从API version 8开始支持,API version 9开始废弃, 建议使用[deleteBackward](#deletebackward9)替代。
1782
1783**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1784
1785**参数:**
1786
1787| 参数名 | 类型 | 必填 | 说明 |
1788| -------- | -------- | -------- | -------- |
1789| length | number | 是 | 文本长度。 |
1790
1791**返回值:**
1792
1793| 类型                            | 说明                                                         |
1794| ------------------------------- | ------------------------------------------------------------ |
1795| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
1796
1797**示例:**
1798
1799```js
1800let length = 1;
1801textInputClient.deleteBackward(length).then((result) => {
1802    if (result) {
1803        console.info('Succeeded in deleting backward. ');
1804    } else {
1805        console.error('Failed to deleteBackward. ');
1806    }
1807}).catch((err) => {
1808    console.error('Failed to deleteBackward: ' + JSON.stringify(err));
1809});
1810```
1811### sendKeyFunction<sup>(deprecated)</sup>
1812
1813sendKeyFunction(action: number, callback: AsyncCallback&lt;boolean&gt;): void
1814
1815发送功能键。使用callback异步回调。
1816
1817> **说明:**
1818>
1819> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代。
1820
1821**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1822
1823  **参数:**
1824
1825| 参数名 | 类型 | 必填 | 说明 |
1826| -------- | -------- | -------- | -------- |
1827| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
1828| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
1829
1830  **示例:**
1831
1832```js
1833let action = 1;
1834textInputClient.sendKeyFunction(action, (err, result) => {
1835    if (err !== undefined) {
1836        console.error('Failed to sendKeyFunction: ' + JSON.stringify(err));
1837        return;
1838    }
1839    if (result) {
1840        console.info('Succeeded in sending key function. ');
1841    } else {
1842        console.error('Failed to sendKeyFunction. ');
1843    }
1844});
1845```
1846
1847### sendKeyFunction<sup>(deprecated)</sup>
1848
1849sendKeyFunction(action: number): Promise&lt;boolean&gt;
1850
1851发送功能键。使用promise异步回调。
1852
1853> **说明:**
1854>
1855> 从API version 8开始支持,API version 9开始废弃, 建议使用[sendKeyFunction](#sendkeyfunction9)替代。
1856
1857**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1858
1859**参数:**
1860
1861| 参数名 | 类型 | 必填 | 说明 |
1862| -------- | -------- | -------- | -------- |
1863| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
1864
1865**返回值:**
1866
1867| 类型                            | 说明                                                         |
1868| ------------------------------- | ------------------------------------------------------------ |
1869| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
1870
1871**示例:**
1872
1873```js
1874let action = 1;
1875textInputClient.sendKeyFunction(action).then((result) => {
1876    if (result) {
1877        console.info('Succeeded in sending key function. ');
1878    } else {
1879        console.error('Failed to sendKeyFunction. ');
1880    }
1881}).catch((err) => {
1882    console.error('Failed to sendKeyFunction:' + JSON.stringify(err));
1883});
1884```
1885
1886### insertText<sup>(deprecated)</sup>
1887
1888insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
1889
1890插入文本。使用callback异步回调。
1891
1892> **说明:**
1893>
1894> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代。
1895
1896**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1897
1898**参数:**
1899
1900| 参数名 | 类型 | 必填 | 说明 |
1901| -------- | -------- | -------- | -------- |
1902| text | string | 是 | 文本。 |
1903| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
1904
1905**示例:**
1906
1907```js
1908textInputClient.insertText('test', (err, result) => {
1909    if (err !== undefined) {
1910        console.error('Failed to insertText: ' + JSON.stringify(err));
1911        return;
1912    }
1913    if (result) {
1914        console.info('Succeeded in inserting text. ');
1915    } else {
1916        console.error('Failed to insertText. ');
1917    }
1918});
1919```
1920
1921### insertText<sup>(deprecated)</sup>
1922
1923insertText(text:string): Promise&lt;boolean&gt;
1924
1925插入文本。使用promise异步回调。
1926
1927> **说明:**
1928>
1929> 从API version 8开始支持,API version 9开始废弃, 建议使用[insertText](#inserttext9)替代。
1930
1931**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1932
1933**参数:**
1934
1935| 参数名 | 类型 | 必填 | 说明 |
1936| -------- | -------- | -------- | -------- |
1937| text | string | 是 | 文本。 |
1938
1939**返回值:**
1940
1941| 类型                            | 说明                                                         |
1942| ------------------------------- | ------------------------------------------------------------ |
1943| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
1944
1945**示例:**
1946
1947```js
1948textInputClient.insertText('test').then((result) => {
1949    if (result) {
1950        console.info('Succeeded in inserting text. ');
1951    } else {
1952        console.error('Failed to insertText. ');
1953    }
1954}).catch((err) => {
1955    console.error('Failed to insertText: ' + JSON.stringify(err));
1956});
1957```
1958
1959### getEditorAttribute<sup>(deprecated)</sup>
1960
1961getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
1962
1963获取编辑框属性值。使用callback异步回调。
1964
1965> **说明:**
1966>
1967> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代。
1968
1969**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1970
1971**参数:**
1972
1973| 参数名                         | 类型                          | 必填                            | 说明                                                         |
1974| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
1975| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框的属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
1976
1977**示例:**
1978
1979```js
1980textInputClient.getEditorAttribute((err, editorAttribute) => {
1981    if (err !== undefined) {
1982        console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
1983        return;
1984    }
1985    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
1986    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
1987});
1988```
1989
1990### getEditorAttribute<sup>(deprecated)</sup>
1991
1992getEditorAttribute(): Promise&lt;EditorAttribute&gt;
1993
1994获取编辑框属性值。使用promise异步回调。
1995
1996> **说明:**
1997>
1998> 从API version 8开始支持,API version 9开始废弃, 建议使用[getEditorAttribute](#geteditorattribute9)替代。
1999
2000**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2001
2002**返回值:**
2003
2004| 类型                            | 说明                                                         |
2005| ------------------------------- | ------------------------------------------------------------ |
2006| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
2007
2008**示例:**
2009
2010```js
2011textInputClient.getEditorAttribute().then((editorAttribute) => {
2012    console.info('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
2013    console.info('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2014}).catch((err) => {
2015    console.error('Failed to getEditorAttribute: ' + JSON.stringify(err));
2016});
2017```
2018