{"_id":"@cordova-ohos/cordova-plugin-insomnia","_rev":"3-f0b3a9eac471cfc7bbe7adb1ca084ac2","name":"@cordova-ohos/cordova-plugin-insomnia","dist-tags":{"latest":"4.3.1"},"versions":{"4.3.0":{"name":"@cordova-ohos/cordova-plugin-insomnia","version":"4.3.0","keywords":["cordova","insomnia","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-insomnia@4.3.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-insomnia/issues"},"dist":{"shasum":"a33a0844200eef4b3c7f6ed804d2642dcc8ac59b","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-insomnia/-/cordova-plugin-insomnia-4.3.0.tgz","fileCount":9,"integrity":"sha512-2UyY+2u4tOJOfWXpYbtxMDowQp7h5ug1WdJNJP9+jdbaKR2rBnV0ElgzGpnKJhANwDKQK0sBaD85KxCRYNUgNA==","signatures":[{"sig":"MEQCIGyCjHe7qXJztlWsO8q0matVyPGFoiYBRrZOIWfOlcWxAiBBHaOwzM/GY9jQZZhBL/jUCuN3tXUqG6ZNv1PlFM+D5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30822},"cordova":{"id":"cordova-plugin-insomnia","platforms":["ohos"]},"engines":{"cordovaDependencies":{"4.3.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"3c416f0bbb87960f2c313bf5ea019413092282c0","_npmUser":{"name":"wanpengsz","email":"wanpengsz@163.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-insomnia","type":"git"},"_npmVersion":"9.6.2","description":"Cordova Insomnia Plugin","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-insomnia_4.3.0_1773996267143_0.6133347892854779","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@cordova-ohos/cordova-plugin-insomnia","version":"4.3.1","description":"Cordova Insomnia Plugin","cordova":{"id":"cordova-plugin-insomnia","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-insomnia"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia/issues"},"keywords":["cordova","insomnia","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"4.3.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-insomnia@4.3.1","gitHead":"f6c954bf7265a9dfa5f537ae9de0328514dc6b36","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-Uyj+t2PjqhjLupk7tXAFyTwxGgShgcWib/owYzUxTFXSDWLli23mD6Qc47GK2WZZwZMXNB9xZle5obU+ipMPtQ==","shasum":"982414e46236748ebe0a07338eaddcae43d1b2a7","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-insomnia/-/cordova-plugin-insomnia-4.3.1.tgz","fileCount":10,"unpackedSize":48710,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDA/8T5gx6qYH0ytOgXOfIoKyRNww4+9fYaxUo/Qk1dJgIhALhhS6woj7O1qrxrtamkpEJSUaJxwQzwzw2udvGVXYyX"}]},"_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-insomnia_4.3.1_1785147103991_0.07848379315767096"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T08:44:27.076Z","modified":"2026-07-27T10:11:44.297Z","4.3.0":"2026-03-20T08:44:27.314Z","4.3.1":"2026-07-27T10:11:44.117Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","insomnia","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-insomnia"},"description":"Cordova Insomnia 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-insomnia</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-insomnia@4.3.0](https://www.npmjs.com/package/cordova-plugin-insomnia/v/4.3.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-insomnia](#cordova-plugin-insomnia)\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  - [使用示例](#使用示例)\r\n    - [示例 1：基础使用](#示例-1基础使用)\r\n  - [使用说明](#使用说明)\r\n    - [核心 API](#核心-api)\r\n      - [1. 开启屏幕常亮](#1-开启屏幕常亮)\r\n        - [方法签名](#方法签名)\r\n        - [参数说明](#参数说明)\r\n      - [2. 关闭屏幕常亮](#2-关闭屏幕常亮)\r\n        - [方法签名](#方法签名-1)\r\n        - [参数说明](#参数说明-1)\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-insomnia` 是 Harmony Cordova 生态系统中一款核心插件，为 Cordova 应用提供屏幕常亮控制能力，支持 Android 和 iOS 双平台，可灵活开启或关闭屏幕常亮模式。本文档主要说明在 OHOS 系统中的应用。在 Cordova 应用开发过程中，部分场景（如视频播放、扫码支付、文档阅读、导航等）需要保持屏幕持续亮屏，避免因系统自动休眠影响用户体验。该插件通过封装原生平台 API，为开发者提供了极简的屏幕常亮控制接口，无需深入原生开发即可实现屏幕常亮的开启、关闭及状态查询功能，且适配主流 Android、iOS 和 OHOS 系统版本。\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-insomnia\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-insomnia --platform ohos\r\n\r\n# 指定版本安装\r\nhcordova plugin add cordova-plugin-insomnia@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\n# 开发版安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia.git --platform ohos\r\n```\r\n\r\n### 安装指定版本\r\n\r\n仅为 OHOS 平台安装指定版本插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台并指定版本\r\nhcordova plugin add cordova-plugin-insomnia@1.0.0 --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：~/Downloads/cordova-plugin-insomnia）\r\n# 执行离线安装\r\nhcordova plugin add ~/Downloads/cordova-plugin-insomnia --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```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-insomnia \r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-insomnia --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n1. 插件仅控制应用内屏幕常亮状态，退出应用后，屏幕休眠策略恢复系统默认设置；\r\n2. 需确保应用拥有屏幕控制相关权限（OHOS 平台无需额外手动配置权限，插件已集成相关配置）；\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插件在全局对象 `window.insomnia` 下暴露所有功能接口，所有 API 均支持 Promise 和传统回调函数两种调用方式，满足不同开发习惯需求。\r\n\r\n### 示例 1：基础使用\r\n\r\n在页面加载时开启屏幕常亮，离开页面时关闭，适配单页面应用场景。\r\n\r\n```javascript\r\n// 设置屏幕常亮\r\nfunction setWindowKeepScreenOn() {\r\n    window.plugins.insomnia.keepAwake(function(){\r\n        document.getElementById(\"keepOn1\").innerHTML = \"设置成功\";\r\n    });\r\n}\r\n\r\n// 关闭屏幕常亮\r\nfunction setWindowKeepScreenOff() {\r\n    window.plugins.insomnia.allowSleepAgain(function(){\r\n        document.getElementById(\"keepOn2\").innerHTML = \"设置成功\";\r\n    });\r\n}\r\n```\r\n\r\n## 使用说明\r\n\r\n### 核心 API\r\n\r\n#### 1. 开启屏幕常亮\r\n\r\n调用该方法后，应用将保持屏幕常亮，直至调用关闭方法或应用退出前台。\r\n\r\n##### 方法签名\r\n\r\n```javascript\r\n// 回调函数方式\r\nwindow.plugins.insomnia.keepAwake(successCallback, errorCallback)\r\n```\r\n\r\n##### 参数说明\r\n\r\n| 参数名 | 类型 | 说明 |\r\n|---|---|---|\r\n| successCallback | Function | 成功回调，无参数，仅表示常亮模式已开启 |\r\n| errorCallback | Function | 失败回调，参数为错误对象（含 code 和 message 属性） |\r\n\r\n#### 2. 关闭屏幕常亮\r\n\r\n调用该方法后，应用将恢复系统默认的屏幕休眠策略。\r\n\r\n##### 方法签名\r\n\r\n```javascript\r\n// 回调函数方式\r\nwindow.plugins.insomnia.allowSleepAgain(successCallback, errorCallback)\r\n```\r\n\r\n##### 参数说明\r\n\r\n| 参数名 | 类型 | 说明 |\r\n|---|---|---|\r\n| successCallback | Function | 成功回调，无参数，仅表示常亮模式已关闭 |\r\n| errorCallback | Function | 失败回调，参数为错误对象（含 code 和 message 属性） |\r\n\r\n### 配置参数\r\n\r\n无额外全局配置参数，API 调用无需传入额外配置，直接调用即可实现对应功能。\r\n\r\n### 使用注意\r\n\r\n1. 建议在需要常亮的场景（如视频播放、扫码）开启屏幕常亮，场景结束后及时关闭，避免不必要的耗电；\r\n2. 若调用 API 失败，可通过错误回调的 code 和 message 属性排查问题（常见错误为插件未正确安装、平台适配异常）；\r\n3. 支持 window.insomnia 和 window.plugins.insomnia 两种调用方式，建议项目中统一使用一种方式。\r\n\r\n## 新增特性\r\n\r\n1. 适配 OHOS 5.0+ 系统，严格遵循 OpenHarmony 开发规范；\r\n2. 保留原有插件核心 API 接口，支持 Promise 和传统回调两种调用方式，确保跨平台一致性；\r\n3. 完善 OHOS 平台安装、卸载及使用说明，补充基础使用示例，提升开发体验；\r\n4. 兼容 Cordova 14.0.1-ohos 版本，无需额外配置即可正常集成使用。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-insomnia/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       ├── cpp/                  # C++ 原生代码\r\n│       │   └── Insomnia/         # 保持唤醒模块\r\n│       │       ├── Insomnia.cpp  # 保持屏幕唤醒功能的 C++ 实现\r\n│       │       └── Insomnia.h    # 保持屏幕唤醒功能的头文件\r\n│       └── ets/                  # ArkTS 代码（OpenHarmony API）\r\n│           └── components/       # 组件目录\r\n│               └── PluginAction/ # 插件动作组件\r\n│                   └── KeepScreenOn.ets  # 保持屏幕常亮的 ArkTS 实现\r\n├── www/                          # Web 资源目录\r\n│   └── Insomnia.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-insomnia/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n1. **OHOS**：[https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia](https://gitcode.com/CPF-Cordova/cordova-plugin-insomnia)\r\n\r\n2. **Android、iOS 插件说明**：[https://www.npmjs.com/package/cordova-plugin-insomnia](https://www.npmjs.com/package/cordova-plugin-insomnia)\r\n","readmeFilename":"README.md"}