harmony 鸿蒙输入法框架changeLog

  • 2023-02-03
  • 浏览 (797)

输入法框架changeLog

cl.inputmethod_frameworks.1 API错误信息返回方式变更

下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。

  • 输入法框架模块:系统接口,@ohos.inputmethod.d.ts

  • 输入法服务模块:系统接口,@ohos.inputmethodengine.d.ts

  • 输入法ExtentionAbility模块:系统接口,@ohos.inputmethodextensionability.d.ts

  • 输入法ExtentionContext模块:系统接口,@ohos.inputmethodextensioncontext.d.ts

  • 输入法子类型模块:系统接口,@ohos.inputMethodSubtype.d.ts

异步接口:通过AsyncCallback或Promise的error对象返回错误信息。

同步接口:通过抛出异常的方式返回错误信息。

变更影响

基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。

关键接口/组件变更

在以下接口增加错误码处理: - getSetting(): InputMethodSetting; - getController(): InputMethodController; - switchInputMethod(target: InputMethodProperty, callback: AsyncCallback): void; - switchInputMethod(target: InputMethodProperty): Promise; - switchCurrentInputMethodSubtype(target: InputMethodSubtype, callback: AsyncCallback): void; - switchCurrentInputMethodSubtype(target: InputMethodSubtype): Promise; - switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype, callback: AsyncCallback): void; - switchCurrentInputMethodAndSubtype(inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype): Promise; - listInputMethodSubtype(inputMethodProperty: InputMethodProperty, callback: AsyncCallback>): void; - listInputMethodSubtype(inputMethodProperty: InputMethodProperty): Promise>; - listCurrentInputMethodSubtype(callback: AsyncCallback>): void; - listCurrentInputMethodSubtype(): Promise>; - getInputMethods(enable: boolean, callback: AsyncCallback>): void; - getInputMethods(enable: boolean): Promise>; - showOptionalInputMethods(callback: AsyncCallback): void; - showOptionalInputMethods(): Promise; - stopInputSession(callback: AsyncCallback): void; - stopInputSession(): Promise; - showSoftKeyboard(callback: AsyncCallback): void; - showSoftKeyboard():Promise; - hideSoftKeyboard(callback: AsyncCallback): void; - hideSoftKeyboard():Promise; - hide(callback: AsyncCallback): void; - hide(): Promise; - onCreate(want: Want): void; - onDestroy(): void; InputClient 接口下: - sendKeyFunction(action: number, callback: AsyncCallback): void; - sendKeyFunction(action: number): Promise; - deleteForward(length: number, callback: AsyncCallback): void; - deleteForward(length: number): Promise; - deleteBackward(length: number, callback: AsyncCallback): void; - deleteBackward(length: number): Promise; - insertText(text: string, callback: AsyncCallback): void; - insertText(text: string): Promise; - getForward(length: number, callback: AsyncCallback): void; - getForward(length: number): Promise; - getBackward(length: number, callback: AsyncCallback): void; - getBackward(length: number): Promise; - getEditorAttribute(callback: AsyncCallback): void; - getEditorAttribute(): Promise; - moveCursor(direction: number, callback: AsyncCallback): void; - moveCursor(direction: number): Promise; InputMethodExtensionAbility 类下: - onCreate(want: Want): void; - onDestroy(): void;

适配指导

异步接口以showOptionalInputMethods为例,示例代码如下:

callback回调:

import inputMethod from '@ohos.inputmethod';
let inputMethodSetting = inputMethod.getSetting();
try {
    inputMethodSetting.showOptionalInputMethods((err, data) => {
        if (err !== undefined) {
            console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
            return;
        }
        console.info('Succeeded in showing optionalInputMethods.');
    });
} catch (err) {
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
}

Promise回调:

import inputMethod from '@ohos.inputmethod';
let inputMethodSetting = inputMethod.getSetting();
inputMethodSetting.showOptionalInputMethods().then((data) => {
    console.info('Succeeded in showing optionalInputMethods.');
}).catch((err) => {
    console.error('Failed to showOptionalInputMethods: ' + JSON.stringify(err));
})

