{"_id":"@cordova-ohos/cordova-plugin-ionic-keyboard","_rev":"3-94a2aae8244af4e3f94ebb8a57e1353c","name":"@cordova-ohos/cordova-plugin-ionic-keyboard","dist-tags":{"latest":"2.2.1"},"versions":{"2.2.0":{"name":"@cordova-ohos/cordova-plugin-ionic-keyboard","version":"2.2.0","keywords":["cordova","keyboard","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-ionic-keyboard@2.2.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-ionic-keyboard/issues"},"dist":{"shasum":"540beebc77fa9e34b42d5bb4206090b51b1f8c03","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz","fileCount":9,"integrity":"sha512-v3eRCk/UPZgTglbbi78kWTl3NcX2oc8gJYYjeK0q/Iz3/8sm0JOZFRueXCWUUnhAZ+EEZvA73w9Ab0eWY7xSvQ==","signatures":[{"sig":"MEUCIQCOGUTEGdBY5wjh/WW4YevKsTIMzBCv74KtgEUD6NQvtwIgEs+v2HscopJ4eQKJRaz0srKfJR6/6MxmAVOpA96RIYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32896},"cordova":{"id":"cordova-plugin-ionic-keyboard","platforms":["ohos"]},"engines":{"cordovaDependencies":{"2.2.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"9433ba69c7d485d134e830a8083477f87f2c9284","_npmUser":{"name":"wanpengsz","email":"wanpengsz@163.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-ionic-keyboard","type":"git"},"_npmVersion":"9.6.2","description":"Cordova keyboard Plugin","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-ionic-keyboard_2.2.0_1773996579539_0.04455633716702079","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@cordova-ohos/cordova-plugin-ionic-keyboard","version":"2.2.1","description":"Cordova keyboard Plugin","cordova":{"id":"cordova-plugin-ionic-keyboard","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-ionic-keyboard"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard/issues"},"keywords":["cordova","keyboard","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"2.2.1":{"@cordova-ohos/ohos":">=2.0.0","hcordova":">=1.0.0"}}},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-ionic-keyboard@2.2.1","gitHead":"016e06f49257ea108b67a95ed1c4151a28c043a3","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-y9B7gbCIKGToV27dq8lycm0+0R5P/ChhvkT9Pd+FYMb204cBA+ZzEInVaZszp/zHLZqnplcuc7/K8BXw6o7tlg==","shasum":"4f389ef570521c9c986d6da94bc72a9458d28c07","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.1.tgz","fileCount":10,"unpackedSize":52250,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC5q3dafx4g0oAdKibL+ikExUeGJHWj6AXH0rM7M/CwHAiBHSog3vsGBImkGJMS6VH8KbTQr9eOkPfmeCEdpCgeUzg=="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cordova-plugin-ionic-keyboard_2.2.1_1785157120398_0.5480572154321752"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T08:49:39.428Z","modified":"2026-07-27T12:58:40.773Z","2.2.0":"2026-03-20T08:49:39.677Z","2.2.1":"2026-07-27T12:58:40.568Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","keyboard","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-ionic-keyboard"},"description":"Cordova keyboard Plugin","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"readme":"# <center>cordova-plugin-ionic-keyboard</center>\r\n\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [cordova-plugin-ionic-keyboard@2.2.0](https://www.npmjs.com/package/cordova-plugin-ionic-keyboard/v/2.2.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-ionic-keyboard](#cordova-plugin-ionic-keyboard)\r\n  - [简介](#简介)\r\n  - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [指定平台安装 ohos](#指定平台安装-ohos)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\r\n    - [卸载](#卸载)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n  - [使用示例](#使用示例)\r\n    - [1. 显示键盘，并监听获取到高度](#1-显示键盘并监听获取到高度)\r\n    - [2. 隐藏键盘](#2-隐藏键盘)\r\n    - [3. 键盘的显示说明](#3-键盘的显示说明)\r\n  - [使用说明](#使用说明)\r\n    - [核心 API](#核心-api)\r\n      - [键盘事件监听](#键盘事件监听)\r\n      - [键盘控制方法](#键盘控制方法)\r\n    - [配置参数](#配置参数)\r\n    - [使用注意](#使用注意)\r\n  - [新增特性](#新增特性)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-ionic-keyboard` 是 Harmony Cordova 生态系统中一款核心插件，是一款 Cordova 键盘控制插件，专为混合移动应用设计，提供跨平台、精细化的键盘操作与适配解决方案。插件封装了 Android/iOS/OHOS 原生键盘 API，支持键盘显示/隐藏控制等核心功能，解决混合应用中键盘遮挡输入框、页面布局错乱、键盘操作无响应等常见问题，适用于表单填写、聊天输入、搜索框交互等各类场景。\r\n\r\n**重要提示：** 在 OHOS 系统中，设置键盘模式在 OHOS cordova 的 mainPage 组件中，有参数设置 webKeyboardAvoidMode 设置键盘的避让方式，无需安装插件，该插件主要为兼容原 Android 项目移植使用。[框架库链接](https://gitcode.com/CPF-Cordova/cordova-openharmony)\r\n\r\n插件核心优势：\r\n\r\n- 跨平台兼容：统一 Android/iOS/OHOS 键盘控制逻辑，API 调用无需区分平台\r\n\r\n- 精细化控制：支持手动显示/隐藏键盘、禁用键盘、调整键盘行为（如回车按钮样式）\r\n\r\n- 丰富事件监听：提供键盘显示/隐藏、高度变化、输入完成等完整事件回调\r\n\r\n- 轻量无依赖：不依赖第三方库，插件体积＜50KB，集成成本低\r\n\r\n- 原生体验优化：适配平台特有键盘特性\r\n\r\n## 支持平台\r\n\r\n- **Android**：API 19 及以上（Android 4.4+）\r\n\r\n- **iOS**：10.0 及以上\r\n\r\n- **OHOS**：5.0 及以上\r\n\r\n## 下载安装\r\n\r\n通过 hcordova CLI 即可快速安装插件，支持从 npm 仓库或 GitCode 仓库获取。\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n```bash\r\n# 使用 hcordova CLI 安装\r\n# 安装 hcordova 命令化工具\r\nnpm install -g hcordova\r\n# 全平台安装插件（基础安装）\r\nhcordova plugin add cordova-plugin-ionic-keyboard\r\n```\r\n\r\n### 指定平台安装 ohos\r\n\r\n仅为 OHOS 平台安装插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\nhcordova plugin add cordova-plugin-ionic-keyboard --platform ohos\r\n# 安装指定版本并指定 OHOS 平台\r\nhcordova plugin add cordova-plugin-ionic-keyboard@1.0.0 --platform ohos\r\n```\r\n\r\n### 从 GitCode 仓库安装\r\n\r\n仅为 OHOS 平台安装插件（获取最新开发版）：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台（开发版）\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard.git@develop --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：~/Downloads/cordova-plugin-ionic-keyboard）\r\n# 执行离线安装\r\nhcordova plugin add ~/Downloads/cordova-plugin-ionic-keyboard --platform ohos\r\n```\r\n\r\n### 安装后验证\r\n\r\n安装完成后，可通过以下命令验证插件是否成功添加到项目中：\r\n\r\n```bash\r\n# 查看已安装的插件列表，若包含本插件 ID 则表示插件已成功安装\r\nhcordova plugin list\r\n```\r\n\r\n\r\n### 卸载\r\n\r\n```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-ionic-keyboard \r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-ionic-keyboard --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n1. OHOS 系统中，mainPage 组件已提供 webKeyboardAvoidMode 参数设置键盘避让方式，无需安装本插件，本插件主要用于兼容原 Android 项目移植场景；\r\n2. 插件仅负责键盘控制相关功能，OHOS 平台键盘避让逻辑优先遵循 mainPage 组件配置；\r\n3. 部分精细化键盘行为（如回车按钮样式）需结合各平台原生特性，可能存在细微差异。\r\n\r\n### 兼容性\r\n\r\n支持：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| SDK | API12+ |\r\n| IDE | DevEco Studio: 5.0+ |\r\n| ROM | 5.1+ |\r\n| Emulator | OpenHarmony 6.0+ |\r\n\r\n在以下版本中已测试通过：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| @cordova-ohos/ohos | 14.0.1-ohos-14.0.1 |\r\n| SDK | 5.0.0(12) |\r\n| IDE | DevEco Studio: 6.0.13.200 |\r\n| ROM | 5.1.0.120 SP3 |\r\n| Emulator | OpenHarmony 6.0.1(21) |\r\n\r\n## 使用示例\r\n\r\n### 1. 显示键盘，并监听获取到高度\r\n\r\n```javascript\r\nwindow.addEventListener('keyboardDidShow', (event) => {\r\n    console.log(\"显示键盘:keyboardDidShow 事件：\" + event.keyboardHeight);\r\n});\r\nwindow.addEventListener('keyboardWillShow', (event) => {\r\n    console.log(\"显示键盘：keyboardWillShow 事件:\" + event.keyboardHeight);\r\n});\r\nwindow.addEventListener('keyboardWillHide', () => {\r\n    console.log(\"隐藏键盘：keyboardWillHide 事件\");\r\n});\r\nwindow.addEventListener('keyboardDidHide', () => {\r\n    console.log(\"隐藏键盘：keyboardDidHide 事件\");\r\n});\r\nfunction showKeyboard() {\r\n    // 显示键盘\r\n    cordova.plugins.Keyboard.show();\r\n    // 获取焦点也可以显示键盘\r\n    document.getElementById(\"inputId\").focus();\r\n}\r\n```\r\n\r\n### 2. 隐藏键盘\r\n\r\n```javascript\r\nfunction hideKeyboard2() {\r\n    cordova.plugins.Keyboard.hide();\r\n}\r\n```\r\n\r\n### 3. 键盘的显示说明\r\n\r\n在 OHOS Cordova 框架中，mainPage 组件有设置键盘的弹窗方式参数，请参考 [框架库](https://gitcode.com/CPF-Cordova/cordova-openharmony) 的说明\r\n\r\n## 使用说明\r\n\r\n### 核心 API\r\n\r\n#### 键盘事件监听\r\n\r\n- `keyboardDidShow`：键盘显示完成后触发，event 参数包含 keyboardHeight（键盘高度）\r\n\r\n- `keyboardWillShow`：键盘即将显示时触发，event 参数包含 keyboardHeight（键盘高度）\r\n\r\n- `keyboardWillHide`：键盘即将隐藏时触发，无额外参数\r\n\r\n- `keyboardDidHide`：键盘隐藏完成后触发，无额外参数\r\n\r\n#### 键盘控制方法\r\n\r\n- `cordova.plugins.Keyboard.show()`：手动显示键盘\r\n\r\n- `cordova.plugins.Keyboard.hide()`：手动隐藏键盘\r\n\r\n### 配置参数\r\n\r\n无额外全局配置参数，API 调用无需传入额外配置，直接调用即可实现对应功能；OHOS 平台键盘避让方式需在 mainPage 组件中通过 webKeyboardAvoidMode 参数设置。\r\n\r\n### 使用注意\r\n\r\n1. OHOS 新项目建议直接使用 mainPage 组件的 webKeyboardAvoidMode 参数设置键盘避让，无需安装本插件；\r\n2. 原 Android 项目移植到 OHOS 时，可安装本插件保持键盘控制接口统一；\r\n3. 调用键盘显示方法时，建议配合输入框 focus() 方法，确保键盘正常弹出；\r\n4. 事件监听建议在页面初始化时注册，避免重复注册导致回调异常。\r\n\r\n## 新增特性\r\n\r\n1. 适配 OHOS 5.0+ 系统，严格遵循 OpenHarmony 开发规范；\r\n2. 保留原有插件核心 API 接口和事件监听机制，确保原 Android 项目移植到 OHOS 后无需大量修改代码；\r\n3. 补充 OHOS 平台使用说明，明确插件适用场景及与 mainPage 组件的配合方式；\r\n4. 兼容 Cordova 14.0.1-ohos 版本，插件体积轻量无依赖，集成成本低。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-ionic-keyboard/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       ├── cpp/                  # C++ 原生代码\r\n│       │   └── Keyboard/         # 键盘模块\r\n│       │       ├── CDVIonicKeyboard.cpp  # 键盘功能的 C++ 实现\r\n│       │       └── CDVIonicKeyboard.h    # 键盘功能的头文件\r\n│       └── ets/                  # ArkTS 代码（OpenHarmony API）\r\n│           └── components/       # 组件目录\r\n│               └── Keyboard/     # 键盘组件\r\n│                   └── KeyboardAction.ets  # 键盘动作的 ArkTS 实现\r\n├── www/                          # Web 资源目录\r\n│   └── android/                  # 平台资源\r\n│       └── keyboard.js           # JavaScript 键盘接口（Cordova 桥接层）\r\n├── .gitignore                    # Git 忽略文件配置\r\n├── LICENSE                       # 项目开源许可证\r\n├── OAT.xml                       # OpenHarmony 审核配置文件\r\n├── package.json                  # Node.js 包配置\r\n├── plugin.xml                    # Cordova 插件描述文件（核心配置）\r\n└── README.md                     # 项目说明文档\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\nOHOS Cordova [https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard](https://gitcode.com/CPF-Cordova/cordova-plugin-ionic-keyboard)\r\n\r\nAndroid/iOS：[https://npmjs.com/cordova-plugin-ionic-keyboard/issues](https://npmjs.com/cordova-plugin-ionic-keyboard/issues)\r\n","readmeFilename":"README.md"}