harmony 鸿蒙输入法框架changeLog
输入法框架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
适配指导
异步接口以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
替代接口如下:
- getSetting(): InputMethodSetting;
- getController(): InputMethodController;
- getInputMethods(enable: boolean, callback: AsyncCallback
特别注意: 使用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
变更后:
- getInputMethods(enable: boolean, callback: AsyncCallback
删除API9接口:
- startAbility(want: Want, callback: AsyncCallback
其他新增接口: - 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;
你可能感兴趣的鸿蒙文章
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