• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.inputMethodEngine (输入法服务)
2
3本模块面向输入法应用(包括系统输入法应用、三方输入法应用),为输入法应用提供能力,包括:创建软键盘窗口、插入/删除字符、选中文本、监听物理键盘按键事件等。
4
5> **说明:**
6>
7>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
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),仅支持输入法应用调用。<br/>输入法应用获取该实例后,可订阅软键盘显示/隐藏请求事件、创建/销毁输入法面板等。
60
61**系统能力:** SystemCapability.MiscServices.InputMethodFramework
62
63**返回值:**
64
65| 类型                                      | 说明               |
66| ----------------------------------------- | ------------------ |
67| [InputMethodAbility](#inputmethodability) | 输入法应用客户端。 |
68
69**示例:**
70
71```ts
72let InputMethodAbility = inputMethodEngine.getInputMethodAbility();
73```
74
75## inputMethodEngine.getKeyboardDelegate<sup>9+</sup>
76
77getKeyboardDelegate(): KeyboardDelegate
78
79获取客户端编辑事件监听代理实例[KeyboardDelegate](#keyboarddelegate)。<br/>输入法应用获取该实例后,可订阅物理键盘按键事件、选中文本变化事件等。
80
81**系统能力:** SystemCapability.MiscServices.InputMethodFramework
82
83**返回值:**
84
85| 类型                                  | 说明                     |
86| ------------------------------------- | ------------------------ |
87| [KeyboardDelegate](#keyboarddelegate) | 客户端编辑事件监听代理。 |
88
89**示例:**
90
91```ts
92let KeyboardDelegate = inputMethodEngine.getKeyboardDelegate();
93```
94
95## inputMethodEngine.getInputMethodEngine<sup>(deprecated)</sup>
96
97getInputMethodEngine(): InputMethodEngine
98
99获取输入法应用客户端实例[InputMethodEngine](#inputmethodengine)。<br/>输入法应用获取该实例后,可订阅软键盘显示/隐藏请求事件等。
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```ts
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```ts
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                        | 是   | 设置监听类型,固定取值为'inputStart'。 |
160| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 是 | 回调函数,返回订阅输入法的KeyboardController和TextInputClient实例。 |
161
162**示例:**
163
164```ts
165try {
166  inputMethodEngine.getInputMethodEngine()
167    .on('inputStart', (kbController: inputMethodEngine.KeyboardController, textClient: inputMethodEngine.TextInputClient) => {
168      let keyboardController = kbController;
169      let textInputClient = textClient;
170  });
171} catch(err) {
172  console.error(`Failed to inputStart: ${JSON.stringify(err)}`);
173}
174```
175
176### off('inputStart')
177
178off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void
179
180取消订阅输入法绑定成功事件。
181
182**系统能力:** SystemCapability.MiscServices.InputMethodFramework
183
184**参数:**
185
186| 参数名   | 类型                 | 必填 | 说明                     |
187| -------- | -------------------- | ---- | ------------------------ |
188| type | string                                                       | 是   | 设置监听类型,固定取值为'inputStart'。 |
189| callback | (kbController: [KeyboardController](#keyboardcontroller), textInputClient: [TextInputClient](#textinputclient)) => void | 否 | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
190
191**示例:**
192
193```ts
194try {
195  inputMethodEngine.getInputMethodEngine()
196    .off('inputStart', (kbController: inputMethodEngine.KeyboardController, textClient: inputMethodEngine.TextInputClient) => {
197      console.log('delete inputStart notification.');
198  });
199} catch(err) {
200  console.error(`Failed to inputStart: ${JSON.stringify(err)}`);
201}
202```
203
204### on('keyboardShow'|'keyboardHide')
205
206on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
207
208订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
209
210**系统能力:** SystemCapability.MiscServices.InputMethodFramework
211
212**参数:**
213
214| 参数名   | 类型   | 必填 | 说明                                                         |
215| -------- | ------ | ---- | ------------------------------------------------------------ |
216| type     | string | 是   | 设置监听类型。<br/>-'keyboardShow'表示显示输入法软键盘。<br/>-'keyboardHide'表示隐藏输入法软键盘。 |
217| callback | () => void   | 是   | 回调函数。                                                   |
218
219**示例:**
220
221```ts
222try {
223  inputMethodEngine.getInputMethodEngine().on('keyboardShow', () => {
224    console.log('inputMethodEngine keyboardShow.');
225  });
226  inputMethodEngine.getInputMethodEngine().on('keyboardHide', () => {
227    console.log('inputMethodEngine keyboardHide.');
228});
229} catch(err) {
230  console.error(`Failed to InputMethodEngine: ${JSON.stringify(err)}`);
231}
232```
233
234### off('keyboardShow'|'keyboardHide')
235
236off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
237
238取消订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
239
240**系统能力:** SystemCapability.MiscServices.InputMethodFramework
241
242**参数:**
243
244| 参数名   | 类型   | 必填 | 说明                                                         |
245| -------- | ------ | ---- | ------------------------------------------------------------ |
246| type     | string | 是   | 要取消监听的输入法软键盘类型。<br/>-'keyboardShow'表示显示输入法软键盘。<br/>-'keyboardHide'表示隐藏输入法软键盘。|
247| callback | () => void   | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
248
249**示例:**
250
251```ts
252inputMethodEngine.getInputMethodEngine().off('keyboardShow');
253inputMethodEngine.getInputMethodEngine().off('keyboardHide');
254```
255
256## InputMethodAbility
257
258下列API均需使用[getInputMethodAbility](#inputmethodenginegetinputmethodability9)获取到InputMethodAbility实例后,通过实例调用。
259
260### on('inputStart')<sup>9+</sup>
261
262on(type: 'inputStart', callback: (kbController: KeyboardController, inputClient: InputClient) => void): void
263
264订阅输入法绑定成功事件。使用callback异步回调。
265
266**系统能力:** SystemCapability.MiscServices.InputMethodFramework
267
268**参数:**
269
270| 参数名   | 类型                            | 必填 | 说明                                                         |
271| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
272| type     | string                        | 是   | 设置监听类型,固定取值为'inputStart'。 |
273| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 是 | 回调函数,返回输入法操作相关实例。 |
274
275**示例:**
276
277```ts
278try {
279  inputMethodEngine.getInputMethodAbility()
280    .on('inputStart', (kbController: inputMethodEngine.KeyboardController, client: inputMethodEngine.InputClient) => {
281      let keyboardController = kbController;
282      let inputClient = client;
283  });
284} catch(err) {
285    console.error(`Failed to InputMethodAbility: ${JSON.stringify(err)}`);
286}
287```
288
289### off('inputStart')<sup>9+</sup>
290
291off(type: 'inputStart', callback?: (kbController: KeyboardController, inputClient: InputClient) => void): void
292
293取消订阅输入法绑定成功事件。使用callback异步回调。
294
295**系统能力:** SystemCapability.MiscServices.InputMethodFramework
296
297**参数:**
298
299| 参数名   | 类型                 | 必填 | 说明                     |
300| -------- | -------------------- | ---- | ------------------------ |
301| type | string                                                       | 是   | 设置监听类型,固定取值为'inputStart'。 |
302| callback | (kbController: [KeyboardController](#keyboardcontroller), inputClient: [InputClient](#inputclient9)) => void | 否 | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
303
304**示例:**
305
306```ts
307inputMethodEngine.getInputMethodAbility().off('inputStart');
308```
309
310### on('inputStop')<sup>9+</sup>
311
312on(type: 'inputStop', callback: () => void): void
313
314订阅停止输入法应用事件。使用callback异步回调。
315
316**系统能力:** SystemCapability.MiscServices.InputMethodFramework
317
318**参数:**
319
320| 参数名   | 类型   | 必填 | 说明                                                         |
321| -------- | ------ | ---- | ------------------------------------------------------------ |
322| type     | string | 是   | 设置监听类型,固定取值为'inputStop'。 |
323| callback | () => void   | 是   | 回调函数。                        |
324
325**示例:**
326
327```ts
328try {
329  inputMethodEngine.getInputMethodAbility().on('inputStop', () => {
330    console.log('inputMethodAbility inputStop');
331  });
332} catch(err) {
333    console.error(`Failed to inputStop: ${JSON.stringify(err)}`);
334}
335```
336
337### off('inputStop')<sup>9+</sup>
338
339off(type: 'inputStop', callback: () => void): void
340
341取消订阅停止输入法应用事件。使用callback异步回调。
342
343**系统能力:** SystemCapability.MiscServices.InputMethodFramework
344
345**参数:**
346
347| 参数名   | 类型   | 必填 | 说明                                                         |
348| -------- | ------ | ---- | ------------------------------------------------------------ |
349| type     | string | 是   | 设置监听类型,固定取值为'inputStop'。 |
350| callback | () => void   | 是   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。        |
351
352**示例:**
353
354```ts
355try {
356  inputMethodEngine.getInputMethodAbility().off('inputStop', () => {
357    console.log('inputMethodAbility delete inputStop notification.');
358  });
359} catch(err) {
360    console.error(`Failed to inputStop: ${JSON.stringify(err)}`);
361}
362```
363
364### on('setCallingWindow')<sup>9+</sup>
365
366on(type: 'setCallingWindow', callback: (wid: number) => void): void
367
368订阅设置调用窗口事件。使用callback异步回调。
369
370**系统能力:** SystemCapability.MiscServices.InputMethodFramework
371
372**参数:**
373
374| 参数名   | 类型   | 必填 | 说明                                                         |
375| -------- | ------ | ---- | ------------------------------------------------------------ |
376| type     | string | 是   | 设置监听类型,固定取值为'setCallingWindow'。 |
377| callback | (wid: number) => void | 是   | 回调函数,返回调用方窗口的Id。                     |
378
379**示例:**
380
381```ts
382try {
383  inputMethodEngine.getInputMethodAbility().on('setCallingWindow', (wid: number) => {
384    console.log('inputMethodAbility setCallingWindow');
385  });
386} catch(err) {
387    console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
388}
389```
390
391### off('setCallingWindow')<sup>9+</sup>
392
393off(type: 'setCallingWindow', callback: (wid:number) => void): void
394
395取消订阅设置调用窗口事件。使用callback异步回调。
396
397**系统能力:** SystemCapability.MiscServices.InputMethodFramework
398
399**参数:**
400
401| 参数名   | 类型   | 必填 | 说明                                                         |
402| -------- | ------ | ---- | ------------------------------------------------------------ |
403| type     | string | 是   | 设置监听类型,固定取值为'setCallingWindow'。|
404| callback | (wid:number) => void | 是   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
405
406**示例:**
407
408```ts
409try {
410  inputMethodEngine.getInputMethodAbility().off('setCallingWindow', (wid: number) => {
411    console.log('inputMethodAbility delete setCallingWindow notification.');
412  });
413} catch(err) {
414    console.error(`Failed to setCallingWindow: ${JSON.stringify(err)}`);
415}
416```
417
418### on('keyboardShow'|'keyboardHide')<sup>9+</sup>
419
420on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
421
422订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
423
424**系统能力:** SystemCapability.MiscServices.InputMethodFramework
425
426**参数:**
427
428| 参数名   | 类型   | 必填 | 说明                                                         |
429| -------- | ------ | ---- | ------------------------------------------------------------ |
430| type     | string | 是   | 设置监听类型。<br/>- 'keyboardShow'表示显示输入法软键盘。<br/>- 'keyboardHide'表示隐藏输入法软键盘。 |
431| callback | () => void   | 是   | 回调函数。                                                   |
432
433**示例:**
434
435```ts
436try {
437  inputMethodEngine.getInputMethodAbility().on('keyboardShow', () => {
438    console.log('InputMethodAbility keyboardShow.');
439  });
440  inputMethodEngine.getInputMethodAbility().on('keyboardHide', () => {
441    console.log('InputMethodAbility keyboardHide.');
442  });
443} catch(err) {
444    console.error(`Failed to keyboard: ${JSON.stringify(err)}`);
445}
446```
447
448### off('keyboardShow'|'keyboardHide')<sup>9+</sup>
449
450off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
451
452取消订阅输入法事件。使用callback异步回调。
453
454**系统能力:** SystemCapability.MiscServices.InputMethodFramework
455
456**参数:**
457
458| 参数名   | 类型   | 必填 | 说明                                                         |
459| -------- | ------ | ---- | ------------------------------------------------------------ |
460| type     | string | 是   | 设置监听类型。<br/>- 'keyboardShow'表示显示键盘。<br/>- 'keyboardHide'表示隐藏键盘。 |
461| callback | () => void   | 否   | 回调函数。 |
462
463**示例:**
464
465```ts
466try {
467  inputMethodEngine.getInputMethodAbility().off('keyboardShow', () => {
468    console.log('InputMethodAbility delete keyboardShow notification.');
469  });
470  inputMethodEngine.getInputMethodAbility().off('keyboardHide', () => {
471    console.log('InputMethodAbility delete keyboardHide notification.');
472  });
473} catch(err) {
474    console.error(`Failed to keyboard: ${JSON.stringify(err)}`);
475}
476```
477
478### on('setSubtype')<sup>9+</sup>
479
480on(type: 'setSubtype', callback: (inputMethodSubtype: InputMethodSubtype) => void): void
481
482订阅设置输入法子类型事件。使用callback异步回调。
483
484**系统能力:** SystemCapability.MiscServices.InputMethodFramework
485
486**参数:**
487
488| 参数名    | 类型 | 必填  | 说明 |
489| -------- | --- | ---- | --- |
490| type     | string | 是   | 设置监听类型,固定取值为'setSubtype'。 |
491| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 是   | 回调函数,返回设置的输入法子类型。                         |
492
493**示例:**
494
495```ts
496try {
497  inputMethodEngine.getInputMethodAbility().on('setSubtype', (inputMethodSubtype: InputMethodSubtype) => {
498    console.log('InputMethodAbility setSubtype.');
499  });
500} catch(err) {
501    console.error(`Failed to setSubtype: ${JSON.stringify(err)}`);
502}
503```
504
505### off('setSubtype')<sup>9+</sup>
506
507off(type: 'setSubtype', callback?: (inputMethodSubtype: InputMethodSubtype) => void): void
508
509取消订阅输入法软键盘显示或隐藏事件。使用callback异步回调。
510
511**系统能力:** SystemCapability.MiscServices.InputMethodFramework
512
513**参数:**
514
515| 参数名   | 类型  | 必填 | 说明   |
516| ------- | ----- | ---- | ---- |
517| type     | string | 是   | 设置监听类型,固定取值为'setSubtype'。 |
518| callback | (inputMethodSubtype: [InputMethodSubtype](js-apis-inputmethod-subtype.md)) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。  |
519
520**示例:**
521
522```ts
523try {
524  inputMethodEngine.getInputMethodAbility().off('setSubtype', () => {
525    console.log('InputMethodAbility delete setSubtype notification.');
526  });
527} catch(err) {
528    console.error(`Failed to setSubtype: ${JSON.stringify(err)}`);
529}
530```
531
532### createPanel<sup>10+</sup>
533
534createPanel(ctx: BaseContext, info: PanelInfo, callback: AsyncCallback\<Panel>): void
535
536创建输入法面板,仅支持输入法应用调用。使用callback异步回调。<br>单个输入法应用仅允许创建一个[软键盘类型](#paneltype10)和[状态栏类型](#paneltype10)的面板。
537
538**系统能力:** SystemCapability.MiscServices.InputMethodFramework
539
540**参数:**
541
542| 参数名   | 类型        | 必填 | 说明                     |
543| ------- | ----------- | ---- | ------------------------ |
544| ctx     | [BaseContext](js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
545| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法应用信息。 |
546| callback | AsyncCallback\<[Panel](#panel10)> | 是   | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
547
548**错误码:**
549
550| 错误码ID   | 错误信息                       |
551| ---------- | ----------------------------- |
552| 12800004   | not an input method extension. |
553
554**示例:**
555
556```ts
557import { BusinessError } from '@ohos.base';
558
559let panelInfo: inputMethodEngine.PanelInfo = {
560  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
561  flag: inputMethodEngine.PanelFlag.FLG_FIXED
562}
563try {
564  inputMethodEngine.getInputMethodAbility()
565    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
566      if (err) {
567        console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
568        return;
569      }
570      console.log('Succeed in creating panel.');
571    })
572} catch (err) {
573  console.error(`Failed to createPanel: ${JSON.stringify(err)}`);
574}
575```
576
577### createPanel<sup>10+</sup>
578
579createPanel(ctx: BaseContext, info: PanelInfo): Promise\<Panel>
580
581创建输入法面板,仅支持输入法应用调用。使用promise异步回调。<br>单个输入法应用仅允许创建一个[软键盘类型](#paneltype10)和[状态栏类型](#paneltype10)的面板。
582
583**系统能力:** SystemCapability.MiscServices.InputMethodFramework
584
585**参数:**
586
587| 参数名   | 类型        | 必填 | 说明                     |
588| ------- | ----------- | ---- | ------------------------ |
589| ctx     | [BaseContext](js-apis-inner-application-baseContext.md) | 是   | 当前输入法应用上下文信息。 |
590| info    | [PanelInfo](#panelinfo10)   | 是   | 输入法面板信息。 |
591
592**返回值:**
593| 类型   | 说明                                                                 |
594| ------- | ------------------------------------------------------------------ |
595| Promise\<[Panel](#panel10)> | 回调函数。当输入法面板创建成功,返回当前创建的输入法面板对象。  |
596
597**错误码:**
598
599| 错误码ID   | 错误信息                       |
600| ---------- | ----------------------------- |
601| 12800004   | not an input method extension. |
602
603**示例:**
604
605```ts
606import { BusinessError } from '@ohos.base';
607
608let panelInfo: inputMethodEngine.PanelInfo = {
609  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
610  flag: inputMethodEngine.PanelFlag.FLG_FIXED
611}
612inputMethodEngine.getInputMethodAbility().createPanel(this.context, panelInfo)
613  .then((panel: inputMethodEngine.Panel) => {
614    console.log('Succeed in creating panel.');
615  }).catch((err: BusinessError) => {
616    console.error(`Failed to create panel: ${JSON.stringify(err)}`);
617  })
618```
619
620### destroyPanel<sup>10+</sup>
621
622destroyPanel(panel: Panel, callback: AsyncCallback\<void>): void
623
624销毁输入法面板。使用callback异步回调。
625
626**系统能力:** SystemCapability.MiscServices.InputMethodFramework
627
628**参数:**
629
630| 参数名   | 类型        | 必填 | 说明                     |
631| ------- | ----------- | ---- | ------------------------ |
632| panel     | [Panel](#panel10) | 是   | 要销毁的面板对象。 |
633| callback | AsyncCallback\<void> | 是   | 回调函数。当输入法面板销毁成功,err为undefined,否则为错误对象。  |
634
635**示例:**
636
637```ts
638import { BusinessError } from '@ohos.base';
639
640let panelInfo: inputMethodEngine.PanelInfo = {
641  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
642  flag: inputMethodEngine.PanelFlag.FLG_FIXED
643}
644let inputPanel: inputMethodEngine.Panel | undefined = undefined;
645try {
646  inputMethodEngine.getInputMethodAbility()
647    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
648      if (err) {
649        console.error(`Failed to create panel: ${JSON.stringify(err)}`);
650        return;
651      }
652      inputPanel = panel;
653      console.log('Succeed in creating panel.');
654    })
655} catch (err) {
656  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
657}
658try {
659  if (inputPanel) {
660    inputMethodEngine.getInputMethodAbility().destroyPanel(inputPanel, (err: BusinessError) => {
661      if (err !== undefined) {
662        console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
663        return;
664      }
665      console.log('Succeed in destroying panel.');
666    })
667  }
668} catch (err) {
669  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
670}
671```
672
673### destroyPanel<sup>10+</sup>
674
675destroyPanel(panel: Panel): Promise\<void>
676
677销毁输入法面板。使用promise异步回调。
678
679**系统能力:** SystemCapability.MiscServices.InputMethodFramework
680
681**参数:**
682
683| 参数名   | 类型        | 必填 | 说明                     |
684| ---------| ----------- | ---- | ------------------------ |
685| panel    | [Panel](#panel10)       | 是   | 要销毁的面板对象。      |
686
687**返回值:**
688| 类型    | 说明                                                                 |
689| ------- | -------------------------------------------------------------------- |
690| Promise\<void> | 无返回结果的Promise对象。|
691
692**示例:**
693
694```ts
695import { BusinessError } from '@ohos.base';
696
697let panelInfo: inputMethodEngine.PanelInfo = {
698  type: inputMethodEngine.PanelType.SOFT_KEYBOARD,
699  flag: inputMethodEngine.PanelFlag.FLG_FIXED
700}
701let inputPanel: inputMethodEngine.Panel | undefined = undefined;
702try {
703  inputMethodEngine.getInputMethodAbility()
704    .createPanel(this.context, panelInfo, (err: BusinessError, panel: inputMethodEngine.Panel) => {
705      if (err) {
706        console.error(`Failed to create panel: ${JSON.stringify(err)}`);
707        return;
708      }
709      inputPanel = panel;
710      console.log('Succeed in creating panel.');
711    })
712} catch (err) {
713  console.error(`Failed to create panel: ${JSON.stringify(err)}`);
714}
715
716try {
717  if (inputPanel) {
718    inputMethodEngine.getInputMethodAbility().destroyPanel(inputPanel).then(() => {
719      console.log('Succeed in destroying panel.');
720    }).catch((err: BusinessError) => {
721      console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
722    });
723  }
724} catch (err) {
725  console.error(`Failed to destroy panel: ${JSON.stringify(err)}`);
726}
727```
728
729## KeyboardDelegate
730
731下列API均需使用[getKeyboardDelegate](#inputmethodenginegetkeyboarddelegate9)获取到KeyboardDelegate实例后,通过实例调用。
732
733### on('keyDown'|'keyUp')
734
735on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
736
737订阅硬键盘(即物理键盘)上物理按键的按下或抬起事件。使用callback异步回调。
738
739**系统能力:** SystemCapability.MiscServices.InputMethodFramework
740
741**参数:**
742
743| 参数名   | 类型                            | 必填 | 说明                                                  |
744| -------- | ------------------------------- | ---- |-----------------------------------------------------|
745| type   | string         | 是   | 设置监听类型。<br/>- 'keyDown'表示键盘按下。<br/>- 'keyUp'表示键盘抬起。 |
746| callback | (event: [KeyEvent](#keyevent)) => boolean | 是 | 回调函数,返回按键信息。 若按键事件被事件订阅者消费,则callback应返回true,否则返回false。   |
747
748**示例:**
749
750```ts
751try {
752  inputMethodEngine.getKeyboardDelegate().on('keyUp', (keyEvent: inputMethodEngine.KeyEvent) => {
753    console.log('inputMethodEngine keyCode.(keyUp):' + JSON.stringify(keyEvent.keyCode));
754    console.log('inputMethodEngine keyAction.(keyUp):' + JSON.stringify(keyEvent.keyAction));
755    return true;
756  });
757  inputMethodEngine.getKeyboardDelegate().on('keyDown', (keyEvent: inputMethodEngine.KeyEvent) => {
758    console.log('inputMethodEngine keyCode.(keyDown):' + JSON.stringify(keyEvent.keyCode));
759    console.log('inputMethodEngine keyAction.(keyDown):' + JSON.stringify(keyEvent.keyAction));
760    return true;
761  });
762} catch(err) {
763    console.error(`Failed to KeyboardDelegate: ${JSON.stringify(err)}`);
764}
765```
766
767### off('keyDown'|'keyUp')
768
769off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void
770
771取消订阅硬键盘(即物理键盘)上物理按键的按下或抬起事件。使用callback异步回调。
772
773**系统能力:** SystemCapability.MiscServices.InputMethodFramework
774
775**参数:**
776
777| 参数名    | 类型     | 必填  | 说明  |
778| -------- | ------- | ---- | ----- |
779| type     | string  | 是   | 设置监听类型。<br/>- 'keyDown'表示键盘按下。<br/>- 'keyUp'表示键盘抬起。 |
780| callback | (event: [KeyEvent](#keyevent)) => boolean | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。   |
781
782**示例:**
783
784```ts
785try {
786  inputMethodEngine.getKeyboardDelegate().off('keyUp', (keyEvent: inputMethodEngine.KeyEvent) => {
787    console.log('delete keyUp notification.');
788    return true;
789  });
790  inputMethodEngine.getKeyboardDelegate().off('keyDown', (keyEvent: inputMethodEngine.KeyEvent) => {
791    console.log('delete keyDown notification.');
792    return true;
793  });
794} catch(err) {
795    console.error(`Failed to keyevent: ${JSON.stringify(err)}`);
796}
797```
798
799### on('keyEvent')<sup>10+</sup>
800
801on(type: 'keyEvent', callback: (event: InputKeyEvent) => boolean): void
802
803订阅硬键盘(即物理键盘)事件。使用callback异步回调。
804
805**系统能力:** SystemCapability.MiscServices.InputMethodFramework
806
807**参数:**
808
809| 参数名   | 类型     | 必填 | 说明                                                         |
810| -------- | -------- | ---- | ------------------------------------------------------------ |
811| type     | string   | 是   | 设置监听类型,固定取值为'keyEvent'。 |
812| callback | function | 是   | 回调函数,入参为按键事件信息,返回值类型为布尔类型。<br/>-&nbsp;入参按键事件信息的数据类型为[InputKeyEvent](js-apis-keyevent.md#KeyEvent)。<br/>-&nbsp;若按键事件被事件订阅者消费,则callback应返回true,否则返回false。|
813
814**示例:**
815
816```ts
817import type { KeyEvent } from '@ohos.multimodalInput.keyEvent';
818
819try {
820  inputMethodEngine.getKeyboardDelegate().on('keyEvent', (keyEvent: KeyEvent) => {
821    console.log('inputMethodEngine keyEvent.action:' + JSON.stringify(keyEvent.action));
822    console.log('inputMethodEngine keyEvent.key.code:' + JSON.stringify(keyEvent.key.code));
823    console.log('inputMethodEngine keyEvent.ctrlKey:' + JSON.stringify(keyEvent.ctrlKey));
824    return true;
825  });
826} catch(err) {
827    console.error(`Failed to inputMethodEngine: ${JSON.stringify(err)}`);
828}
829```
830
831### off('keyEvent')<sup>10+</sup>
832
833off(type: 'keyEvent', callback?: (event: InputKeyEvent) => boolean): void
834
835取消订阅硬键盘(即物理键盘)事件。使用callback异步回调。
836
837**系统能力:** SystemCapability.MiscServices.InputMethodFramework
838
839**参数:**
840
841| 参数名   | 类型     | 必填 | 说明                                                         |
842| -------- | -------- | ---- | ------------------------------------------------------------ |
843| type     | string   | 是   | 设置监听类型,固定取值为'keyEvent'。 |
844| callback | function | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
845
846**示例:**
847
848```ts
849import type { KeyEvent } from '@ohos.multimodalInput.keyEvent';
850
851try {
852  inputMethodEngine.getKeyboardDelegate().off('keyEvent', (keyEvent: KeyEvent) => {
853    console.log('This is a callback function which will be deregistered.');
854    return true;
855  });
856  inputMethodEngine.getKeyboardDelegate().off('keyEvent');
857} catch(err) {
858    console.error(`Failed to keyEvent: ${JSON.stringify(err)}`);
859}
860```
861
862### on('cursorContextChange')
863
864on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) => void): void
865
866订阅光标变化事件。使用callback异步回调。
867
868**系统能力:** SystemCapability.MiscServices.InputMethodFramework
869
870**参数:**
871
872| 参数名    | 类型  | 必填  | 说明  |
873| -------- | ---- | ---- | ----- |
874| type     | string | 是   | 光标变化事件,固定取值为'cursorContextChange'。 |
875| callback | (x: number, y: number, height: number) => void | 是   | 回调函数,返回光标信息。<br/>-x为光标上端的的x坐标值,y为光标上端的y坐标值,height为光标的高度值。 |
876
877**示例:**
878
879```ts
880try {
881  inputMethodEngine.getKeyboardDelegate().on('cursorContextChange', (x: number, y: number, height: number) => {
882    console.log('inputMethodEngine cursorContextChange x:' + x);
883    console.log('inputMethodEngine cursorContextChange y:' + y);
884    console.log('inputMethodEngine cursorContextChange height:' + height);
885  });
886} catch(err) {
887    console.error(`Failed to cursorContextChange: ${JSON.stringify(err)}`);
888}
889```
890
891### off('cursorContextChange')
892
893off(type: 'cursorContextChange', callback?: (x: number, y: number, height: number) => void): void
894
895取消订阅光标变化事件。使用callback异步回调。
896
897**系统能力:** SystemCapability.MiscServices.InputMethodFramework
898
899  **参数:**
900
901| 参数名    | 类型  | 必填  | 说明   |
902| -------- | ---- | ---- | ------ |
903| type     | string  | 是   | 光标变化事件,固定取值为'cursorContextChange' |
904| callback | (x: number, y:number, height:number) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
905
906
907  **示例:**
908
909```ts
910try {
911  inputMethodEngine.getKeyboardDelegate().off('cursorContextChange', (x: number, y: number, height: number) => {
912    console.log('delete cursorContextChange notification.');
913  });
914} catch(err) {
915    console.error(`Failed to cursorContextChange: ${JSON.stringify(err)}`);
916}
917```
918### on('selectionChange')
919
920on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
921
922订阅文本选择范围变化事件。使用callback异步回调。
923
924**系统能力:** SystemCapability.MiscServices.InputMethodFramework
925
926**参数:**
927
928| 参数名    | 类型   | 必填 | 说明   |
929| -------- | ----- | ---- | ---- |
930| type     | string  | 是   | 文本选择变化事件,固定取值为'selectionChange'。 |
931| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 是   | 回调函数,返回文本选择信息。<br/>- oldBegin为变化前被选中文本的起始下标,oldEnd为变化前被选中文本的终止下标。<br/>- newBegin为变化后被选中文本的起始下标,newEnd为变化后被选中文本的终止下标。|
932
933**示例:**
934
935```ts
936try {
937  inputMethodEngine.getKeyboardDelegate()
938    .on('selectionChange', (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => {
939      console.log('inputMethodEngine beforeEach selectionChange oldBegin:' + oldBegin);
940      console.log('inputMethodEngine beforeEach selectionChange oldEnd:' + oldEnd);
941      console.log('inputMethodEngine beforeEach selectionChange newBegin:' + newBegin);
942      console.log('inputMethodEngine beforeEach selectionChange newEnd:' + newEnd);
943    });
944} catch(err) {
945    console.error(`Failed to selectionChange: ${JSON.stringify(err)}`);
946}
947```
948
949### off('selectionChange')
950
951off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
952
953取消订阅文本选择范围变化事件。使用callback异步回调。
954
955**系统能力:** SystemCapability.MiscServices.InputMethodFramework
956
957**参数:**
958
959| 参数名   | 类型  | 必填 | 说明     |
960| -------- | ------- | ---- | ------- |
961| type     | string  | 是   | 文本选择变化事件,固定取值为'selectionChange'。 |
962| callback | (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
963
964**示例:**
965
966```ts
967try {
968  inputMethodEngine.getKeyboardDelegate()
969    .off('selectionChange', (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number)  => {
970      console.log('delete selectionChange notification.');
971    });
972} catch(err) {
973    console.error(`Failed to selectionChange: ${JSON.stringify(err)}`);
974}
975```
976
977
978### on('textChange')
979
980on(type: 'textChange', callback: (text: string) => void): void
981
982订阅文本内容变化事件。使用callback异步回调。
983
984**系统能力:** SystemCapability.MiscServices.InputMethodFramework
985
986**参数:**
987
988| 参数名   | 类型   | 必填 | 说明                                                         |
989| -------- | ------ | ---- | ------------------------------------------------------------ |
990| type     | string | 是   | 文本变化事件,固定取值为'textChange'。 |
991| callback | (text: string) => void | 是   | 回调函数,返回订阅的文本内容。|
992
993**示例:**
994
995```ts
996try {
997  inputMethodEngine.getKeyboardDelegate().on('textChange', (text: string) => {
998    console.log('inputMethodEngine textChange. text:' + text);
999  });
1000} catch(err) {
1001    console.error(`Failed to textChange: ${JSON.stringify(err)}`);
1002}
1003```
1004
1005### off('textChange')
1006
1007off(type: 'textChange', callback?: (text: string) => void): void
1008
1009取消订阅文本内容变化事件。使用callback异步回调。
1010
1011**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1012
1013**参数:**
1014
1015| 参数名   | 类型   | 必填 | 说明                                                         |
1016| -------- | ------ | ---- | ------------------------------------------------------------ |
1017| type     | string | 是   | 文本变化事件,固定取值为'textChange'。 |
1018| callback | (text: string) => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。|
1019
1020**示例:**
1021
1022```ts
1023try {
1024  inputMethodEngine.getKeyboardDelegate().off('textChange', (text: string) => {
1025    console.log('delete textChange notification. text:' + text);
1026  });
1027} catch(err) {
1028    console.error(`Failed to textChange: ${JSON.stringify(err)}`);
1029}
1030```
1031
1032### on('editorAttributeChanged')<sup>10+</sup>
1033
1034on(type: 'editorAttributeChanged', callback: (attr: EditorAttribute) => void): void
1035
1036订阅编辑框属性变化事件。使用callback异步回调。
1037
1038**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1039
1040**参数:**
1041
1042| 参数名   | 类型   | 必填 | 说明                                                         |
1043| -------- | ------ | ---- | ------------------------------------------------------------ |
1044| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
1045| callback | (attr: EditorAttribute) => void | 是   | 回调函数,返回变化的编辑框属性。|
1046
1047**示例:**
1048
1049```ts
1050try {
1051  inputMethodEngine.getKeyboardDelegate().on('editorAttributeChanged', (attr: inputMethodEngine.EditorAttribute) => {
1052    console.log(`Succeeded in receiving attribute of editor, inputPattern = ${attr.inputPattern}, enterKeyType = ${attr.enterKeyType}`);
1053  });
1054} catch(err) {
1055    console.error(`Failed to textChange: ${JSON.stringify(err)}`);
1056}
1057```
1058
1059### off('editorAttributeChanged')<sup>10+</sup>
1060
1061off(type: 'editorAttributeChanged', callback?: (attr: EditorAttribute) => void): void
1062
1063取消订阅编辑框属性变化事件。使用callback异步回调。
1064
1065**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1066
1067**参数:**
1068
1069| 参数名   | 类型   | 必填 | 说明                                                         |
1070| -------- | ------ | ---- | ------------------------------------------------------------ |
1071| type     | string | 是   | 文本变化事件,固定取值为'editorAttributeChanged'。 |
1072| callback | (attr: EditorAttribute) => void | 否   | 所要取消订阅的回调处理函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1073
1074**示例:**
1075
1076```ts
1077inputMethodEngine.getKeyboardDelegate().off('editorAttributeChanged');
1078```
1079
1080## Panel<sup>10+</sup>
1081
1082下列API均需使用[createPanel](#createpanel10)获取到Panel实例后,通过实例调用。
1083
1084### setUiContent<sup>10+</sup>
1085
1086setUiContent(path: string, callback: AsyncCallback\<void>): void
1087
1088为当前的输入法面板加载具体页面内容,使用callback异步回调。
1089
1090**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1091
1092**参数:**
1093
1094| 参数名   | 类型                   | 必填 | 说明     |
1095| -------- | ---------------------- | ---- | -------- |
1096| path | string | 是   | 具体页面的路径。 |
1097| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
1098
1099**示例:**
1100
1101```ts
1102import { BusinessError } from '@ohos.base';
1103
1104try {
1105  panel.setUiContent('pages/page2/page2', (err: BusinessError) => {
1106    if (err) {
1107      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1108      return;
1109    }
1110    console.log('Succeeded in setting the content.');
1111  });
1112} catch (err) {
1113  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1114}
1115```
1116
1117### setUiContent<sup>10+</sup>
1118
1119setUiContent(path: string): Promise\<void>
1120
1121为当前的输入法面板加载具体页面内容,使用Promise异步回调。
1122
1123**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1124
1125**参数:**
1126
1127| 参数名   | 类型                   | 必填 | 说明     |
1128| -------- | ---------------------- | ---- | -------- |
1129| path | string | 是   |  具体页面的路径。 |
1130
1131**返回值:**
1132
1133| 类型   | 说明                             |
1134| ------- | ------------------------------ |
1135| Promise\<void> | 无返回结果的Promise对象。  |
1136
1137**示例:**
1138
1139```ts
1140import { BusinessError } from '@ohos.base';
1141
1142try {
1143  panel.setUiContent('pages/page2/page2').then(() => {
1144    console.log('Succeeded in setting the content.');
1145  }).catch((err: BusinessError) => {
1146    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1147  });
1148} catch (err) {
1149  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1150}
1151```
1152
1153### setUiContent<sup>10+</sup>
1154
1155setUiContent(path: string, storage: LocalStorage, callback: AsyncCallback\<void>): void
1156
1157为当前的输入法面板加载与LocalStorage相关联的具体页面内容,使用callback异步回调。
1158
1159**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1160
1161**参数:**
1162
1163| 参数名   | 类型                   | 必填 | 说明     |
1164| -------- | ---------------------- | ---- | -------- |
1165| path | string | 是   | LocalStorage相关联的具体页面的路径。 |
1166| storage | [LocalStorage](../arkui-ts/ts-state-management.md#localstorage9) | 是   | 存储单元,为应用程序范围内的可变和不可变状态属性提供存储。|
1167| callback | AsyncCallback\<void> | 是   | 回调函数。当面板页面内容加载成功,err为undefined,否则err为错误对象。 |
1168
1169**示例:**
1170
1171```ts
1172import { BusinessError } from '@ohos.base';
1173
1174let storage = new LocalStorage();
1175storage.setOrCreate('storageSimpleProp',121);
1176try {
1177  panel.setUiContent('pages/page2/page2', storage, (err: BusinessError) => {
1178    if (err) {
1179      console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1180      return;
1181    }
1182    console.log('Succeeded in setting the content.');
1183  });
1184} catch (err) {
1185  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1186}
1187```
1188
1189### setUiContent<sup>10+</sup>
1190
1191setUiContent(path: string, storage: LocalStorage): Promise\<void>
1192
1193为当前面板加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。
1194
1195**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1196
1197**参数:**
1198
1199| 参数名   | 类型                   | 必填 | 说明     |
1200| -------- | ---------------------- | ---- | -------- |
1201| path | string | 是   | 设置加载页面的路径。 |
1202| storage | [LocalStorage](../arkui-ts/ts-state-management.md#localstorage9) | 是   | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。|
1203
1204**返回值:**
1205
1206| 类型   | 说明                             |
1207| ------- | ------------------------------ |
1208| Promise\<void> | 无返回结果的Promise对象。  |
1209
1210**示例:**
1211
1212```ts
1213import { BusinessError } from '@ohos.base';
1214
1215let storage = new LocalStorage();
1216storage.setOrCreate('storageSimpleProp',121);
1217try {
1218  panel.setUiContent('pages/page2/page2')then(() => {
1219    console.log('Succeeded in setting the content.');
1220  }).catch((err: BusinessError) => {
1221    console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1222  });
1223} catch (err) {
1224  console.error(`Failed to setUiContent: ${JSON.stringify(err)}`);
1225}
1226```
1227
1228### resize<sup>10+</sup>
1229
1230resize(width: number, height: number, callback: AsyncCallback\<void>): void
1231
1232改变当前输入法面板的大小,使用callback异步回调。
1233
1234> **说明**
1235>
1236> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1237
1238**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1239
1240**参数:**
1241
1242| 参数名   | 类型                   | 必填 | 说明     |
1243| -------- | ---------------------- | ---- | -------- |
1244| width | number | 是   | 目标面板的宽度,单位为px。|
1245| height | number | 是   | 目标面板的高度,单位为px。|
1246| callback | AsyncCallback\<void> | 是   | 回调函数。当面板大小改变成功,err为undefined,否则err为错误对象。 |
1247
1248**示例:**
1249
1250```ts
1251import { BusinessError } from '@ohos.base';
1252
1253try {
1254  panel.resize(500, 1000, (err: BusinessError) => {
1255    if (err) {
1256      console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1257      return;
1258    }
1259    console.log('Succeeded in changing the panel size.');
1260  });
1261} catch (err) {
1262  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1263}
1264```
1265
1266### resize<sup>10+</sup>
1267
1268resize(width: number, height: number): Promise\<void>
1269
1270改变当前输入法面板的大小,使用Promise异步回调。
1271
1272> **说明**
1273>
1274> 面板宽度不超出屏幕宽度,面板高度不高于屏幕高度的0.6倍。
1275
1276**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1277
1278**参数:**
1279
1280| 参数名   | 类型                   | 必填 | 说明     |
1281| -------- | ---------------------- | ---- | -------- |
1282| width | number | 是   | 目标面板的宽度,单位为px。|
1283| height | number | 是   | 目标面板的高度,单位为px。|
1284
1285**返回值:**
1286
1287| 类型   | 说明                             |
1288| ------- | ------------------------------ |
1289| Promise\<void> | 无返回结果的Promise对象。  |
1290
1291**示例:**
1292
1293```ts
1294import { BusinessError } from '@ohos.base';
1295
1296try {
1297  panel.resize(500, 1000).then(() => {
1298    console.log('Succeeded in changing the panel size.');
1299  }).catch((err: BusinessError) => {
1300    console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1301  });
1302} catch (err) {
1303  console.error(`Failed to resize panel: ${JSON.stringify(err)}`);
1304}
1305```
1306
1307### moveTo<sup>10+</sup>
1308
1309moveTo(x: number, y: number, callback: AsyncCallback\<void>): void
1310
1311移动面板位置,使用callback异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1312
1313**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1314
1315**参数:**
1316
1317| 参数名   | 类型                   | 必填 | 说明     |
1318| -------- | ---------------------- | ---- | -------- |
1319| x | number | 是   | x轴方向移动的值,值大于0表示右移,单位为px。|
1320| y | number | 是   | y轴方向移动的值,值大于0表示下移,单位为px。|
1321| callback | AsyncCallback\<void> | 是   | 回调函数。当面板位置移动成功,err为undefined,否则err为错误对象。 |
1322
1323**示例:**
1324
1325```ts
1326import { BusinessError } from '@ohos.base';
1327
1328try {
1329  panel.moveTo(300, 300, (err: BusinessError) =>{
1330    if (err) {
1331      console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1332      return;
1333    }
1334    console.log('Succeeded in moving the panel.');
1335  });
1336} catch (err) {
1337    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1338}
1339```
1340
1341### moveTo<sup>10+</sup>
1342
1343moveTo(x: number, y: number): Promise\<void>
1344
1345移动面板位置,使用promise异步回调。[面板状态](#panelflag10)为固定态时,不产生实际移动效果。
1346
1347**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1348
1349**参数:**
1350
1351| 参数名   | 类型                   | 必填 | 说明     |
1352| -------- | ---------------------- | ---- | -------- |
1353| x | number | 是   |x轴方向移动的值,值大于0表示右移,单位为px。|
1354| y | number | 是   |y轴方向移动的值,值大于0表示下移,单位为px。|
1355
1356**返回值:**
1357
1358| 类型   | 说明                             |
1359| ------- | ------------------------------ |
1360| Promise\<void> | 无返回结果的Promise对象。  |
1361
1362**示例:**
1363
1364```ts
1365import { BusinessError } from '@ohos.base';
1366
1367try {
1368  panel.moveTo(300, 300).then(() => {
1369    console.log('Succeeded in moving the panel.');
1370  }).catch((err: BusinessError) => {
1371    console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1372  });
1373} catch (err) {
1374  console.error(`Failed to move panel: ${JSON.stringify(err)}`);
1375}
1376```
1377
1378### show<sup>10+</sup>
1379
1380show(callback: AsyncCallback\<void>): void
1381
1382显示当前输入法面板,使用callback异步回调。输入法应用与编辑框绑定成功后可正常调用。
1383
1384**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1385
1386**参数:**
1387
1388| 参数名   | 类型                   | 必填 | 说明     |
1389| -------- | ---------------------- | ---- | -------- |
1390| callback | AsyncCallback\<void> | 是   | 回调函数。当面板显示成功,err为undefined,否则err为错误对象。 |
1391
1392**示例:**
1393
1394```ts
1395import { BusinessError } from '@ohos.base';
1396
1397panel.show((err: BusinessError) => {
1398  if (err) {
1399    console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1400    return;
1401  }
1402  console.log('Succeeded in showing the panel.');
1403});
1404```
1405
1406### show<sup>10+</sup>
1407
1408show(): Promise\<void>
1409
1410显示当前输入法面板,使用promise异步回调。输入法应用与编辑框绑定成功后可正常调用。
1411
1412**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1413
1414**返回值:**
1415
1416| 类型   | 说明                             |
1417| ------- | ------------------------------ |
1418| Promise\<void> | 无返回结果的Promise对象。  |
1419
1420**示例:**
1421
1422```ts
1423import { BusinessError } from '@ohos.base';
1424
1425panel.show().then(() => {
1426  console.log('Succeeded in showing the panel.');
1427}).catch((err: BusinessError) => {
1428  console.error(`Failed to show panel: ${JSON.stringify(err)}`);
1429});
1430```
1431
1432### hide<sup>10+</sup>
1433
1434hide(callback: AsyncCallback\<void>): void
1435
1436隐藏当前输入法面板,使用callback异步回调。
1437
1438**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1439
1440**参数:**
1441
1442| 参数名   | 类型                   | 必填 | 说明     |
1443| -------- | ---------------------- | ---- | -------- |
1444| callback | AsyncCallback\<void> | 是   | 回调函数。当面板隐藏成功,err为undefined,否则err为错误对象。 |
1445
1446**示例:**
1447
1448```ts
1449import { BusinessError } from '@ohos.base';
1450
1451panel.hide((err: BusinessError) => {
1452  if (err) {
1453    console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1454    return;
1455  }
1456  console.log('Succeeded in hiding the panel.');
1457});
1458```
1459
1460### hide<sup>10+</sup>
1461
1462hide(): Promise\<void>
1463
1464隐藏当前输入法面板,使用promise异步回调。
1465
1466**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1467
1468**返回值:**
1469
1470| 类型   | 说明                             |
1471| ------- | ------------------------------ |
1472| Promise\<void> | 无返回结果的Promise对象。  |
1473
1474**示例:**
1475
1476```ts
1477import { BusinessError } from '@ohos.base';
1478
1479panel.hide().then(() => {
1480  console.log('Succeeded in hiding the panel.');
1481}).catch((err: BusinessError) => {
1482  console.error(`Failed to hide panel: ${JSON.stringify(err)}`);
1483});
1484```
1485
1486### on('show')<sup>10+</sup>
1487
1488on(type: 'show', callback: () => void): void
1489
1490监听当前面板显示状态,使用callback异步回调。
1491
1492**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1493
1494**参数:**
1495
1496| 参数名   | 类型                   | 必填 | 说明     |
1497| -------- | ---------------------- | ---- | -------- |
1498| type | string | 是 | 监听当前面板的状态类型,固定取值为'show'。 |
1499| callback | () => void | 是   | 回调函数。 |
1500
1501**示例:**
1502
1503```ts
1504try {
1505  panel.on('show', () => {
1506    console.log('Panel is showing.');
1507  });
1508} catch(err) {
1509    console.error(`Failed to show: ${JSON.stringify(err)}`);
1510}
1511```
1512
1513### on('hide')<sup>10+</sup>
1514
1515on(type: 'hide', callback: () => void): void
1516
1517监听当前面板隐藏状态,使用callback异步回调。
1518
1519**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1520
1521**参数:**
1522
1523| 参数名   | 类型                   | 必填 | 说明     |
1524| -------- | ---------------------- | ---- | -------- |
1525| type | string | 是 | 监听当前面板的状态类型,固定取值为'hide'。 |
1526| callback | () => void | 是   | 回调函数。 |
1527
1528**示例:**
1529
1530```ts
1531try {
1532  panel.on('hide', () => {
1533    console.log('Panel is hiding.');
1534  });
1535} catch(err) {
1536    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1537}
1538```
1539
1540### off('show')<sup>10+</sup>
1541
1542off(type: 'show', callback?: () => void): void
1543
1544取消监听当前输入法面板的隐藏状态,使用callback异步回调。
1545
1546**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1547
1548**参数:**
1549
1550| 参数名   | 类型                   | 必填 | 说明     |
1551| -------- | ---------------------- | ---- | -------- |
1552| type | string | 是 | 取消监听当前面板的状态类型,固定取值为'show'。 |
1553| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1554
1555**示例:**
1556
1557```ts
1558try {
1559  panel.off('show');
1560} catch(err) {
1561    console.error(`Failed to show: ${JSON.stringify(err)}`);
1562}
1563```
1564
1565### off('hide')<sup>10+</sup>
1566
1567off(type: 'hide', callback?: () => void): void
1568
1569取消监听当前面板隐藏状态,使用callback异步回调。
1570
1571**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1572
1573**参数:**
1574
1575| 参数名   | 类型                   | 必填 | 说明     |
1576| -------- | ---------------------- | ---- | -------- |
1577| type | string | 是 | 要取消监听的当前面板状态类型,固定取值为'hide'。 |
1578| callback | () => void | 否   | 取消订阅的回调函数。参数不填写时,取消订阅type对应的所有回调事件。 |
1579
1580**示例:**
1581
1582```ts
1583try {
1584  panel.off('hide');
1585} catch(err) {
1586    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1587}
1588```
1589
1590### changeFlag<sup>10+</sup>
1591
1592changeFlag(flag: PanelFlag): void
1593
1594将输入法应用的面板状态改变为固定态或者悬浮态,仅对[SOFT_KEYBOARD](#paneltype10)生效。
1595
1596**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1597
1598**参数:**
1599
1600| 参数名   | 类型                   | 必填 | 说明     |
1601| -------- | ---------------------- | ---- | -------- |
1602| flag | [PanelFlag](#panelflag10) | 是 | 目标面板状态类型。 |
1603
1604**示例:**
1605
1606```ts
1607try {
1608  let panelFlag = inputMethodEngine.PanelFlag.FLG_FIXED;
1609  panel.changeFlag(panelFlag);
1610} catch(err) {
1611    console.error(`Failed to panelFlag: ${JSON.stringify(err)}`);
1612}
1613```
1614
1615## KeyboardController
1616
1617下列API均需使用[on('inputStart')](#oninputstart9)获取到KeyboardController实例后,通过实例调用。
1618
1619### hide<sup>9+</sup>
1620
1621hide(callback: AsyncCallback&lt;void&gt;): void
1622
1623隐藏输入法。使用callback异步回调。
1624
1625**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1626
1627**参数:**
1628
1629| 参数名   | 类型                   | 必填 | 说明     |
1630| -------- | ---------------------- | ---- | -------- |
1631| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
1632
1633**错误码:**
1634
1635以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1636
1637| 错误码ID | 错误信息                 |
1638| -------- | -------------------------- |
1639| 12800003 | input method client error. |
1640
1641**示例:**
1642
1643```ts
1644import { BusinessError } from '@ohos.base';
1645
1646keyboardController.hide((err: BusinessError) => {
1647  if (err) {
1648    console.error(`Failed to hide: ${JSON.stringify(err)}`);
1649    return;
1650  }
1651  console.log('Succeeded in hiding keyboard.');
1652});
1653```
1654
1655### hide<sup>9+</sup>
1656
1657hide(): Promise&lt;void&gt;
1658
1659隐藏输入法。使用promise异步回调。
1660
1661**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1662
1663**返回值:**
1664
1665| 类型             | 说明                      |
1666| ---------------- | ------------------------- |
1667| Promise&lt;void> | 无返回结果的Promise对象。 |
1668
1669**错误码:**
1670
1671以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1672
1673| 错误码ID | 错误信息                 |
1674| -------- | -------------------------- |
1675| 12800003 | input method client error. |
1676
1677**示例:**
1678
1679```ts
1680import { BusinessError } from '@ohos.base';
1681
1682keyboardController.hide().then(() => {
1683  console.log('Succeeded in hiding keyboard.');
1684}).catch((err: BusinessError) => {
1685  console.log(`Failed to hide: ${JSON.stringify(err)}`);
1686});
1687```
1688
1689### hideKeyboard<sup>(deprecated)</sup>
1690
1691hideKeyboard(callback: AsyncCallback&lt;void&gt;): void
1692
1693隐藏输入法。使用callback异步回调。
1694
1695> **说明:**
1696>
1697> 从API version 8开始支持,API version 9开始废弃,建议使用[hide](#hide9)替代。
1698
1699**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1700
1701**参数:**
1702
1703| 参数名   | 类型                   | 必填 | 说明     |
1704| -------- | ---------------------- | ---- | -------- |
1705| callback | AsyncCallback&lt;void> | 是   | 回调函数。当输入法隐藏成功,err为undefined,否则为错误对象。 |
1706
1707**示例:**
1708
1709```ts
1710import { BusinessError } from '@ohos.base';
1711
1712keyboardController.hideKeyboard((err: BusinessError) => {
1713  if (err) {
1714    console.error(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1715    return;
1716  }
1717  console.log('Succeeded in hiding keyboard.');
1718});
1719```
1720
1721### hideKeyboard<sup>(deprecated)</sup>
1722
1723hideKeyboard(): Promise&lt;void&gt;
1724
1725隐藏输入法。使用promise异步回调。
1726
1727> **说明:**
1728>
1729> 从API version 8开始支持,API version 9开始废弃,建议使用[hide](#hide9-1)替代。
1730
1731**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1732
1733**返回值:**
1734
1735| 类型             | 说明                      |
1736| ---------------- | ------------------------- |
1737| Promise&lt;void> | 无返回结果的Promise对象。 |
1738
1739**示例:**
1740
1741```ts
1742import { BusinessError } from '@ohos.base';
1743
1744keyboardController.hideKeyboard().then(() => {
1745  console.log('Succeeded in hiding keyboard.');
1746}).catch((err: BusinessError) => {
1747  console.log(`Failed to hideKeyboard: ${JSON.stringify(err)}`);
1748});
1749```
1750
1751## ExtendAction<sup>10+</sup>
1752
1753编辑框中文本的扩展编辑操作类型,如剪切、复制等。
1754
1755**系统能力**: SystemCapability.MiscServices.InputMethodFramework
1756
1757| 名称 | 值 |说明 |
1758| -------- | -------- |-------- |
1759| SELECT_ALL  | 0 |全选。 |
1760| CUT  | 3 |剪切。 |
1761| COPY  | 4 |复制。 |
1762| PASTE  | 5 |粘贴。 |
1763
1764## Direction<sup>10+</sup>
1765
1766光标的移动方向。
1767
1768**系统能力**: SystemCapability.MiscServices.InputMethodFramework
1769
1770| 名称 | 值 |说明 |
1771| -------- | -------- |-------- |
1772| CURSOR_UP  | 1 |向上。 |
1773| CURSOR_DOWN  | 2 |向下。 |
1774| CURSOR_LEFT  | 3 |向左。 |
1775| CURSOR_RIGHT  | 4 |向右。 |
1776
1777## Range<sup>10+</sup>
1778
1779选中的文本范围。
1780
1781**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1782
1783| 名称 | 类型 | 可读 | 可写 | 说明 |
1784| -------- | -------- | -------- | -------- | -------- |
1785| start  | number | 是 | 是 | 选中文本的首字符在编辑框的索引值。|
1786| end  | number | 是 | 是 | 选中文本的末字符在编辑框的索引值。|
1787
1788## Movement<sup>10+</sup>
1789
1790选中文本时,光标移动的方向
1791
1792**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1793
1794| 名称 | 类型 | 可读 | 可写 | 说明 |
1795| -------- | -------- | -------- | -------- | -------- |
1796| direction  | [Direction](#direction10) | 是 | 是 | 选中文本时,光标的移动方向。|
1797
1798## InputClient<sup>9+</sup>
1799
1800下列API均需使用[on('inputStart')](#oninputstart9)获取到InputClient实例后,通过实例调用。
1801
1802### sendKeyFunction<sup>9+</sup>
1803
1804sendKeyFunction(action:number, callback: AsyncCallback&lt;boolean&gt;): void
1805
1806发送功能键。使用callback异步回调。
1807
1808**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1809
1810  **参数:**
1811
1812| 参数名 | 类型 | 必填 | 说明 |
1813| -------- | -------- | -------- | -------- |
1814| action | number | 是 | 功能键键值。<br/>- 当值为0时,表示无效按键。<br/>- 当值为1时,表示确认键(即回车键)。 |
1815| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
1816
1817**错误码:**
1818
1819以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1820
1821| 错误码ID | 错误信息                 |
1822| -------- | -------------------------- |
1823| 12800003 | input method client error. |
1824
1825 **示例:**
1826
1827```ts
1828import { BusinessError } from '@ohos.base';
1829
1830let action = 1;
1831try {
1832  inputClient.sendKeyFunction(action, (err: BusinessError, result: boolean) => {
1833    if (err) {
1834      console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1835      return;
1836    }
1837    if (result) {
1838      console.log('Succeeded in sending key function.');
1839    } else {
1840      console.error('Failed to sendKeyFunction.');
1841    }
1842  });
1843} catch (err) {
1844  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1845}
1846```
1847
1848### sendKeyFunction<sup>9+</sup>
1849
1850sendKeyFunction(action: number): Promise&lt;boolean&gt;
1851
1852发送功能键。使用promise异步回调。
1853
1854**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1855
1856**参数:**
1857
1858| 参数名 | 类型 | 必填 | 说明 |
1859| -------- | -------- | -------- | -------- |
1860| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
1861
1862**返回值:**
1863
1864| 类型                            | 说明                                                         |
1865| ------------------------------- | ------------------------------------------------------------ |
1866| Promise&lt;boolean&gt; |  Promise对象。返回true表示功能键发送成功;返回false表示功能键发送失败。|
1867
1868**错误码:**
1869
1870以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1871
1872| 错误码ID | 错误信息                 |
1873| -------- | -------------------------- |
1874| 12800003 | input method client error. |
1875
1876**示例:**
1877
1878```ts
1879import { BusinessError } from '@ohos.base';
1880
1881let action = 1;
1882try {
1883  inputClient.sendKeyFunction(action).then((result: boolean) => {
1884    if (result) {
1885      console.log('Succeeded in sending key function.');
1886    } else {
1887      console.error('Failed to sendKeyFunction.');
1888    }
1889  }).catch((err: BusinessError) => {
1890    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1891  });
1892} catch (err) {
1893  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
1894}
1895```
1896
1897### getForward<sup>9+</sup>
1898
1899getForward(length:number, callback: AsyncCallback&lt;string&gt;): void
1900
1901获取光标前固定长度的文本。使用callback异步回调。
1902
1903**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1904
1905**参数:**
1906
1907| 参数名 | 类型 | 必填 | 说明 |
1908| -------- | -------- | -------- | -------- |
1909| length | number | 是 | 文本长度。 |
1910| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
1911
1912**错误码:**
1913
1914以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1915
1916| 错误码ID | 错误信息                     |
1917| -------- | ------------------------------ |
1918| 12800003 | input method client error.     |
1919| 12800006 | Input method controller error. |
1920
1921**示例:**
1922
1923```ts
1924import { BusinessError } from '@ohos.base';
1925
1926let length = 1;
1927try {
1928  inputClient.getForward(length, (err: BusinessError, text: string) => {
1929    if (err) {
1930      console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1931      return;
1932    }
1933    console.log('Succeeded in getting forward, text: ' + text);
1934  });
1935} catch (err) {
1936  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1937}
1938```
1939
1940### getForward<sup>9+</sup>
1941
1942getForward(length:number): Promise&lt;string&gt;
1943
1944获取光标前固定长度的文本。使用promise异步回调。
1945
1946**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1947
1948**参数:**
1949
1950| 参数名 | 类型 | 必填 | 说明 |
1951| -------- | -------- | -------- | -------- |
1952| length | number | 是 | 文本长度。 |
1953
1954**返回值:**
1955
1956| 类型                            | 说明                                                         |
1957| ------------------------------- | ------------------------------------------------------------ |
1958| Promise&lt;string&gt;           |  Promise对象,返回光标前固定长度的文本。                     |
1959
1960**错误码:**
1961
1962以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
1963
1964| 错误码ID | 错误信息                     |
1965| -------- | ------------------------------ |
1966| 12800003 | input method client error.     |
1967| 12800006 | Input method controller error. |
1968
1969**示例:**
1970
1971```ts
1972import { BusinessError } from '@ohos.base';
1973
1974let length = 1;
1975try {
1976  inputClient.getForward(length).then((text: string) => {
1977    console.log('Succeeded in getting forward, text: ' + text);
1978  }).catch((err: BusinessError) => {
1979    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1980  });
1981} catch (err) {
1982  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
1983}
1984```
1985
1986### getForwardSync<sup>10+</sup>
1987
1988getForwardSync(length:number): string
1989
1990获取光标前固定长度的文本。
1991
1992**系统能力:** SystemCapability.MiscServices.InputMethodFramework
1993
1994**参数:**
1995
1996| 参数名 | 类型   | 必填 | 说明       |
1997| ------ | ------ | ---- | ---------- |
1998| length | number | 是   | 文本长度。 |
1999
2000**返回值:**
2001
2002| 类型   | 说明                       |
2003| ------ | -------------------------- |
2004| string | 返回光标前固定长度的文本。 |
2005
2006**错误码:**
2007
2008以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2009
2010| 错误码ID | 错误信息                       |
2011| -------- | ------------------------------ |
2012| 12800003 | input method client error.     |
2013| 12800006 | input method controller error. |
2014
2015**示例:**
2016
2017```ts
2018let length = 1;
2019try {
2020  let text: string = inputClient.getForwardSync(length);
2021  console.log(`Succeeded in getting forward, text: ${text}`);
2022} catch (err) {
2023  console.error(`Failed to getForwardSync: ${JSON.stringify(err)}`);
2024}
2025```
2026
2027### getBackward<sup>9+</sup>
2028
2029getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void
2030
2031获取光标后固定长度的文本。使用callback异步回调。
2032
2033**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2034
2035**参数:**
2036
2037| 参数名 | 类型 | 必填 | 说明 |
2038| -------- | -------- | -------- | -------- |
2039| length | number | 是 | 文本长度。 |
2040| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
2041
2042**错误码:**
2043
2044以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2045
2046| 错误码ID | 错误信息                     |
2047| -------- | ------------------------------ |
2048| 12800003 | input method client error.     |
2049| 12800006 | Input method controller error. |
2050
2051**示例:**
2052
2053```ts
2054import { BusinessError } from '@ohos.base';
2055
2056let length = 1;
2057try {
2058  inputClient.getBackward(length, (err: BusinessError, text: string) => {
2059    if (err) {
2060      console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2061      return;
2062    }
2063    console.log('Succeeded in getting backward, text: ' + text);
2064  });
2065} catch (err) {
2066  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2067}
2068```
2069
2070### getBackward<sup>9+</sup>
2071
2072getBackward(length:number): Promise&lt;string&gt;
2073
2074获取光标后固定长度的文本。使用promise异步回调。
2075
2076**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2077
2078**参数:**
2079
2080| 参数名 | 类型 | 必填 | 说明 |
2081| -------- | -------- | -------- | -------- |
2082| length | number | 是 | 文本长度。 |
2083
2084**返回值:**
2085
2086| 类型                            | 说明                                                         |
2087| ------------------------------- | ------------------------------------------------------------ |
2088| Promise&lt;string&gt;           |  Promise对象,返回光标后固定长度的文本。                     |
2089
2090**错误码:**
2091
2092以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2093
2094| 错误码ID | 错误信息                     |
2095| -------- | ------------------------------ |
2096| 12800003 | input method client error.     |
2097| 12800006 | Input method controller error. |
2098
2099**示例:**
2100
2101```ts
2102import { BusinessError } from '@ohos.base';
2103
2104let length = 1;
2105try {
2106  inputClient.getBackward(length).then((text: string) => {
2107    console.log('Succeeded in getting backward, text: ' + text);
2108  }).catch((err: BusinessError) => {
2109    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2110  });
2111} catch (err) {
2112  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
2113}
2114```
2115
2116### getBackwardSync<sup>10+</sup>
2117
2118getBackwardSync(length:number): string
2119
2120获取光标后固定长度的文本。
2121
2122**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2123
2124**参数:**
2125
2126| 参数名 | 类型   | 必填 | 说明       |
2127| ------ | ------ | ---- | ---------- |
2128| length | number | 是   | 文本长度。 |
2129
2130**返回值:**
2131
2132| 类型   | 说明                       |
2133| ------ | -------------------------- |
2134| string | 返回光标后固定长度的文本。 |
2135
2136**错误码:**
2137
2138以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2139
2140| 错误码ID | 错误信息                       |
2141| -------- | ------------------------------ |
2142| 12800003 | input method client error.     |
2143| 12800006 | input method controller error. |
2144
2145**示例:**
2146
2147```ts
2148let length = 1;
2149try {
2150  let text: string = inputClient.getBackwardSync(length);
2151  console.log(`Succeeded in getting backward, text: ${text}`);
2152} catch (err) {
2153  console.error(`Failed to getBackwardSync: ${JSON.stringify(err)}`);
2154}
2155```
2156
2157### deleteForward<sup>9+</sup>
2158
2159deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
2160
2161删除光标前固定长度的文本。使用callback异步回调。
2162
2163**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2164
2165**参数:**
2166
2167| 参数名 | 类型 | 必填 | 说明 |
2168| -------- | -------- | -------- | -------- |
2169| length | number | 是 | 文本长度。 |
2170| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
2171
2172**错误码:**
2173
2174以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2175
2176| 错误码ID | 错误信息                 |
2177| -------- | -------------------------- |
2178| 12800002 | Input method engine error. |
2179| 12800003 | input method client error. |
2180
2181**示例:**
2182
2183```ts
2184import { BusinessError } from '@ohos.base';
2185
2186let length = 1;
2187try {
2188  inputClient.deleteForward(length, (err: BusinessError, result: boolean) => {
2189    if (err) {
2190      console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2191      return;
2192    }
2193    if (result) {
2194      console.log('Succeeded in deleting forward.');
2195    } else {
2196      console.error(`Failed to deleteForward.`);
2197    }
2198  });
2199} catch (err) {
2200  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2201}
2202```
2203
2204### deleteForward<sup>9+</sup>
2205
2206deleteForward(length:number): Promise&lt;boolean&gt;
2207
2208删除光标前固定长度的文本。使用promise异步回调。
2209
2210**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2211
2212**参数:**
2213
2214| 参数名 | 类型   | 必填 | 说明       |
2215| ------ | ------ | ---- | ---------- |
2216| length | number | 是   | 文本长度。 |
2217
2218**返回值:**
2219
2220| 类型                   | 说明           |
2221| ---------------------- | -------------- |
2222| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
2223
2224**错误码:**
2225
2226以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2227
2228| 错误码ID | 错误信息                 |
2229| -------- | -------------------------- |
2230| 12800002 | Input method engine error. |
2231| 12800003 | input method client error. |
2232
2233**示例:**
2234
2235```ts
2236import { BusinessError } from '@ohos.base';
2237
2238let length = 1;
2239try {
2240  inputClient.deleteForward(length).then((result: boolean) => {
2241    if (result) {
2242      console.log('Succeeded in deleting forward.');
2243    } else {
2244      console.error('Failed to delete Forward.');
2245    }
2246  }).catch((err: BusinessError) => {
2247    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2248  });
2249} catch (err) {
2250  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
2251}
2252```
2253
2254### deleteForwardSync<sup>10+</sup>
2255
2256deleteForwardSync(length:number): void
2257
2258删除光标前固定长度的文本。
2259
2260**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2261
2262**参数:**
2263
2264| 参数名 | 类型   | 必填 | 说明       |
2265| ------ | ------ | ---- | ---------- |
2266| length | number | 是   | 文本长度。 |
2267
2268**错误码:**
2269
2270以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2271
2272| 错误码ID | 错误信息                   |
2273| -------- | -------------------------- |
2274| 12800002 | input method engine error. |
2275| 12800003 | input method client error. |
2276
2277**示例:**
2278
2279```ts
2280let length = 1;
2281try {
2282  inputClient.deleteForwardSync(length);
2283  console.log('Succeeded in deleting forward.');
2284} catch (err) {
2285  console.error('deleteForwardSync err: ' + JSON.stringify(err));
2286}
2287```
2288
2289### deleteBackward<sup>9+</sup>
2290
2291deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
2292
2293删除光标后固定长度的文本。使用callback异步回调。
2294
2295**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2296
2297**参数:**
2298
2299| 参数名   | 类型                         | 必填 | 说明           |
2300| -------- | ---------------------------- | ---- | -------------- |
2301| length   | number                       | 是   | 文本长度。     |
2302| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
2303
2304**错误码:**
2305
2306以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2307
2308| 错误码ID | 错误信息                 |
2309| -------- | -------------------------- |
2310| 12800002 | Input method engine error. |
2311| 12800003 | input method client error. |
2312
2313**示例:**
2314
2315```ts
2316import { BusinessError } from '@ohos.base';
2317
2318let length = 1;
2319try {
2320  inputClient.deleteBackward(length, (err: BusinessError, result: boolean) => {
2321    if (err) {
2322      console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2323      return;
2324    }
2325    if (result) {
2326      console.log('Succeeded in deleting backward.');
2327    } else {
2328      console.error(`Failed to deleteBackward.`);
2329    }
2330  });
2331} catch (err) {
2332  console.error('deleteBackward err: ' + JSON.stringify(err));
2333}
2334```
2335
2336### deleteBackward<sup>9+</sup>
2337
2338deleteBackward(length:number): Promise&lt;boolean&gt;
2339
2340删除光标后固定长度的文本。使用promise异步回调。
2341
2342**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2343
2344**参数:**
2345
2346| 参数名 | 类型 | 必填 | 说明 |
2347| -------- | -------- | -------- | -------- |
2348| length | number | 是 | 文本长度。 |
2349
2350**返回值:**
2351
2352| 类型                            | 说明                                                         |
2353| ------------------------------- | ------------------------------------------------------------ |
2354| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。 |
2355
2356**错误码:**
2357
2358以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2359
2360| 错误码ID | 错误信息                 |
2361| -------- | -------------------------- |
2362| 12800002 | Input method engine error. |
2363| 12800003 | input method client error. |
2364
2365**示例:**
2366
2367```ts
2368import { BusinessError } from '@ohos.base';
2369
2370let length = 1;
2371inputClient.deleteBackward(length).then((result: boolean) => {
2372  if (result) {
2373    console.log('Succeeded in deleting backward.');
2374  } else {
2375    console.error('Failed to deleteBackward.');
2376  }
2377}).catch((err: BusinessError) => {
2378  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
2379});
2380```
2381
2382### deleteBackwardSync<sup>10+</sup>
2383
2384deleteBackwardSync(length:number): void
2385
2386删除光标后固定长度的文本。
2387
2388**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2389
2390**参数:**
2391
2392| 参数名 | 类型   | 必填 | 说明       |
2393| ------ | ------ | ---- | ---------- |
2394| length | number | 是   | 文本长度。 |
2395
2396**错误码:**
2397
2398以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2399
2400| 错误码ID | 错误信息                   |
2401| -------- | -------------------------- |
2402| 12800002 | input method engine error. |
2403| 12800003 | input method client error. |
2404
2405**示例:**
2406
2407```ts
2408let length = 1;
2409try {
2410  inputClient.deleteBackwardSync(length);
2411  console.log('Succeeded in deleting backward.');
2412} catch (err) {
2413  console.error('deleteBackwardSync err: ' + JSON.stringify(err));
2414}
2415```
2416
2417### insertText<sup>9+</sup>
2418
2419insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
2420
2421插入文本。使用callback异步回调。
2422
2423**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2424
2425**参数:**
2426
2427| 参数名 | 类型 | 必填 | 说明 |
2428| -------- | -------- | -------- | -------- |
2429| text | string | 是 | 文本内容。 |
2430| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
2431
2432**错误码:**
2433
2434以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2435
2436| 错误码ID | 错误信息                 |
2437| -------- | -------------------------- |
2438| 12800002 | Input method engine error. |
2439| 12800003 | input method client error. |
2440
2441**示例:**
2442
2443```ts
2444import { BusinessError } from '@ohos.base';
2445
2446inputClient.insertText('test', (err: BusinessError, result: boolean) => {
2447  if (err) {
2448    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2449    return;
2450  }
2451  if (result) {
2452    console.log('Succeeded in inserting text.');
2453  } else {
2454    console.error('Failed to insertText.');
2455  }
2456});
2457```
2458
2459### insertText<sup>9+</sup>
2460
2461insertText(text:string): Promise&lt;boolean&gt;
2462
2463插入文本。使用promise异步回调。
2464
2465**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2466
2467**参数:**
2468
2469| 参数名 | 类型 | 必填 | 说明 |
2470| -------- | -------- | -------- | -------- |
2471| text | string | 是 | 文本。 |
2472
2473**返回值:**
2474
2475| 类型                            | 说明                                                         |
2476| ------------------------------- | ------------------------------------------------------------ |
2477| Promise&lt;boolean&gt;  |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。  |
2478
2479**错误码:**
2480
2481以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2482
2483| 错误码ID | 错误信息                 |
2484| -------- | -------------------------- |
2485| 12800002 | Input method engine error. |
2486| 12800003 | input method client error. |
2487
2488**示例:**
2489
2490```ts
2491import { BusinessError } from '@ohos.base';
2492
2493try {
2494  inputClient.insertText('test').then((result: boolean) => {
2495    if (result) {
2496      console.log('Succeeded in inserting text.');
2497    } else {
2498      console.error('Failed to insertText.');
2499    }
2500  }).catch((err: BusinessError) => {
2501    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2502  });
2503} catch (err) {
2504  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
2505}
2506```
2507
2508### insertTextSync<sup>10+</sup>
2509
2510insertTextSync(text: string): void
2511
2512插入文本。
2513
2514**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2515
2516**参数:**
2517
2518| 参数名 | 类型   | 必填 | 说明       |
2519| ------ | ------ | ---- | ---------- |
2520| text   | string | 是   | 文本内容。 |
2521
2522**错误码:**
2523
2524以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2525
2526| 错误码ID | 错误信息                   |
2527| -------- | -------------------------- |
2528| 12800002 | input method engine error. |
2529| 12800003 | input method client error. |
2530
2531**示例:**
2532
2533```ts
2534try {
2535  inputClient.insertTextSync('test');
2536  console.log('Succeeded in inserting text.');
2537} catch (err) {
2538  console.error(`Failed to insertTextSync: ${JSON.stringify(err)}`);
2539}
2540```
2541
2542### getEditorAttribute<sup>9+</sup>
2543
2544getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
2545
2546获取编辑框属性值。使用callback异步回调。
2547
2548**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2549
2550**参数:**
2551
2552| 参数名                         | 类型                          | 必填                            | 说明                                                         |
2553| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
2554| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
2555
2556**错误码:**
2557
2558以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2559
2560| 错误码ID | 错误信息                 |
2561| -------- | -------------------------- |
2562| 12800003 | input method client error. |
2563
2564**示例:**
2565
2566```ts
2567import { BusinessError } from '@ohos.base';
2568
2569inputClient.getEditorAttribute((err: BusinessError, editorAttribute: inputMethodEngine.EditorAttribute) => {
2570  if (err) {
2571    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2572    return;
2573  }
2574  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
2575  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2576});
2577```
2578
2579### getEditorAttribute<sup>9+</sup>
2580
2581getEditorAttribute(): Promise&lt;EditorAttribute&gt;
2582
2583获取编辑框属性值。使用promise异步回调。
2584
2585**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2586
2587**返回值:**
2588
2589| 类型                            | 说明                                                         |
2590| ------------------------------- | ------------------------------------------------------------ |
2591| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
2592
2593**错误码:**
2594
2595以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2596
2597| 错误码ID | 错误信息                 |
2598| -------- | -------------------------- |
2599| 12800003 | input method client error. |
2600
2601**示例:**
2602
2603```ts
2604import { BusinessError } from '@ohos.base';
2605
2606try {
2607  inputClient.getEditorAttribute().then((editorAttribute: inputMethodEngine.EditorAttribute) => {
2608    console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
2609    console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
2610  }).catch((err: BusinessError) => {
2611    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2612  });
2613} catch(err) {
2614    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
2615}
2616```
2617
2618### getEditorAttributeSync<sup>10+</sup>
2619
2620getEditorAttributeSync(): EditorAttribute
2621
2622获取编辑框属性值。
2623
2624**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2625
2626**返回值:**
2627
2628| 类型                                | 说明           |
2629| ----------------------------------- | -------------- |
2630| [EditorAttribute](#editorattribute) | 编辑框属性对象。 |
2631
2632**错误码:**
2633
2634以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2635
2636| 错误码ID | 错误信息                   |
2637| -------- | -------------------------- |
2638| 12800003 | input method client error. |
2639
2640**示例:**
2641
2642```ts
2643try {
2644  let editorAttribute: inputMethodEngine.EditorAttribute = inputClient.getEditorAttributeSync();
2645  console.log(`Succeeded in getEditorAttributeSync, editorAttribute = ${JSON.stringify(editorAttribute)}`);
2646} catch (err) {
2647  console.error(`Failed to getEditorAttributeSync: ${JSON.stringify(err)}`);
2648}
2649```
2650
2651### moveCursor<sup>9+</sup>
2652
2653moveCursor(direction: number, callback: AsyncCallback&lt;void&gt;): void
2654
2655移动光标。使用callback异步回调。
2656
2657**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2658
2659**参数:**
2660
2661| 参数名    | 类型                      | 必填 | 说明           |
2662| --------- | ------------------------- | ---- | -------------- |
2663| direction | number                    | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |
2664| callback  | AsyncCallback&lt;void&gt; | 是   | 回调函数。当光标移动成功,err为undefined,否则为错误对象。    |
2665
2666**错误码:**
2667
2668以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2669
2670| 错误码ID | 错误信息                 |
2671| -------- | -------------------------- |
2672| 12800003 | input method client error. |
2673
2674**示例:**
2675
2676```ts
2677import { BusinessError } from '@ohos.base';
2678
2679try {
2680  inputClient.moveCursor(inputMethodEngine.Direction.CURSOR_UP, (err: BusinessError) => {
2681    if (err) {
2682      console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2683      return;
2684    }
2685    console.log('Succeeded in moving cursor.');
2686  });
2687} catch (err) {
2688  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2689}
2690```
2691
2692### moveCursor<sup>9+</sup>
2693
2694moveCursor(direction: number): Promise&lt;void&gt;
2695
2696移动光标。使用promise异步回调。
2697
2698**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2699
2700**参数:**
2701
2702| 参数名    | 类型   | 必填 | 说明                                                         |
2703| --------- | ------ | ---- | ------------------------------------------------------------ |
2704| direction | number | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |
2705
2706**返回值:**
2707
2708| 类型                | 说明                      |
2709| ------------------- | ------------------------- |
2710| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2711
2712**错误码:**
2713
2714以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2715
2716| 错误码ID | 错误信息                 |
2717| -------- | -------------------------- |
2718| 12800003 | input method client error. |
2719
2720**示例:**
2721
2722```ts
2723import { BusinessError } from '@ohos.base';
2724
2725try {
2726  inputClient.moveCursor(inputMethodEngine.Direction.CURSOR_UP).then(() => {
2727    console.log('Succeeded in moving cursor.');
2728  }).catch((err: BusinessError) => {
2729    console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2730  });
2731} catch (err) {
2732  console.error(`Failed to moveCursor: ${JSON.stringify(err)}`);
2733}
2734```
2735
2736### moveCursorSync<sup>10+</sup>
2737
2738moveCursorSync(direction: number): void
2739
2740移动光标。
2741
2742**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2743
2744**参数:**
2745
2746| 参数名    | 类型   | 必填 | 说明                                                         |
2747| --------- | ------ | ---- | ------------------------------------------------------------ |
2748| direction | number | 是   | 光标移动方向。<br/>- 当值为1时,表示向上。<br/>- 当值为2时,表示向下。<br/>- 当值为3时,表示向左。<br/>- 当值为4时,表示向右。 |
2749
2750**错误码:**
2751
2752以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2753
2754| 错误码ID | 错误信息                   |
2755| -------- | -------------------------- |
2756| 12800003 | input method client error. |
2757
2758**示例:**
2759
2760```ts
2761try {
2762  inputClient.moveCursorSync(inputMethodEngine.Direction.CURSOR_UP);
2763  console.log('Succeeded in moving cursor.');
2764} catch (err) {
2765  console.error(`Failed to moveCursorSync: ${JSON.stringify(err)}`);
2766}
2767```
2768
2769### selectByRange<sup>10+</sup>
2770
2771selectByRange(range: Range, callback: AsyncCallback&lt;void&gt;): void
2772
2773根据索引范围选中文本。使用callback异步回调。
2774
2775**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2776
2777**参数:**
2778
2779| 参数名   | 类型                                                      | 必填 | 说明                                                         |
2780| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
2781| range    | [Range](#range10) | 是   | 选中文本的范围。                                             |
2782| callback | AsyncCallback&lt;void&gt;                                 | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
2783
2784**错误码:**
2785
2786以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2787
2788| 错误码ID | 错误信息                   |
2789| -------- | -------------------------- |
2790| 401      | parameter error.           |
2791| 12800003 | input method client error. |
2792
2793**示例:**
2794
2795```ts
2796import { BusinessError } from '@ohos.base';
2797
2798try {
2799  let range: inputMethodEngine.Range = { start: 0, end: 1 };
2800  inputClient.selectByRange(range, (err: BusinessError) => {
2801    if (err) {
2802      console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2803      return;
2804    }
2805    console.log('Succeeded in selecting by range.');
2806  });
2807} catch (err) {
2808  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2809}
2810```
2811
2812### selectByRange<sup>10+</sup>
2813
2814selectByRange(range: Range): Promise&lt;void&gt;
2815
2816根据索引范围选中文本。使用promise异步回调。
2817
2818**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2819
2820**参数:**
2821
2822| 参数名 | 类型                                                      | 必填 | 说明             |
2823| ------ | --------------------------------------------------------- | ---- | ---------------- |
2824| range  | [Range](#range10) | 是   | 选中文本的范围。 |
2825
2826**返回值:**
2827
2828| 类型                | 说明                      |
2829| ------------------- | ------------------------- |
2830| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2831
2832**错误码:**
2833
2834以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2835
2836| 错误码ID | 错误信息                   |
2837| -------- | -------------------------- |
2838| 401      | parameter error.           |
2839| 12800003 | input method client error. |
2840
2841**示例:**
2842
2843```ts
2844import { BusinessError } from '@ohos.base';
2845
2846try {
2847  let range: inputMethodEngine.Range = { start: 0, end: 1 };
2848  inputClient.selectByRange(range).then(() => {
2849    console.log('Succeeded in selecting by range.');
2850  }).catch((err: BusinessError) => {
2851    console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2852  });
2853} catch (err) {
2854  console.error(`Failed to selectByRange: ${JSON.stringify(err)}`);
2855}
2856```
2857
2858### selectByRangeSync<sup>10+</sup>
2859
2860selectByRangeSync(range: Range): void
2861
2862根据索引范围选中文本。
2863
2864**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2865
2866**参数:**
2867
2868| 参数名 | 类型              | 必填 | 说明             |
2869| ------ | ----------------- | ---- | ---------------- |
2870| range  | [Range](#range10) | 是   | 选中文本的范围。 |
2871
2872**错误码:**
2873
2874以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2875
2876| 错误码ID | 错误信息                   |
2877| -------- | -------------------------- |
2878| 401      | parameter error.           |
2879| 12800003 | input method client error. |
2880
2881**示例:**
2882
2883```ts
2884try {
2885  let range: inputMethodEngine.Range = { start: 0, end: 1 };
2886  inputClient.selectByRangeSync(range);
2887  console.log('Succeeded in selecting by range.');
2888} catch (err) {
2889  console.error(`Failed to selectByRangeSync: ${JSON.stringify(err)}`);
2890}
2891```
2892
2893### selectByMovement<sup>10+</sup>
2894
2895selectByMovement(movement: Movement, callback: AsyncCallback&lt;void&gt;): void
2896
2897根据光标移动方向选中文本。使用callback异步回调。
2898
2899**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2900
2901**参数:**
2902
2903| 参数名   | 类型  | 必填 | 说明   |
2904| -------- | ------ | ---- | ------ |
2905| movement | [Movement](#movement10)   | 是   | 选中时光标移动的方向。  |
2906| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当成功发送选中事件后,err为undefined,否则为错误对象。 |
2907
2908**错误码:**
2909
2910以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2911
2912| 错误码ID | 错误信息                   |
2913| -------- | -------------------------- |
2914| 401      | parameter error.           |
2915| 12800003 | input method client error. |
2916
2917**示例:**
2918
2919```ts
2920import { BusinessError } from '@ohos.base';
2921
2922try {
2923  let movement: inputMethodEngine.Movement = { direction: 1 };
2924  inputClient.selectByMovement(movement, (err: BusinessError) => {
2925    if (err) {
2926      console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2927      return;
2928    }
2929    console.log('Succeeded in selecting by movement.');
2930  });
2931} catch (err) {
2932  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2933}
2934```
2935
2936### selectByMovement<sup>10+</sup>
2937
2938selectByMovement(movement: Movement): Promise&lt;void&gt;
2939
2940根据索引范围选中文本。使用promise异步回调。
2941
2942**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2943
2944**参数:**
2945
2946| 参数名   | 类型                                                         | 必填 | 说明                   |
2947| -------- | ------------------------------------------------------------ | ---- | ---------------------- |
2948| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
2949
2950**返回值:**
2951
2952| 类型                | 说明                      |
2953| ------------------- | ------------------------- |
2954| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2955
2956**错误码:**
2957
2958以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2959
2960| 错误码ID | 错误信息                   |
2961| -------- | -------------------------- |
2962| 401      | parameter error.           |
2963| 12800003 | input method client error. |
2964
2965**示例:**
2966
2967```ts
2968import { BusinessError } from '@ohos.base';
2969
2970try {
2971  let movement: inputMethodEngine.Movement = { direction: 1 };
2972  inputClient.selectByMovement(movement).then(() => {
2973    console.log('Succeeded in selecting by movement.');
2974  }).catch((err: BusinessError) => {
2975    console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2976  });
2977} catch (err) {
2978  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
2979}
2980```
2981
2982### selectByMovementSync<sup>10+</sup>
2983
2984selectByMovementSync(movement: Movement): void
2985
2986根据光标移动方向选中文本。
2987
2988**系统能力:** SystemCapability.MiscServices.InputMethodFramework
2989
2990**参数:**
2991
2992| 参数名   | 类型                    | 必填 | 说明                   |
2993| -------- | ----------------------- | ---- | ---------------------- |
2994| movement | [Movement](#movement10) | 是   | 选中时光标移动的方向。 |
2995
2996**错误码:**
2997
2998以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
2999
3000| 错误码ID | 错误信息                   |
3001| -------- | -------------------------- |
3002| 401      | parameter error.           |
3003| 12800003 | input method client error. |
3004
3005**示例:**
3006
3007```ts
3008try {
3009  let movement: inputMethodEngine.Movement = { direction: 1 };
3010  inputClient.selectByMovementSync(movement);
3011  console.log('Succeeded in selecting by movement.');
3012} catch (err) {
3013  console.error(`Failed to selectByMovement: ${JSON.stringify(err)}`);
3014}
3015```
3016
3017### getTextIndexAtCursor<sup>10+</sup>
3018
3019getTextIndexAtCursor(callback: AsyncCallback&lt;number&gt;): void
3020
3021获取光标所在处的文本索引。使用callback异步回调。
3022
3023**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3024
3025**参数:**
3026
3027| 参数名   | 类型                        | 必填 | 说明                                                         |
3028| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3029| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。当文本索引获取成功,err为undefined,否则为错误对象。 |
3030
3031**错误码:**
3032
3033以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
3034
3035| 错误码ID | 错误信息                       |
3036| -------- | ------------------------------ |
3037| 12800003 | input method client error.     |
3038| 12800006 | Input method controller error. |
3039
3040**示例:**
3041
3042```ts
3043import { BusinessError } from '@ohos.base';
3044
3045inputClient.getTextIndexAtCursor((err: BusinessError, index: number) => {
3046  if (err) {
3047    console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
3048    return;
3049  }
3050  console.log('Succeeded in getTextIndexAtCursor: ' + index);
3051});
3052```
3053
3054### getTextIndexAtCursor<sup>10+</sup>
3055
3056getTextIndexAtCursor(): Promise&lt;number&gt;
3057
3058获取光标所在处的文本索引。使用promise异步回调。
3059
3060**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3061
3062**返回值:**
3063
3064| 类型                  | 说明                                    |
3065| --------------------- | --------------------------------------- |
3066| Promise&lt;number&gt; | Promise对象,返回光标所在处的文本索引。 |
3067
3068**错误码:**
3069
3070以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
3071
3072| 错误码ID | 错误信息                       |
3073| -------- | ------------------------------ |
3074| 12800003 | input method client error.     |
3075| 12800006 | Input method controller error. |
3076
3077**示例:**
3078
3079```ts
3080import { BusinessError } from '@ohos.base';
3081
3082inputClient.getTextIndexAtCursor().then((index: number) => {
3083  console.log('Succeeded in getTextIndexAtCursor: ' + index);
3084}).catch((err: BusinessError) => {
3085  console.error(`Failed to getTextIndexAtCursor: ${JSON.stringify(err)}`);
3086});
3087```
3088
3089### getTextIndexAtCursorSync<sup>10+</sup>
3090
3091getTextIndexAtCursorSync(): number
3092
3093获取光标所在处的文本索引。
3094
3095**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3096
3097**返回值:**
3098
3099| 类型   | 说明                       |
3100| ------ | -------------------------- |
3101| number | 返回光标所在处的文本索引。 |
3102
3103**错误码:**
3104
3105以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
3106
3107| 错误码ID | 错误信息                       |
3108| -------- | ------------------------------ |
3109| 12800003 | input method client error.     |
3110| 12800006 | Input method controller error. |
3111
3112**示例:**
3113
3114```ts
3115try{
3116  let index: number = inputClient.getTextIndexAtCursorSync();
3117  console.log(`Succeeded in getTextIndexAtCursorSync, index: ${index}`);
3118} catch (err) {
3119  console.error(`Failed to getTextIndexAtCursorSync: ${JSON.stringify(err)}`);
3120}
3121```
3122
3123### sendExtendAction<sup>10+</sup>
3124
3125sendExtendAction(action: ExtendAction, callback: AsyncCallback&lt;void&gt;): void
3126
3127发送扩展编辑操作。使用callback异步回调。
3128
3129> **说明**
3130>
3131> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
3132
3133**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3134
3135**参数:**
3136
3137| 参数名   | 类型                        | 必填 | 说明                                                         |
3138| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3139| action | [ExtendAction](#extendaction10) | 是   | 要发送的扩展操作。 |
3140| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。发送成功,err为undefined,否则为错误对象。 |
3141
3142**错误码:**
3143
3144以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
3145
3146| 错误码ID | 错误信息                       |
3147| -------- | ------------------------------ |
3148| 12800003 | input method client error.     |
3149| 12800006 | Input method controller error. |
3150
3151**示例:**
3152
3153```ts
3154import { BusinessError } from '@ohos.base';
3155
3156try {
3157  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY, (err: BusinessError) => {
3158    if (err) {
3159      console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
3160      return;
3161    }
3162    console.log('Succeeded in sending extend action.');
3163  });
3164} catch(err) {
3165  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
3166}
3167```
3168
3169### sendExtendAction<sup>10+</sup>
3170
3171sendExtendAction(action: ExtendAction): Promise&lt;void&gt;
3172
3173发送扩展编辑操作。使用promise异步回调。
3174
3175>**说明**
3176>
3177> 输入法应用调用该接口向编辑框发送扩展编辑操作,编辑框监听相应事件[on('handleExtendAction')](./js-apis-inputmethod.md#onhandleextendaction10),从而进一步做出处理。
3178
3179**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3180
3181**参数:**
3182
3183| 参数名 | 类型 | 必填 | 说明 |
3184| -------- | -------- | -------- | -------- |
3185| action | [ExtendAction](#extendaction10) | 是 | 要发送的扩展操作。 |
3186
3187**返回值:**
3188
3189| 类型                  | 说明                                    |
3190| --------------------- | --------------------------------------- |
3191| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
3192
3193**错误码:**
3194
3195以下错误码的详细介绍请参见[输入法框架错误码](../errorcodes/errorcode-inputmethod-framework.md)。
3196
3197| 错误码ID | 错误信息                       |
3198| -------- | ------------------------------ |
3199| 12800003 | input method client error.     |
3200| 12800006 | Input method controller error. |
3201
3202**示例:**
3203
3204```ts
3205import { BusinessError } from '@ohos.base';
3206
3207try {
3208  inputClient.sendExtendAction(inputMethodEngine.ExtendAction.COPY).then(() => {
3209    console.log('Succeeded in sending extend action.');
3210  }).catch((err: BusinessError) => {
3211    console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
3212  });
3213} catch(err) {
3214  console.error(`Failed to sendExtendAction: ${JSON.stringify(err)}`);
3215}
3216```
3217
3218## EditorAttribute
3219
3220编辑框属性值。
3221
3222**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3223
3224| 名称         | 类型 | 可读 | 可写 | 说明               |
3225| ------------ | -------- | ---- | ---- | ------------------ |
3226| enterKeyType | number   | 是   | 否   | 编辑框的功能属性。 |
3227| inputPattern | number   | 是   | 否   | 编辑框的文本属性。 |
3228
3229## KeyEvent
3230
3231按键属性值。
3232
3233**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3234
3235| 名称      | 类型 | 可读 | 可写 | 说明         |
3236| --------- | -------- | ---- | ---- | ------------ |
3237| keyCode   | number   | 是   | 否   | 按键的键值。键码值说明参考[KeyCode](js-apis-keycode.md#keycode)。 |
3238| keyAction | number   | 是   | 否   | 按键事件类型。<br/>- 当值为2时,表示按下事件;<br/>- 当值为3时,表示抬起事件。 |
3239
3240## PanelFlag<sup>10+</sup>
3241
3242输入法面板状态类型枚举。
3243
3244**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3245
3246| 名称         | 值 | 说明               |
3247| ------------ | -- | ------------------ |
3248| FLG_FIXED  | 0 | 固定态面板类型。 |
3249| FLG_FLOATING | 1 | 悬浮态面板类型。 |
3250
3251## PanelType<sup>10+</sup>
3252
3253输入法面板类型枚举。
3254
3255**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3256
3257| 名称         | 值 | 说明               |
3258| ------------ | -- | ------------------ |
3259| SOFT_KEYBOARD | 0 | 软键盘类型。 |
3260| STATUS_BAR   | 1 | 状态栏类型。 |
3261
3262## PanelInfo<sup>10+</sup>
3263
3264**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3265
3266输入法面板属性。
3267
3268| 名称      | 类型 | 可读 | 可写 | 说明         |
3269| --------- | -------- | ---- | ---- | ------------ |
3270| type   	| number   | 是   | 是   | 面板的类型。 |
3271| flag	    | number   | 是   | 是   | 面板的状态类型。 |
3272
3273## TextInputClient<sup>(deprecated)</sup>
3274
3275> **说明:**
3276>
3277> 从API version 8开始支持,API version 9开始废弃,建议使用[InputClient](#inputclient9)替代。
3278
3279下列API示例中都需使用[on('inputStart')](#oninputstart)回调获取到TextInputClient实例,再通过此实例调用对应方法。
3280
3281### getForward<sup>(deprecated)</sup>
3282
3283getForward(length:number, callback: AsyncCallback&lt;string&gt;): void
3284
3285获取光标前固定长度的文本。使用callback异步回调。
3286
3287> **说明:**
3288>
3289> 从API version 8开始支持,API version 9开始废弃,建议使用[getForward](#getforward9)替代。
3290
3291**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3292
3293**参数:**
3294
3295| 参数名 | 类型 | 必填 | 说明 |
3296| -------- | -------- | -------- | -------- |
3297| length | number | 是 | 文本长度。 |
3298| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标前固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。|
3299
3300**示例:**
3301
3302```ts
3303import { BusinessError } from '@ohos.base';
3304
3305let length = 1;
3306textInputClient.getForward(length, (err: BusinessError, text: string) => {
3307  if (err) {
3308    console.error(`Failed to getForward: ${JSON.stringify(err)}`);
3309    return;
3310  }
3311  console.log('Succeeded in getting forward, text: ' + text);
3312});
3313```
3314
3315### getForward<sup>(deprecated)</sup>
3316
3317getForward(length:number): Promise&lt;string&gt;
3318
3319获取光标前固定长度的文本。使用promise异步回调。
3320
3321> **说明:**
3322>
3323> 从API version 8开始支持,API version 9开始废弃,建议使用[getForward](#getforward9)替代。
3324
3325**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3326
3327**参数:**
3328
3329| 参数名 | 类型 | 必填 | 说明 |
3330| -------- | -------- | -------- | -------- |
3331| length | number | 是 | 文本长度。 |
3332
3333**返回值:**
3334
3335| 类型                            | 说明                                                         |
3336| ------------------------------- | ------------------------------------------------------------ |
3337| Promise&lt;string&gt; |  Promise对象,返回光标前固定长度的文本。                |
3338
3339**示例:**
3340
3341```ts
3342import { BusinessError } from '@ohos.base';
3343
3344let length = 1;
3345textInputClient.getForward(length).then((text: string) => {
3346  console.log('Succeeded in getting forward, text: ' + text);
3347}).catch((err: BusinessError) => {
3348  console.error(`Failed to getForward: ${JSON.stringify(err)}`);
3349});
3350```
3351
3352### getBackward<sup>(deprecated)</sup>
3353
3354getBackward(length:number, callback: AsyncCallback&lt;string&gt;): void
3355
3356获取光标后固定长度的文本。使用callback异步回调。
3357
3358> **说明:**
3359>
3360> 从API version 8开始支持,API version 9开始废弃,建议使用[getBackward](#getbackward9)替代。
3361
3362**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3363
3364**参数:**
3365
3366| 参数名 | 类型 | 必填 | 说明 |
3367| -------- | -------- | -------- | -------- |
3368| length | number | 是 | 文本长度。 |
3369| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。当光标后固定长度的文本获取成功,err为undefined,data为获取到的文本;否则为错误对象。 |
3370
3371**示例:**
3372
3373```ts
3374import { BusinessError } from '@ohos.base';
3375
3376let length = 1;
3377textInputClient.getBackward(length, (err: BusinessError, text: string) => {
3378  if (err) {
3379    console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
3380    return;
3381  }
3382  console.log('Succeeded in getting borward, text: ' + text);
3383});
3384```
3385
3386### getBackward<sup>(deprecated)</sup>
3387
3388getBackward(length:number): Promise&lt;string&gt;
3389
3390获取光标后固定长度的文本。使用promise异步回调。
3391
3392> **说明:**
3393>
3394> 从API version 8开始支持,API version 9开始废弃,建议使用[getBackward](#getbackward9)替代。
3395
3396**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3397
3398**参数:**
3399
3400| 参数名 | 类型 | 必填 | 说明 |
3401| -------- | -------- | -------- | -------- |
3402| length | number | 是 | 文本长度。 |
3403
3404**返回值:**
3405
3406| 类型                            | 说明                                                         |
3407| ------------------------------- | ------------------------------------------------------------ |
3408| Promise&lt;string&gt; |  Promise对象,返回光标后固定长度的文本。                |
3409
3410**示例:**
3411
3412```ts
3413import { BusinessError } from '@ohos.base';
3414
3415let length = 1;
3416textInputClient.getBackward(length).then((text: string) => {
3417  console.log('Succeeded in getting backward: ' + JSON.stringify(text));
3418}).catch((err: BusinessError) => {
3419  console.error(`Failed to getBackward: ${JSON.stringify(err)}`);
3420});
3421```
3422
3423### deleteForward<sup>(deprecated)</sup>
3424
3425deleteForward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
3426
3427删除光标前固定长度的文本。使用callback异步回调。
3428
3429> **说明:**
3430>
3431> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteForward](#deleteforward9)替代。
3432
3433**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3434
3435**参数:**
3436
3437| 参数名 | 类型 | 必填 | 说明 |
3438| -------- | -------- | -------- | -------- |
3439| length | number | 是 | 文本长度。 |
3440| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当光标前固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。 |
3441
3442**示例:**
3443
3444```ts
3445import { BusinessError } from '@ohos.base';
3446
3447let length = 1;
3448textInputClient.deleteForward(length, (err: BusinessError, result: boolean) => {
3449  if (err) {
3450    console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
3451    return;
3452  }
3453  if (result) {
3454    console.log('Succeeded in deleting forward.');
3455  } else {
3456    console.error('Failed to deleteForward.');
3457  }
3458});
3459```
3460
3461### deleteForward<sup>(deprecated)</sup>
3462
3463deleteForward(length:number): Promise&lt;boolean&gt;
3464
3465删除光标前固定长度的文本。使用promise异步回调。
3466
3467> **说明:**
3468>
3469> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteForward](#deleteforward9)替代。
3470
3471**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3472
3473**参数:**
3474
3475| 参数名 | 类型   | 必填 | 说明       |
3476| ------ | ------ | ---- | ---------- |
3477| length | number | 是   | 文本长度。 |
3478
3479**返回值:**
3480
3481| 类型                   | 说明           |
3482| ---------------------- | -------------- |
3483| Promise&lt;boolean&gt; | Promise对象。返回true表示删除光标前固定长度的文本成功;返回false表示删除光标前固定长度的文本失败。|
3484
3485**示例:**
3486
3487```ts
3488import { BusinessError } from '@ohos.base';
3489
3490let length = 1;
3491textInputClient.deleteForward(length).then((result: boolean) => {
3492  if (result) {
3493    console.log('Succeeded in deleting forward.');
3494  } else {
3495    console.error('Failed to delete forward.');
3496  }
3497}).catch((err: BusinessError) => {
3498  console.error(`Failed to deleteForward: ${JSON.stringify(err)}`);
3499});
3500```
3501
3502### deleteBackward<sup>(deprecated)</sup>
3503
3504deleteBackward(length:number, callback: AsyncCallback&lt;boolean&gt;): void
3505
3506删除光标后固定长度的文本。使用callback异步回调。
3507
3508> **说明:**
3509>
3510> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteBackward](#deletebackward9)替代。
3511
3512**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3513
3514**参数:**
3515
3516| 参数名   | 类型                         | 必填 | 说明           |
3517| -------- | ---------------------------- | ---- | -------------- |
3518| length   | number                       | 是   | 文本长度。     |
3519| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当光标后固定长度的文本删除成功,err为undefined,data为true;否则为错误对象。|
3520
3521**示例:**
3522
3523```ts
3524import { BusinessError } from '@ohos.base';
3525
3526let length = 1;
3527textInputClient.deleteBackward(length, (err: BusinessError, result: boolean) => {
3528  if (err) {
3529    console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
3530    return;
3531  }
3532  if (result) {
3533    console.log('Succeeded in deleting backward.');
3534  } else {
3535    console.error('Failed to deleteBackward.');
3536  }
3537});
3538```
3539
3540### deleteBackward<sup>(deprecated)</sup>
3541
3542deleteBackward(length:number): Promise&lt;boolean&gt;
3543
3544删除光标后固定长度的文本。使用promise异步回调。
3545
3546> **说明:**
3547>
3548> 从API version 8开始支持,API version 9开始废弃,建议使用[deleteBackward](#deletebackward9)替代。
3549
3550**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3551
3552**参数:**
3553
3554| 参数名 | 类型 | 必填 | 说明 |
3555| -------- | -------- | -------- | -------- |
3556| length | number | 是 | 文本长度。 |
3557
3558**返回值:**
3559
3560| 类型                            | 说明                                                         |
3561| ------------------------------- | ------------------------------------------------------------ |
3562| Promise&lt;boolean&gt; |  Promise对象。返回true表示删除光标后固定长度的文本成功;返回false表示删除光标后固定长度的文本失败。|
3563
3564**示例:**
3565
3566```ts
3567import { BusinessError } from '@ohos.base';
3568
3569let length = 1;
3570textInputClient.deleteBackward(length).then((result: boolean) => {
3571  if (result) {
3572    console.log('Succeeded in deleting backward.');
3573  } else {
3574    console.error('Failed to deleteBackward.');
3575  }
3576}).catch((err: BusinessError) => {
3577  console.error(`Failed to deleteBackward: ${JSON.stringify(err)}`);
3578});
3579```
3580### sendKeyFunction<sup>(deprecated)</sup>
3581
3582sendKeyFunction(action: number, callback: AsyncCallback&lt;boolean&gt;): void
3583
3584发送功能键。使用callback异步回调。
3585
3586> **说明:**
3587>
3588> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
3589
3590**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3591
3592**参数:**
3593
3594| 参数名 | 类型 | 必填 | 说明 |
3595| -------- | -------- | -------- | -------- |
3596| action | number | 是 | 功能键键值。<br/>- 当值为0时,表示无效按键;<br/>- 当值为1时,表示确认键(即回车键)。 |
3597| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当功能键发送成功,err为undefined,data为true;否则为错误对象。 |
3598
3599**示例:**
3600
3601```ts
3602import { BusinessError } from '@ohos.base';
3603
3604let action = 1;
3605textInputClient.sendKeyFunction(action, (err: BusinessError, result: boolean) => {
3606  if (err) {
3607    console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
3608    return;
3609  }
3610  if (result) {
3611    console.log('Succeeded in sending key function.');
3612  } else {
3613    console.error('Failed to sendKeyFunction.');
3614  }
3615});
3616```
3617
3618### sendKeyFunction<sup>(deprecated)</sup>
3619
3620sendKeyFunction(action: number): Promise&lt;boolean&gt;
3621
3622发送功能键。使用promise异步回调。
3623
3624> **说明:**
3625>
3626> 从API version 8开始支持,API version 9开始废弃,建议使用[sendKeyFunction](#sendkeyfunction9)替代。
3627
3628**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3629
3630**参数:**
3631
3632| 参数名 | 类型 | 必填 | 说明 |
3633| -------- | -------- | -------- | -------- |
3634| action | number | 是 | 功能键键值。<br/>当值为0时,表示无效按键;<br/>当值为1时,表示确认键(即回车键)。 |
3635
3636**返回值:**
3637
3638| 类型                            | 说明                                                         |
3639| ------------------------------- | ------------------------------------------------------------ |
3640| Promise&lt;boolean&gt; |  Promise对象。返回true表示发送功能键成功;返回false表示发送功能键失败。 |
3641
3642**示例:**
3643
3644```ts
3645import { BusinessError } from '@ohos.base';
3646
3647let action = 1;
3648textInputClient.sendKeyFunction(action).then((result: boolean) => {
3649  if (result) {
3650    console.log('Succeeded in sending key function.');
3651  } else {
3652    console.error('Failed to sendKeyFunction.');
3653  }
3654}).catch((err: BusinessError) => {
3655  console.error(`Failed to sendKeyFunction: ${JSON.stringify(err)}`);
3656});
3657```
3658
3659### insertText<sup>(deprecated)</sup>
3660
3661insertText(text:string, callback: AsyncCallback&lt;boolean&gt;): void
3662
3663插入文本。使用callback异步回调。
3664
3665> **说明:**
3666>
3667> 从API version 8开始支持,API version 9开始废弃,建议使用[insertText](#inserttext9)替代。
3668
3669**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3670
3671**参数:**
3672
3673| 参数名 | 类型 | 必填 | 说明 |
3674| -------- | -------- | -------- | -------- |
3675| text | string | 是 | 文本。 |
3676| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当文本插入成功,err为undefined,data为true;否则为错误对象。 |
3677
3678**示例:**
3679
3680```ts
3681import { BusinessError } from '@ohos.base';
3682
3683textInputClient.insertText('test', (err: BusinessError, result: boolean) => {
3684  if (err) {
3685    console.error(`Failed to insertText: ${JSON.stringify(err)}`);
3686    return;
3687  }
3688  if (result) {
3689    console.log('Succeeded in inserting text.');
3690  } else {
3691    console.error('Failed to insertText.');
3692  }
3693});
3694```
3695
3696### insertText<sup>(deprecated)</sup>
3697
3698insertText(text:string): Promise&lt;boolean&gt;
3699
3700插入文本。使用promise异步回调。
3701
3702> **说明:**
3703>
3704> 从API version 8开始支持,API version 9开始废弃,建议使用[insertText](#inserttext9)替代。
3705
3706**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3707
3708**参数:**
3709
3710| 参数名 | 类型 | 必填 | 说明 |
3711| -------- | -------- | -------- | -------- |
3712| text | string | 是 | 文本。 |
3713
3714**返回值:**
3715
3716| 类型                            | 说明                                                         |
3717| ------------------------------- | ------------------------------------------------------------ |
3718| Promise&lt;boolean&gt; |  Promise对象。返回true表示插入文本成功;返回false表示插入文本失败。 |
3719
3720**示例:**
3721
3722```ts
3723import { BusinessError } from '@ohos.base';
3724
3725textInputClient.insertText('test').then((result: boolean) => {
3726  if (result) {
3727    console.log('Succeeded in inserting text.');
3728  } else {
3729    console.error('Failed to insertText.');
3730  }
3731}).catch((err: BusinessError) => {
3732  console.error(`Failed to insertText: ${JSON.stringify(err)}`);
3733});
3734```
3735
3736### getEditorAttribute<sup>(deprecated)</sup>
3737
3738getEditorAttribute(callback: AsyncCallback&lt;EditorAttribute&gt;): void
3739
3740获取编辑框属性值。使用callback异步回调。
3741
3742> **说明:**
3743>
3744> 从API version 8开始支持,API version 9开始废弃,建议使用[getEditorAttribute](#geteditorattribute9)替代。
3745
3746**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3747
3748**参数:**
3749
3750| 参数名    | 类型   | 必填  | 说明   |
3751| -------- | ----- | ----- | ----- |
3752| callback | AsyncCallback&lt;[EditorAttribute](#editorattribute)&gt; | 是 |  回调函数。当编辑框的属性值获取成功,err为undefined,data为编辑框属性值;否则为错误对象。|
3753
3754**示例:**
3755
3756```ts
3757import { BusinessError } from '@ohos.base';
3758
3759textInputClient.getEditorAttribute((err: BusinessError, editorAttribute: inputMethodEngine.EditorAttribute) => {
3760  if (err) {
3761    console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3762    return;
3763  }
3764  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
3765  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
3766});
3767```
3768
3769### getEditorAttribute<sup>(deprecated)</sup>
3770
3771getEditorAttribute(): Promise&lt;EditorAttribute&gt;
3772
3773获取编辑框属性值。使用promise异步回调。
3774
3775> **说明:**
3776>
3777> 从API version 8开始支持,API version 9开始废弃,建议使用[getEditorAttribute](#geteditorattribute9)替代。
3778
3779**系统能力:** SystemCapability.MiscServices.InputMethodFramework
3780
3781**返回值:**
3782
3783| 类型                            | 说明                                                         |
3784| ------------------------------- | ------------------------------------------------------------ |
3785| Promise&lt;[EditorAttribute](#editorattribute)&gt; |  Promise对象,返回编辑框属性值。           |
3786
3787**示例:**
3788
3789```ts
3790import { BusinessError } from '@ohos.base';
3791
3792textInputClient.getEditorAttribute().then((editorAttribute: inputMethodEngine.EditorAttribute) => {
3793  console.log('editorAttribute.inputPattern: ' + JSON.stringify(editorAttribute.inputPattern));
3794  console.log('editorAttribute.enterKeyType: ' + JSON.stringify(editorAttribute.enterKeyType));
3795}).catch((err: BusinessError) => {
3796  console.error(`Failed to getEditorAttribute: ${JSON.stringify(err)}`);
3797});
3798```
3799<!--no_check-->