未验证 提交 1f14bb8f 编写于 作者: O openharmony_ci 提交者: Gitee

!17866 【docs】增加修改InputMethodExtensionAbility使用场景说明

Merge pull request !17866 from cy7717/master
...@@ -11,7 +11,7 @@ ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等 ...@@ -11,7 +11,7 @@ ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等
- [WorkSchedulerExtensionAbility](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md):WORK_SCHEDULER类型的ExtensionAbility组件,用于提供延迟任务回调实现的能力。 - [WorkSchedulerExtensionAbility](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md):WORK_SCHEDULER类型的ExtensionAbility组件,用于提供延迟任务回调实现的能力。
- [InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod.md):INPUT_METHOD类型的ExtensionAbility组件,提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框 - [InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod.md):INPUT_METHOD类型的ExtensionAbility组件,用于开发输入法应用
- [ServiceExtensionAbility](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md):SERVICE类型的ExtensionAbility组件,用于提供后台服务场景相关能力。 - [ServiceExtensionAbility](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md):SERVICE类型的ExtensionAbility组件,用于提供后台服务场景相关能力。
......
# InputMethodExtensionAbility开发指南 # InputMethodExtensionAbility开发指南
[InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)是inputMethod类型的ExtensionAbility组件,提供输入法框架服务相关扩展能力。 ## 使用场景
[InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)基于[ExtensionAbility](extensionability-overview.md)框架,用于开发输入法应用。
[InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)可以被其他组件启动或连接,并根据调用者的请求信息在后台处理相关事务 [InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)实例及其所在的ExtensionAbility进程的整个生命周期,都是由输入法框架进行调度管理。输入法框架提供了[InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)基类,开发者需要派生此基类,以实现输入法应用生命周期开始和销毁时的相关初始化操作和资源清理工作等
[InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod-extension-ability.md)通过[InputMethodExtensionContext](../reference/apis/js-apis-inputmethod-extension-context.md)提供相关能力。
InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis/js-apis-inputmethod-extension-context.md)提供相关能力。
## 实现一个输入法应用 ## 实现一个输入法应用
...@@ -67,7 +67,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis ...@@ -67,7 +67,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
onDestroy() { onDestroy() {
console.log("onDestroy."); console.log("onDestroy.");
this.context.destroy(); this.keyboardController.onDestroy(); // 销毁窗口并去注册事件监听
} }
} }
``` ```
...@@ -103,10 +103,9 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis ...@@ -103,10 +103,9 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
public onDestroy(): void // 应用生命周期销毁 public onDestroy(): void // 应用生命周期销毁
{ {
this.unRegisterListener(); // 注销事件监听 this.unRegisterListener(); // 去注册事件监听
let win = windowManager.findWindow(this.windowName); let win = windowManager.findWindow(this.windowName);
win.destroyWindow(); // 销毁窗口 win.destroyWindow(); // 销毁窗口
this.mContext.terminateSelf(); // 销毁InputMethodExtensionAbility服务
} }
private initWindow(): void // 初始化窗口 private initWindow(): void // 初始化窗口
...@@ -156,7 +155,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis ...@@ -156,7 +155,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
}) })
globalThis.inputAbility.on('inputStop', (imeId) => { globalThis.inputAbility.on('inputStop', (imeId) => {
if (imeId == "包名/Ability名") { if (imeId == "包名/Ability名") {
this.onDestroy(); this.mContext.destroy(); // 销毁InputMethodExtensionAbility服务
} }
}); });
} }
...@@ -230,7 +229,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis ...@@ -230,7 +229,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
同时在resources/base/profile/main_pages.json文件的src字段中添加此文件路径。 同时在resources/base/profile/main_pages.json文件的src字段中添加此文件路径。
```ts ```ets
import { numberSourceListData, sourceListType } from './keyboardKeyData' import { numberSourceListData, sourceListType } from './keyboardKeyData'
@Component @Component
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册