1# Kika输入法应用 2 3### 介绍 4本示例使用[inputMethodEngine](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ime-kit/js-apis-inputmethodengine.md)实现一个轻量级输入法应用kikaInput,支持在运行OpenHarmony OS的智能终端上。 5 6### 效果预览 7 8| 主键盘 | 菜单 | 编辑 | 预上屏 | 9| :---------------------------------------: | :---------------------------------------: | :--------------------------------------: |:--------------------------------------: | 10|  |  |  |  11 12使用说明 13 141.使用hdc shell aa start ability -a InputMethod -b cn.openharmony.inputmethodchoosedialog命令拉起切换输入法弹窗,点击kikainput切换输入法到当前应用。 15 162.点击应用中的编辑框,拉起输入法键盘。 17 183.点击键盘可以在编辑框中输入内容,点击回退键可以删除文本。 19 204.点击左上角的键盘图标可以进入二级菜单,当前只有编辑菜单。 21 225.点击编辑可以进入编辑状态,点击方向键可以移动光标。 23 246.编辑状态点击选择按钮,进入选择状态,点击方向键可以选中文本。 25 26预上屏应用使用说明 271.安装应用,首页点击kikainput切换输入法到当前应用; 282.文本框中输入预上屏触发字符'hel',触发输入法预上屏; 293.点击输入法的回车键,确认预上屏内容'hello world'替换文本框中的'hel'; 30注:上屏的内容后继续输入字符a,hello world被替换,就是没有确认上屏,否则呈现内容是hello worlda的话就是内容已经确认预上屏。 31 32### 工程目录 33 34``` 35KikaInput 36├── AppScope 37│ └── app.json5 //APP信息配置文件 38├── entry/src/main //应用首页 39│ ├── ets 40│ │ ├── Application 41│ │ ├── common 42│ │ │ ├── StyleConfiguration.ets //适配不同设备下的键盘布局 43│ │ ├── components //输入法软键盘自定义组件 44│ │ ├── entryability //应用入口 45│ │ │ ├── EntryAbility.ets //应用入口Ability 46│ │ ├── pages 47│ │ │ ├── Index.ets //输入法主页 48│ │ │ ├── PrivatePreview.ets //预上屏主页 49│ │ ├── model 50│ │ │ ├── HardKeyUtils.ets //外接键盘KeyCode数据 51│ │ │ ├── KeyboardController.ets //输入法键盘控制 52│ │ │ ├── KeyboardKeyData.ets //输入法键盘数据 53│ │ ├── ServiceExtAbility 54│ │ │ ├── ServiceExtAbility.ets //输入法Ability 55│ └── module.json5 56``` 57 58### 具体实现 59 60* 该示例分为两个模块: 61 * 键盘布局 62 * 在Index中完成键盘的总体布局。在components中自定不同的按键组件。 63 * 源码链接:[Index.ets](./entry/src/main/ets/pages/Index.ets),[components](./entry/src/main/ets/components) 64 * 参考接口:[ArkTs声明式开发范式](https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/reference/apis-arkui) 65 * 输入法控制 66 * 使用[@ohos.request](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-request.md)中API 10接口agent.create创建上传任务,调用@ohos.request中的Task相关接口实现上传任务的创建、取消、进度加载,前台任务只支持单文件下载,后台任务支持多文件下载。使用[@ohos.file.fs](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-fs.md)完成指定路径的创建和查询已下载的文件。 67 * 源码链接:[KeyboardController.ets](entry/src/main/ets/model/KeyboardController.ets) 68 * 参考接口:[@ohos.inputMethodEngine](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ime-kit/js-apis-inputmethodengine.md) 69 70### 相关权限 71 72[ohos.permission.GET_BUNDLE_INFO_PRIVILEGED](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_bundle_info_privileged) 73 74[ohos.permission.START_ABILITIES_FROM_BACKGROUND](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionstart_abilities_from_background) 75 76### 依赖 77 78不涉及。 79 80### 约束与限制 81 821.本示例仅支持标准系统上运行。 83 842.本示例适配API12版本SDK,SDK版本号(API Version 12 Release),镜像版本号(5.0.0.25及以后版本)。 85 863.本示例需要使用DevEco Studio 版本号(4.1 Release)及以上版本才可编译运行。 87 885.本示例需要使用@ohos.application.InputMethodExtensionAbility系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)。 89 906.如果安装本示例报错为error:install sign info inconsistent,则有可能是应用已安装在系统中,此时需要卸载安装的应用,并替换安装,具体命令如下: 91 92hdc uninstall com.samples.kikainputmethod 93 94hdc install ./kikaInputMethod.hap 95 96hdc shell aa start ability -a InputMethod -b cn.openharmony.inputmethodchoosedialog 97 98在拉起的输入法弹窗中,点击kikainput切换输入法到当前应用。 99 100### 下载 101 102如需单独下载本工程,执行如下命令: 103 104``` 105git init 106git config core.sparsecheckout true 107echo code/Solutions/InputMethod/KikaInputMethod/ > .git/info/sparse-checkout 108git remote add origin https://gitee.com/openharmony/applications_app_samples.git 109git pull origin master 110```