{"_id":"@cordova-ohos/cordova-plugin-app-exit","_rev":"5-cccbbffd9c135347fb3ca6573d1037a3","name":"@cordova-ohos/cordova-plugin-app-exit","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.2":{"name":"@cordova-ohos/cordova-plugin-app-exit","version":"0.0.2","keywords":["cordova","app-exit","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-app-exit@0.0.2","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-app-exit/issues"},"dist":{"shasum":"2686325a78c5d845df9d1236ec82a2f881145522","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-app-exit/-/cordova-plugin-app-exit-0.0.2.tgz","fileCount":8,"integrity":"sha512-ccKFqdkj2Hg3vUXxadVeI9fEEiUVh+5UqXHyeTesf63HK2bhhRpPE8Q/qf1uhpz8VpCbEgFuF+diyMO2ZLbxbQ==","signatures":[{"sig":"MEQCIBulCJ/ImIIRTB0zKTHpZ9RIRrFqGzV8jxpVVK6FIjf9AiA1idx5Eolv0pqEGFGvyxU9Db5uZqLEZo1/ojQTOML8Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25076},"cordova":{"id":"cordova-plugin-app-exit","platforms":["ohos"]},"engines":{"cordovaDependencies":{"0.0.2":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"82b396900b923c4b97d67f5b0554552221b019ec","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-app-exit","type":"git"},"_npmVersion":"10.5.1","description":"Cordova Exit Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-app-exit_0.0.2_1773927366559_0.6483067774069675","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@cordova-ohos/cordova-plugin-app-exit","version":"0.0.3","description":"Cordova Exit Plugin","cordova":{"id":"cordova-plugin-app-exit","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-app-exit"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit/issues"},"keywords":["cordova","app-exit","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"0.0.3":{"@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-app-exit@0.0.3","gitHead":"10d709c45498be27ddb5049b3d1773b714fc7f8a","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-qMtYBA6ImqQoZZydk47q/jCvRjEaz+UiZ9uXAvDK1HXEpm94UfY53qfB62B5iyWFxTGe5dnBPhMzh0RaXhQyBQ==","shasum":"8de3d851c1f0f3ba9da4a75df4d9a4b3bc4c7d2f","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-app-exit/-/cordova-plugin-app-exit-0.0.3.tgz","fileCount":9,"unpackedSize":41563,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/pbzZk0fT7OtNISiFQ9MKiJpYzVMdy5f9xFOjAcWSCQIhAIt6mtWUBZvkm0cZG2WEcT1KqbSglvW357P5OtS8J0Jm"}]},"_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-app-exit_0.0.3_1785160759703_0.6866083985031601"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T13:36:06.468Z","modified":"2026-07-27T13:59:20.051Z","0.0.2":"2026-03-19T13:36:06.703Z","0.0.3":"2026-07-27T13:59:19.843Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","app-exit","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-app-exit"},"description":"Cordova Exit 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-app-exit</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-app-exit@0.0.2](https://www.npmjs.com/package/cordova-plugin-app-exit/v/0.0.2) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-app-exit](#cordova-plugin-app-exit)\r\n  - [简介](#简介)\r\n  - [核心特性](#核心特性)\r\n  - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [1. 基础安装（推荐）](#1-基础安装推荐)\r\n    - [2. 从 GitCode 安装（最新开发版）](#2-从-gitcode-安装最新开发版)\r\n    - [3. 离线安装（本地包）](#3-离线安装本地包)\r\n    - [4. 安装后验证](#4-安装后验证)\r\n    - [5. 卸载插件](#5-卸载插件)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n    - [环境准备](#环境准备)\r\n  - [使用示例](#使用示例)\r\n  - [使用说明](#使用说明)\r\n    - [1. 核心使用场景](#1-核心使用场景)\r\n    - [2. 关键说明](#2-关键说明)\r\n  - [API 参考](#api-参考)\r\n    - [核心 API：退出应用](#核心-api退出应用)\r\n    - [API 说明](#api-说明)\r\n  - [常见问题](#常见问题)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n专注于为混合移动应用提供简洁高效的退出功能，支持多平台适配，助力开发者快速实现应用退出场景，提升用户体验。本文档主要说明 OHOS 平台的使用方法，确保内容贴合平台特性且上下文流畅。\r\n\r\n## 核心特性\r\n\r\n- **跨平台兼容**：统一 Android、iOS 和 OHOS 三平台退出 API，屏蔽系统差异，降低开发成本。\r\n\r\n- **轻量无依赖**：插件体积小巧，无第三方库依赖，不影响应用启动速度和运行性能。\r\n\r\n- **系统规范适配**：遵循各平台退出行为规范，OHOS、Android 支持完全退出（终止进程），iOS 支持退至后台。\r\n\r\n- **调试友好**：开发环境支持日志输出，便于定位异常问题，提升开发效率。\r\n\r\n- **零权限要求**：无需申请额外系统权限，安装后即可直接使用，简化集成流程。\r\n\r\n## 支持平台\r\n\r\n- Android 平台：适配 Android 系统，支持完全退出应用，终止进程。\r\n\r\n- iOS 平台：适配 iOS 系统，支持退至后台（系统默认行为）。\r\n\r\n- OHOS 平台：适配 OHOS 系统，支持完全退出应用，符合系统规范。\r\n\r\n## 下载安装\r\n\r\n通过 hcordova 命令化工具安装，支持基础安装、指定版本安装，仅需针对 OHOS 平台添加对应参数，插件 ID 统一为 cordova-plugin-app-exit。\r\n\r\n### 1. 基础安装（推荐）\r\n\r\n安装最新稳定版，自动集成适配 OHOS 平台的相关配置：\r\n\r\n```bash\r\n# 安装 hcordova 命令化工具\r\nnpm install -g hcordova\r\n\r\n# 基础安装（自动适配当前平台）\r\nhcordova plugin add cordova-plugin-app-exit\r\n\r\n# 仅安装到 OHOS 平台（推荐）\r\nhcordova plugin add cordova-plugin-app-exit --platform ohos\r\n```\r\n\r\n### 2. 从 GitCode 安装（最新开发版）\r\n\r\n如需测试最新功能或修复，可从 GitCode 仓库安装：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit.git@develop --platform ohos\r\n```\r\n\r\n### 3. 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：../Downloads/cordova-plugin-app-exit）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-app-exit  --platform ohos\r\n```\r\n\r\n### 4. 安装后验证\r\n\r\n安装完成后，可通过以下命令验证插件是否成功添加到项目中：\r\n\r\n```bash\r\n# 查看已安装的插件列表，若包含本插件 ID 则表示插件已成功安装\r\nhcordova plugin list\r\n```\r\n\r\n\r\n### 5. 卸载插件\r\n\r\n如需移除插件，执行以下命令：\r\n\r\n```bash\r\n# 全平台卸载\r\nhcordova plugin remove cordova-plugin-app-exit\r\n\r\n# 仅卸载 OHOS 平台插件\r\nhcordova plugin remove cordova-plugin-app-exit --platform ohos\r\n```\r\n\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无需复杂配置，仅需完成以下基础准备，确保插件正常运行：\r\n\r\n1. 确保 Cordova 项目已添加 OHOS 平台（若需在 OHOS 上使用）。\r\n\r\n2. 无需额外配置系统权限，插件安装后即可调用退出 API。\r\n\r\n## 使用示例\r\n\r\n```javascript\r\n// 等待 Cordova 环境完全加载\r\ndocument.addEventListener('deviceready', onDeviceReady, false);\r\n\r\nfunction onDeviceReady() {\r\n    // 给退出按钮绑定点击事件，触发退出\r\n    document.getElementById('exit-btn').addEventListener('click', function() {\r\n        // 核心 API，触发应用退出\r\n        navigator.app.exitApp();\r\n    });\r\n}\r\n```\r\n\r\n## 使用说明\r\n\r\n### 1. 核心使用场景\r\n\r\n适用于应用设置页退出按钮、返回键退出等场景，调用简单，无需额外初始化。\r\n\r\n```javascript\r\nnavigator.app.exitApp();\r\n```\r\n\r\n\r\n### 2. 关键说明\r\n\r\n- OHOS/Android 平台：调用后完全终止应用进程，返回系统桌面。\r\n\r\n- iOS 平台：受系统限制，调用后仅退至后台，无法强制完全退出。\r\n\r\n- 回调说明：OHOS/Android 平台退出后进程终止，同步回调可能无法执行，建议不依赖同步回调处理业务。\r\n\r\n## API 参考\r\n\r\n### 核心 API：退出应用\r\n\r\n触发应用退出，根据平台差异执行对应退出逻辑，无参数、无返回值。\r\n\r\n```javascript\r\n// 核心 API，触发应用退出\r\nnavigator.app.exitApp();\r\n```\r\n\r\n### API 说明\r\n\r\n- 调用时机：必须在 deviceready 事件触发后调用，否则会提示插件未初始化。\r\n\r\n- 平台差异：OHOS/Android 终止进程，iOS 退至后台。\r\n\r\n- 错误处理：调用失败时会抛出明确错误提示，便于定位问题。\r\n\r\n## 常见问题\r\n\r\n- 问题 1：OHOS 平台调用 exitApp() 无响应？\r\n解决：检查插件是否安装成功（hcordova plugin list 确认），重新安装插件并确保 OHOS 平台添加正确。\r\n\r\n- 问题 2：iOS 平台未完全退出？\r\n解决：iOS 系统不支持强制完全退出，退至后台为正常行为，无需额外处理。\r\n\r\n- 问题 3：deviceready 未触发导致 API 调用失败？\r\n解决：检查 Cordova 环境配置，重新构建项目并重启应用。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-app-exit/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       └── cpp/                  # C++ 原生代码\r\n│           └── Device/           # 设备相关模块\r\n│               ├── ExitApp.cpp   # 退出应用功能的 C++ 实现\r\n│               └── ExitApp.h     # 退出应用功能的头文件\r\n├── www/                          # Web 资源目录\r\n│   └── ExitApp.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-app-exit/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n- OHOS 插件仓库：[CPF-Cordova/cordova-plugin-app-exit](https://gitcode.com/CPF-Cordova/cordova-plugin-app-exit)\r\n\r\n- Cordova 官方文档：[Cordova Documentation](https://cordova.apache.org/)\r\n\r\n- OHOS 开发文档：[OpenHarmony 官方文档](https://docs.openharmony.cn/)\r\n","readmeFilename":"README.md"}