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/>- 入参按键事件信息的数据类型为[InputKeyEvent](js-apis-keyevent.md#KeyEvent)。<br/>- 若按键事件被事件订阅者消费,则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<void>): void 1622 1623隐藏输入法。使用callback异步回调。 1624 1625**系统能力:** SystemCapability.MiscServices.InputMethodFramework 1626 1627**参数:** 1628 1629| 参数名 | 类型 | 必填 | 说明 | 1630| -------- | ---------------------- | ---- | -------- | 1631| callback | AsyncCallback<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<void> 1658 1659隐藏输入法。使用promise异步回调。 1660 1661**系统能力:** SystemCapability.MiscServices.InputMethodFramework 1662 1663**返回值:** 1664 1665| 类型 | 说明 | 1666| ---------------- | ------------------------- | 1667| Promise<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<void>): 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<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<void> 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<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<boolean>): void 1805 1806发送功能键。使用callback异步回调。 1807 1808**系统能力:** SystemCapability.MiscServices.InputMethodFramework 1809 1810 **参数:** 1811 1812| 参数名 | 类型 | 必填 | 说明 | 1813| -------- | -------- | -------- | -------- | 1814| action | number | 是 | 功能键键值。<br/>- 当值为0时,表示无效按键。<br/>- 当值为1时,表示确认键(即回车键)。 | 1815| callback | AsyncCallback<boolean> | 是 | 回调函数。当功能键发送成功,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<boolean> 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<boolean> | 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<string>): void 1900 1901获取光标前固定长度的文本。使用callback异步回调。 1902 1903**系统能力:** SystemCapability.MiscServices.InputMethodFramework 1904 1905**参数:** 1906 1907| 参数名 | 类型 | 必填 | 说明 | 1908| -------- | -------- | -------- | -------- | 1909| length | number | 是 | 文本长度。 | 1910| callback | AsyncCallback<string> | 是 | 回调函数。当光标前固定长度的文本获取成功,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<string> 1943 1944获取光标前固定长度的文本。使用promise异步回调。 1945 1946**系统能力:** SystemCapability.MiscServices.InputMethodFramework 1947 1948**参数:** 1949 1950| 参数名 | 类型 | 必填 | 说明 | 1951| -------- | -------- | -------- | -------- | 1952| length | number | 是 | 文本长度。 | 1953 1954**返回值:** 1955 1956| 类型 | 说明 | 1957| ------------------------------- | ------------------------------------------------------------ | 1958| Promise<string> | 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<string>): void 2030 2031获取光标后固定长度的文本。使用callback异步回调。 2032 2033**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2034 2035**参数:** 2036 2037| 参数名 | 类型 | 必填 | 说明 | 2038| -------- | -------- | -------- | -------- | 2039| length | number | 是 | 文本长度。 | 2040| callback | AsyncCallback<string> | 是 | 回调函数。当光标后固定长度的文本获取成功,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<string> 2073 2074获取光标后固定长度的文本。使用promise异步回调。 2075 2076**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2077 2078**参数:** 2079 2080| 参数名 | 类型 | 必填 | 说明 | 2081| -------- | -------- | -------- | -------- | 2082| length | number | 是 | 文本长度。 | 2083 2084**返回值:** 2085 2086| 类型 | 说明 | 2087| ------------------------------- | ------------------------------------------------------------ | 2088| Promise<string> | 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<boolean>): void 2160 2161删除光标前固定长度的文本。使用callback异步回调。 2162 2163**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2164 2165**参数:** 2166 2167| 参数名 | 类型 | 必填 | 说明 | 2168| -------- | -------- | -------- | -------- | 2169| length | number | 是 | 文本长度。 | 2170| callback | AsyncCallback<boolean> | 是 | 回调函数。当光标前固定长度的文本删除成功,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<boolean> 2207 2208删除光标前固定长度的文本。使用promise异步回调。 2209 2210**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2211 2212**参数:** 2213 2214| 参数名 | 类型 | 必填 | 说明 | 2215| ------ | ------ | ---- | ---------- | 2216| length | number | 是 | 文本长度。 | 2217 2218**返回值:** 2219 2220| 类型 | 说明 | 2221| ---------------------- | -------------- | 2222| Promise<boolean> | 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<boolean>): void 2292 2293删除光标后固定长度的文本。使用callback异步回调。 2294 2295**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2296 2297**参数:** 2298 2299| 参数名 | 类型 | 必填 | 说明 | 2300| -------- | ---------------------------- | ---- | -------------- | 2301| length | number | 是 | 文本长度。 | 2302| callback | AsyncCallback<boolean> | 是 | 回调函数。当光标后固定长度的文本删除成功,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<boolean> 2339 2340删除光标后固定长度的文本。使用promise异步回调。 2341 2342**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2343 2344**参数:** 2345 2346| 参数名 | 类型 | 必填 | 说明 | 2347| -------- | -------- | -------- | -------- | 2348| length | number | 是 | 文本长度。 | 2349 2350**返回值:** 2351 2352| 类型 | 说明 | 2353| ------------------------------- | ------------------------------------------------------------ | 2354| Promise<boolean> | 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<boolean>): void 2420 2421插入文本。使用callback异步回调。 2422 2423**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2424 2425**参数:** 2426 2427| 参数名 | 类型 | 必填 | 说明 | 2428| -------- | -------- | -------- | -------- | 2429| text | string | 是 | 文本内容。 | 2430| callback | AsyncCallback<boolean> | 是 | 回调函数。当文本插入成功,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<boolean> 2462 2463插入文本。使用promise异步回调。 2464 2465**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2466 2467**参数:** 2468 2469| 参数名 | 类型 | 必填 | 说明 | 2470| -------- | -------- | -------- | -------- | 2471| text | string | 是 | 文本。 | 2472 2473**返回值:** 2474 2475| 类型 | 说明 | 2476| ------------------------------- | ------------------------------------------------------------ | 2477| Promise<boolean> | 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<EditorAttribute>): void 2545 2546获取编辑框属性值。使用callback异步回调。 2547 2548**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2549 2550**参数:** 2551 2552| 参数名 | 类型 | 必填 | 说明 | 2553| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | 2554| callback | AsyncCallback<[EditorAttribute](#editorattribute)> | 是 | 回调函数。当编辑框属性值获取成功,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<EditorAttribute> 2582 2583获取编辑框属性值。使用promise异步回调。 2584 2585**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2586 2587**返回值:** 2588 2589| 类型 | 说明 | 2590| ------------------------------- | ------------------------------------------------------------ | 2591| Promise<[EditorAttribute](#editorattribute)> | 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<void>): 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<void> | 是 | 回调函数。当光标移动成功,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<void> 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<void> | 无返回结果的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<void>): void 2772 2773根据索引范围选中文本。使用callback异步回调。 2774 2775**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2776 2777**参数:** 2778 2779| 参数名 | 类型 | 必填 | 说明 | 2780| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 2781| range | [Range](#range10) | 是 | 选中文本的范围。 | 2782| callback | AsyncCallback<void> | 是 | 回调函数。当成功发送选中事件后,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<void> 2815 2816根据索引范围选中文本。使用promise异步回调。 2817 2818**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2819 2820**参数:** 2821 2822| 参数名 | 类型 | 必填 | 说明 | 2823| ------ | --------------------------------------------------------- | ---- | ---------------- | 2824| range | [Range](#range10) | 是 | 选中文本的范围。 | 2825 2826**返回值:** 2827 2828| 类型 | 说明 | 2829| ------------------- | ------------------------- | 2830| Promise<void> | 无返回结果的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<void>): void 2896 2897根据光标移动方向选中文本。使用callback异步回调。 2898 2899**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2900 2901**参数:** 2902 2903| 参数名 | 类型 | 必填 | 说明 | 2904| -------- | ------ | ---- | ------ | 2905| movement | [Movement](#movement10) | 是 | 选中时光标移动的方向。 | 2906| callback | AsyncCallback<void> | 是 | 回调函数。当成功发送选中事件后,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<void> 2939 2940根据索引范围选中文本。使用promise异步回调。 2941 2942**系统能力:** SystemCapability.MiscServices.InputMethodFramework 2943 2944**参数:** 2945 2946| 参数名 | 类型 | 必填 | 说明 | 2947| -------- | ------------------------------------------------------------ | ---- | ---------------------- | 2948| movement | [Movement](#movement10) | 是 | 选中时光标移动的方向。 | 2949 2950**返回值:** 2951 2952| 类型 | 说明 | 2953| ------------------- | ------------------------- | 2954| Promise<void> | 无返回结果的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<number>): void 3020 3021获取光标所在处的文本索引。使用callback异步回调。 3022 3023**系统能力:** SystemCapability.MiscServices.InputMethodFramework 3024 3025**参数:** 3026 3027| 参数名 | 类型 | 必填 | 说明 | 3028| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 3029| callback | AsyncCallback<number> | 是 | 回调函数。当文本索引获取成功,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<number> 3057 3058获取光标所在处的文本索引。使用promise异步回调。 3059 3060**系统能力:** SystemCapability.MiscServices.InputMethodFramework 3061 3062**返回值:** 3063 3064| 类型 | 说明 | 3065| --------------------- | --------------------------------------- | 3066| Promise<number> | 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<void>): 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<void> | 是 | 回调函数。发送成功,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<void> 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<void> | 无返回结果的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<string>): 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<string> | 是 | 回调函数。当光标前固定长度的文本获取成功,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<string> 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<string> | 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<string>): 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<string> | 是 | 回调函数。当光标后固定长度的文本获取成功,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<string> 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<string> | 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<boolean>): 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<boolean> | 是 | 回调函数。当光标前固定长度的文本删除成功,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<boolean> 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<boolean> | 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<boolean>): 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<boolean> | 是 | 回调函数。当光标后固定长度的文本删除成功,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<boolean> 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<boolean> | 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<boolean>): 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<boolean> | 是 | 回调函数。当功能键发送成功,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<boolean> 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<boolean> | 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<boolean>): 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<boolean> | 是 | 回调函数。当文本插入成功,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<boolean> 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<boolean> | 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<EditorAttribute>): 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<[EditorAttribute](#editorattribute)> | 是 | 回调函数。当编辑框的属性值获取成功,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<EditorAttribute> 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<[EditorAttribute](#editorattribute)> | 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-->