{"_id":"@cordova-ohos/cordova-plugin-broadcaster","_rev":"5-e0aff650103e463babf43d6108ec97ad","name":"@cordova-ohos/cordova-plugin-broadcaster","dist-tags":{"latest":"5.3.1"},"versions":{"5.3.0":{"name":"@cordova-ohos/cordova-plugin-broadcaster","version":"5.3.0","keywords":["cordova","broadcaster","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-broadcaster@5.3.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-broadcaster/issues"},"dist":{"shasum":"9d1b3503cc984f501345beeb7f72ac764f138c76","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-broadcaster/-/cordova-plugin-broadcaster-5.3.0.tgz","fileCount":8,"integrity":"sha512-X1eDCvZJoHG5k+1j8w0BS9qALF7JFcU79fHFUjzsy9VB3DaTAjy/vxU5jBuIxiI1I5rnR1WB4HrcoMzYZdr/Kg==","signatures":[{"sig":"MEYCIQC4DieDNGQ3IDZLgbHusAgWxElGlyErLJpmdNJL/qbDiwIhAOAywTsqze/6LHDHGlVgCdTGCjnT7tlniu8pITHEVaVQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40189},"cordova":{"id":"cordova-plugin-broadcaster","platforms":["ohos"]},"engines":{"cordovaDependencies":{"5.3.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"20fc7ccb3d164e908e23758555d6aa1dc94fb44f","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-broadcaster","type":"git"},"_npmVersion":"10.5.1","description":"Cordova broadcaster Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-broadcaster_5.3.0_1773928359152_0.14305423206133727","host":"s3://npm-registry-packages-npm-production"}},"5.3.1":{"name":"@cordova-ohos/cordova-plugin-broadcaster","version":"5.3.1","description":"Cordova broadcaster Plugin","cordova":{"id":"cordova-plugin-broadcaster","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-broadcaster"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-broadcaster/issues"},"keywords":["cordova","broadcaster","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"5.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-broadcaster@5.3.1","gitHead":"82efbedd4b2425feb7f673eee58aabe4bd1017e2","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-oa31N7mZelyCR+npqFEGkjV/9fgYgFzPzhYmL5j8bwGNz60xWQ7Uoen3i9Y7MO/T990Clxu0klgnCEKQmsJDgQ==","shasum":"4c040a33a8ee4d1c6b00b42c5293c5fe9f29e10b","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-broadcaster/-/cordova-plugin-broadcaster-5.3.1.tgz","fileCount":9,"unpackedSize":57862,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCRSz4pzZwAlN+NxBumcXdmBg+BGBQNhoZKBfkFACljGAIgYXzDp7oHEhjnieApwGORFqdO4jBdBoPtFYjw3FiHhqE="}]},"_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-broadcaster_5.3.1_1785159850082_0.2768179596600506"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T13:52:39.049Z","modified":"2026-07-27T13:44:10.436Z","5.3.0":"2026-03-19T13:52:39.290Z","5.3.1":"2026-07-27T13:44:10.200Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-broadcaster/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","broadcaster","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-broadcaster"},"description":"Cordova broadcaster 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-broadcaster</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-broadcaster@5.3.0](https://www.npmjs.com/package/cordova-plugin-broadcaster/v/5.3.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-broadcaster](#cordova-plugin-broadcaster)\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    - [详细 API 说明](#详细-api-说明)\r\n      - [1. 注册事件 API](#1-注册事件-api)\r\n        - [参数说明](#参数说明)\r\n        - [使用示例](#使用示例-1)\r\n      - [2. 发送事件 API](#2-发送事件-api)\r\n        - [参数说明](#参数说明-1)\r\n        - [使用示例](#使用示例-2)\r\n      - [3. 注销事件 API](#3-注销事件-api)\r\n        - [参数说明](#参数说明-2)\r\n        - [使用示例](#使用示例-3)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-broadcaster` 是 Harmony Cordova 生态系统中一款核心插件，专为 Cordova/PhoneGap 应用设计的跨平台广播通信插件，支持 iOS 和 Android 平台实现应用内组件间、应用与原生系统间的消息传递，适配各系统原生广播机制，适用于模块化应用通信、原生事件监听、跨页面数据同步等场景。\r\n\r\n- 跨层通信：支持 JavaScript 层与 iOS/Android/OHOS 原生层双向通信，原生层与 JS 层可相互发送广播触发逻辑\r\n\r\n- 应用内通信：JS 层内部不同页面、模块间可通过广播传递消息，无需依赖全局变量或页面参数\r\n\r\n- 复杂数据传递：支持字符串、数字、布尔值、数组、对象等多种类型数据，自动处理序列化与反序列化\r\n\r\n- 广播标识自定义：支持自定义事件名称，建议采用“包名.事件名”格式避免冲突\r\n\r\n- 监听管理：支持注册、注销指定/所有监听，避免内存泄漏\r\n\r\n- 回调支持：发送广播有成功/失败回调，监听广播可实时获取消息内容\r\n\r\n- 无侵入性：集成后不影响原有应用逻辑，API 简洁易集成\r\n\r\n## 支持平台\r\n\r\n- **Android**：7.0+（支持 Android 10+ 后台广播限制，适配 Android 13+ 权限管理）\r\n\r\n- **iOS**：11.0+（支持 iPhone、iPad 设备，适配 iOS 16+ 通知权限新特性）\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\n# 全平台安装插件\r\nhcordova plugin add cordova-plugin-broadcaster\r\n\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-broadcaster --platform ohos\r\n\r\n# 指定版本安装\r\nhcordova plugin add cordova-plugin-broadcaster@1.0.0 --platform ohos\r\n\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-broadcaster.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-broadcaster.git@develop --platform ohos\r\n\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：../Downloads/cordova-plugin-broadcaster）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-broadcaster  --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-broadcaster \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-broadcaster --platform ohos\r\n\r\n```\r\n\r\n## 约束与限制\r\n\r\n* 依赖插件：无强制依赖，插件集成后不影响原有应用逻辑，可直接使用\r\n\r\n* 广播事件名称建议采用“包名.事件名”格式（如 \"com.example.app.USER_LOGIN\"），避免与系统广播或不相关插件广播冲突\r\n\r\n* Android 平台需注意后台广播限制（Android 10+），系统级广播需申请对应权限；iOS 平台需适配通知权限新特性（iOS 16+）\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```js\r\n// 1. 注册广播监听\r\nvar isGlobal = true\r\nvar listener = function( e ) {\r\n    console.log( \"CONNECTIVITY_CHANGE: \" + JSON.stringify(e)  );\r\n    document.getElementById(\"writeAppEventInfo\").innerHTML = \"收到监听:\" + JSON.stringify(e);\r\n}\r\n\r\nfunction RegisterWatcher() {\r\n    window.broadcaster.addEventListener('CONNECTIVITY', isGlobal, listener);\r\n}\r\n\r\n// 2. 发送广播事件\r\nfunction WriteAppEvent( ) {\r\n    window.broadcaster.fireNativeEvent(\"CONNECTIVITY\", isGlobal, \"chenlh\", function() {\r\n        console.log( \"event success!\" );\r\n    },function(){\r\n        console.log( \"event failed!\" );\r\n    });\r\n}\r\n\r\n// 3. 注销广播监听\r\nfunction UnRegisterWatcher() {\r\n    window.broadcaster.removeEventListener('CONNECTIVITY', listener);\r\n}\r\n\r\n```\r\n\r\n## 使用说明\r\n\r\n### 详细 API 说明\r\n\r\n插件核心 API 挂载在 `window.broadcaster` 对象上，支持注册监听、发送事件、注销监听三大核心操作，适配跨平台广播通信需求。\r\n\r\n#### 1. 注册事件 API\r\n\r\n用于注册广播事件监听，可指定是否全局监听，接收广播消息并执行回调逻辑。\r\n\r\nAPI 格式：window.broadcaster.addEventListener (eventname, globalFlagOrListener, listener);\r\n\r\n##### 参数说明\r\n\r\n- **eventname**：事件名称（自定义，建议采用“包名.事件名”格式避免冲突）\r\n\r\n- **globalFlagOrListener**：是否全局监听，设置为 true\r\n\r\n- **listener**：监听函数，接收广播传递的消息参数 e\r\n\r\n##### 使用示例\r\n\r\n```js\r\nvar isGlobal = true\r\nvar listener = function( e ) {\r\n    console.log( \"CONNECTIVITY_CHANGE: \" + JSON.stringify(e)  );\r\n    document.getElementById(\"writeAppEventInfo\").innerHTML = \"收到监听:\" + JSON.stringify(e);\r\n}\r\n\r\nfunction RegisterWatcher() {\r\n    window.broadcaster.addEventListener('CONNECTIVITY', isGlobal, listener);\r\n}\r\n\r\n```\r\n\r\n#### 2. 发送事件 API\r\n\r\n用于发送广播事件，可指定是否全局发送、携带数据，并设置成功/失败回调。\r\n\r\nAPI 格式：window.broadcaster.fireNativeEvent(eventname, globalFlagOrData, data, success, error)\r\n\r\n##### 参数说明\r\n\r\n- **eventname**：事件名称（需与监听的事件名称一致）\r\n\r\n- **globalFlagOrListener**：是否全局监听，设置为 true\r\n\r\n- **data**：发送的数据（支持字符串、数字、布尔值、数组、对象等多种类型）\r\n\r\n- **success**：发送成功的回调函数\r\n\r\n- **error**：发送失败的回调函数\r\n\r\n##### 使用示例\r\n\r\n```js\r\nfunction WriteAppEvent( ) {\r\n    window.broadcaster.fireNativeEvent(\"CONNECTIVITY\", isGlobal, \"chenlh\", function() {\r\n        console.log( \"event success!\" );\r\n    },function(){\r\n        console.log( \"event failed!\" );\r\n    });\r\n}\r\n\r\n```\r\n\r\n#### 3. 注销事件 API\r\n\r\n用于注销指定的广播事件监听，避免内存泄漏，适用于无需继续监听的场景。\r\n\r\nAPI 格式：window.broadcaster.removeEventListener(eventname, listener)\r\n\r\n##### 参数说明\r\n\r\n- **eventname**：事件名称（需与注册时的事件名称一致）\r\n\r\n- **listener**：注册时使用的监听函数（需与注册时的函数一致，否则无法成功注销）\r\n\r\n##### 使用示例\r\n\r\n```js\r\nfunction UnRegisterWatcher() {\r\n    window.broadcaster.removeEventListener('CONNECTIVITY', listener);\r\n}\r\n\r\n```\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-broadcaster/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       └── cpp/                  # C++ 原生代码\r\n│           └── Broadcaster/      # 广播模块\r\n│               ├── CDVBroadcaster.cpp  # 广播功能的 C++ 实现\r\n│               └── CDVBroadcaster.h    # 广播功能的头文件\r\n├── www/                          # Web 资源目录\r\n│   └── JS broadcaster.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-broadcaster/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-broadcaster/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n- Android 和 iOS：[cordova-plugin-broadcaster 官方指南](https://www.npmjs.com/package/cordova-plugin-broadcaster)\r\n\r\n- GitCode 仓库：[CPF-Cordova/cordova-plugin-broadcaster](https://gitcode.com/CPF-Cordova/cordova-plugin-broadcaster)\r\n","readmeFilename":"README.md"}