cl.inputmethod_frameworks.2 API部分接口废弃

以下接口标记废除: - getInputMethodSetting(): InputMethodSetting; - getInputMethodController(): InputMethodController; - listInputMethod(callback: AsyncCallback>): void; - listInputMethod(): Promise>; - displayOptionalInputMethod(callback: AsyncCallback): void; - displayOptionalInputMethod(): Promise; - stopInput(callback: AsyncCallback): void; - stopInput(): Promise; interface InputMethodProperty: - readonly packageName: string; - readonly methodId: string; - getInputMethodEngine(): InputMethodEngine; - createKeyboardDelegate(): KeyboardDelegate; - hideKeyboard(callback: AsyncCallback): void; - hideKeyboard(): Promise;

替代接口如下: - getSetting(): InputMethodSetting; - getController(): InputMethodController; - getInputMethods(enable: boolean, callback: AsyncCallback>): void; - getInputMethods(enable: boolean): Promise>; - showOptionalInputMethods(callback: AsyncCallback): void; - showOptionalInputMethods(): Promise; - stopInputSession(callback: AsyncCallback): void; - stopInputSession(): Promise; interface InputMethodProperty: - readonly name: string; - readonly id: string; - getInputMethodAbility(): InputMethodAbility; - getKeyboardDelegate(): KeyboardDelegate; - hide(callback: AsyncCallback): void; - hide(): Promise;

特别注意: 使用getInputMethodAbility()接口获取到InputMethodAbility对象,代替使用getInputMethodEngine()接口获取InputMethodEngine对象。 使用InputMethodAbility中的方法,不要再使用InputMethodEngine中的方法。 使用InputMethodAbility中的on(‘inputStart’)方法,获取到KeyboardController实例与InputClient实例,不要再使用InputMethodEngine中的on(‘inputStart’)方法去获取TextInputClient实例。 之前:

inputMethodEngine.getInputMethodEngine().on('inputStart', (kbController, textClient) => {
    let keyboardController = kbController;
    let textInputClient = textClient;  // 获取到TextInputClient实例
});

之后:

inputMethodEngine.getInputMethodAbility().on('inputStart', (kbController, client) => {
    let keyboardController = kbController;
    let inputClient = client;  // // 获取到InputClient实例
});

cl.inputmethod_frameworks.3 API部分接口变更

变更前: - listInputMethod(enable: boolean, callback: AsyncCallback>): void; - listInputMethod(enable: boolean): Promise>; - terminateSelf(callback: AsyncCallback): void; - terminateSelf(): Promise;

变更后: - getInputMethods(enable: boolean, callback: AsyncCallback>): void; - getInputMethods(enable: boolean): Promise>; - destroy(callback: AsyncCallback): void; - destroy(): Promise;

删除API9接口: - startAbility(want: Want, callback: AsyncCallback): void; - startAbility(want: Want, options: StartOptions, callback: AsyncCallback): void; - startAbility(want: Want, options?: StartOptions): Promise;

其他新增接口: - on(type: ‘imeChange’, callback: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void; - off(type: ‘imeChange’, callback?: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void; - interface InputMethodProperty: - readonly label?: string; - readonly icon?: string; - readonly iconId?: number; - extra: object;

  • interface InputMethodAbility:
    • on(type: ‘setSubtype’, callback: (inputMethodSubtype: InputMethodSubtype) => void): void;
    • off(type: ‘setSubtype’, callback?: (inputMethodSubtype: InputMethodSubtype) => void): void;

你可能感兴趣的鸿蒙文章

harmony 鸿蒙帐号子系统changeLog

harmony 鸿蒙媒体子系统JS API变更Changelog

harmony 鸿蒙设备管理changeLog

harmony 鸿蒙USB管理 changeLog

harmony 鸿蒙软总线子系统Changelog

harmony 鸿蒙文件管理子系统ChangeLog

harmony 鸿蒙全球化子系统ChangeLog

harmony 鸿蒙多模输入changeLog

harmony 鸿蒙电源子系统ChangeLog

harmony 鸿蒙上传下载子系统ChangeLog

0  赞