# 输入法框架子系统 - [简介](#简介) - [系统架构](#系统架构) - [目录](#目录) - [使用说明](#使用说明) - [相关仓](#相关仓) ## 简介 负责建立编辑框所在应用与输入法应用之间的通信通道,确保两者可以共同协作提供文本输入功能,也为系统应用提供管理输入法应用的能力。 输入法框架目前有四大模块,具体如下: 1. 应用客户端 路径:/base/inputmethod/imf/frameworks/native/inputmethod_controller 作用:提供应用请求使用输入法应用、与输入法应用交互的能力。 2. 输入法客户端 路径:/base/inputmethod/imf/frameworks/native/inputmethod_ability 作用:提供输入法应用实现框架,基于该框架输入法应用可以被正确拉起,并与编辑框应用进行协作完成文本输入。 3. 输入法服务 路径:/base/inputmethod/imf/services 作用:输入法管理服务,负责建立安全可靠的输入法连接,同时提供了输入法切换查询等功能。 4. 输入法Js接口实现 路径:/base/inputmethod/imf/frameworks/js - 主要提供给输入法应用调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodability。 - 主要提供给自绘控件调用的相关js接口实现:/base/inputmethod/imf/frameworks/js/napi/inputmethodclient。 作用:输入法实现框架、自绘编辑框控件使用输入法的NAPI接口,为TS相关接口提供具体实现。 ## 系统架构 **图 1** 子系统架构图 ![输入法框架子系统架构图](./figures/输入法框架子系统架构图.PNG) ## 目录 ``` /base/inputmethod/imf ├── figures # 架构图 ├── frameworks │ └── js/napi # 输入法框架napi接口 │ └──inputmethod_extention_ability # 对输入法应用,InputMethodExtentionAbility相关接口 │ └──inputmethod_extention_context # 对输入法应用,InputMethodExtentionContext相关接口 │ └──inputmethodability # 对输入法应用提供的接口 │ └──inputmethodclient # 对系统应用、自绘控件提供的接口 │ └── native │ └──inputmethod_ability # 对输入法客户端提供的接口 │ └──inputmethod_controller # 对客户端提供的接口 ├── interfaces # 组件对外提供的接口代码 │ └── inner_api # innerApi接口 ├── profile # 组件包含的系统服务的配置文件和进程的配置文件 ├── services # 输入法框架服务 ├── test # 测试 │ └── fuzztest # 接口的Fuzz测试 │ └── unitest # 接口的单元测试 │ └──cpp_test # 接口的cpp单元测试 │ └──napi_test # 接口的js单元测试 ``` ## 使用说明 * [InputMethodExtentionAbility开发指南](../application-dev/application-models/inputmethodextentionability.md) * [@ohos.inputMethod (输入法框架)](../application-dev/reference/apis-ime-kit/js-apis-inputmethod.md) * [@ohos.inputMethodEngine (输入法服务)](../application-dev/reference/apis-ime-kit/js-apis-inputmethodengine.md) ## 相关仓 输入法框架: [inputmethod_imf](https://gitee.com/openharmony/inputmethod_imf)