{"_id":"@cordova-ohos/cordova-plugin-ble-central","_rev":"5-1da3e1ab6e349de94653b9c410feb852","name":"@cordova-ohos/cordova-plugin-ble-central","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.0":{"name":"@cordova-ohos/cordova-plugin-ble-central","version":"2.0.0","keywords":["cordova","ble-central","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-ble-central@2.0.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-ble-central/issues"},"dist":{"shasum":"097e132b7dce4d27916bfcc750dd1a4a82af1794","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-ble-central/-/cordova-plugin-ble-central-2.0.0.tgz","fileCount":9,"integrity":"sha512-dHoh4r1aSjSkyBYgcZqgDMOvkcBQPe0d9qBaIJ8MhlTTX7tI86jhfeAZUnH2hWBjCoFhp6tK7OJh5UIs6ebkeg==","signatures":[{"sig":"MEQCICcCQUNX8ftoEEnCL5PIbQFYCIfhrq9k+DkSb1OMHmo9AiB8pkrCfs7m51+5g1sj6MQEOVY2lD/hmf42igv1mS9Idw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63238},"cordova":{"id":"cordova-plugin-ble-central","platforms":["ohos"]},"engines":{"cordovaDependencies":{"2.0.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"7f4463bf8a5603d699947ee9b600aa4af059eecb","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-ble-central","type":"git"},"_npmVersion":"10.5.1","description":"Cordova alipay Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-ble-central_2.0.0_1773928233871_0.20360070982071776","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@cordova-ohos/cordova-plugin-ble-central","version":"2.0.1","description":"Cordova Ble Central","cordova":{"id":"cordova-plugin-ble-central","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-ble-central"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-ble-central/issues"},"keywords":["cordova","ble-central","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"2.0.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-ble-central@2.0.1","gitHead":"b887d2bb61fc8b7aeb5bc63f1ee220a2f988c04e","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-M1kNDGNIlqugu0q9zN56hiGuGP2/574h06Ykf2UIOscqgUH0Rzi0t9eMQVKMR2gDQ7s+WoWV2PUw+Z098eUwPg==","shasum":"344f5acf3fb8b4a2ff0f6d8cec99828e9505ea06","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-ble-central/-/cordova-plugin-ble-central-2.0.1.tgz","fileCount":10,"unpackedSize":88994,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCCkHmt7tynxCI+m0OW7l3ZWnuDb00rpS0ZNJ80eySnkgIhAJNAmCbKZac1LJuQvYsnRU7aVSiJlz4wNxDusMp1j4Bq"}]},"_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-ble-central_2.0.1_1785158939472_0.09999709618018882"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T13:50:33.813Z","modified":"2026-07-27T13:28:59.827Z","2.0.0":"2026-03-19T13:50:34.011Z","2.0.1":"2026-07-27T13:28:59.621Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-ble-central/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","ble-central","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-ble-central"},"description":"Cordova Ble Central","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-ble-central</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-ble-central@2.0.0](https://www.npmjs.com/package/cordova-plugin-ble-central/v/2.0.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-ble-central](#cordova-plugin-ble-central)\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      - [OHOS 配置](#ohos-配置)\r\n      - [权限说明](#权限说明)\r\n  - [使用示例](#使用示例)\r\n  - [使用说明](#使用说明)\r\n    - [核心 API 说明](#核心-api-说明)\r\n      - [1. 初始化与权限检查](#1-初始化与权限检查)\r\n        - [1.1 检查蓝牙是否可用](#11-检查蓝牙是否可用)\r\n      - [2. 设备扫描](#2-设备扫描)\r\n        - [2.1 开始扫描设备](#21-开始扫描设备)\r\n        - [2.2 停止扫描](#22-停止扫描)\r\n      - [3. 设备连接与管理](#3-设备连接与管理)\r\n        - [3.1 连接设备](#31-连接设备)\r\n        - [3.2 断开连接](#32-断开连接)\r\n        - [3.3 检查连接状态](#33-检查连接状态)\r\n      - [4. 写入特征值](#4-写入特征值)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-ble-central` 是 Harmony Cordova 生态系统中一款核心插件，专为 Cordova/PhoneGap 应用设计，支持 iOS、Android 和 OpenHarmony 设备作为 BLE 中心设备，实现对 BLE 从设备的扫描、连接、数据读写、特征值监听等核心功能，适用于智能硬件交互、物联网数据采集等场景。\r\n\r\n- BLE 设备扫描：支持指定服务 UUID 过滤、设置扫描时长，获取设备名称、UUID、信号强度等信息\r\n\r\n- 设备连接管理：支持连接、自动重连、断开连接及连接状态查询\r\n\r\n- 服务与特征值操作：支持发现服务和特征值、读取及写入特征值（普通写入/无响应写入）\r\n\r\n- 数据监听：实时监听特征值变化，接收从设备推送的数据\r\n\r\n- MTU 配置：支持获取和设置 MTU，优化大数据传输效率\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\n# 全平台安装插件\r\nhcordova plugin add cordova-plugin-ble-central\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-ble-central --platform ohos\r\n\r\n# 指定版本安装\r\nhcordova plugin add cordova-plugin-ble-central@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-ble-central.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-ble-central.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-ble-central）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-ble-central  --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-ble-central \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-ble-central --platform ohos\r\n\r\n```\r\n\r\n## 约束与限制\r\n\r\n* 依赖插件：无强制依赖，若需实现 GBK 编码转换（如小票打印场景），可引入 GBK 转换 JS 文件（https://github.com/cnwhy/GBK.js）\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\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\r\n### 平台配置\r\n\r\n插件安装后需根据目标平台进行必要配置，确保蓝牙功能正常运行，以下重点说明 OHOS 平台的配置要求（Android、iOS 平台配置参考官方指南）。\r\n\r\n#### OHOS 配置\r\n\r\n使用该插件需要配置获取蓝牙相关权限，否则无法正常使用蓝牙功能，需在应用配置文件中添加以下权限配置：\r\n\r\n```json\r\n\"requestPermissions\": [\r\n   {\r\n    \"name\": \"ohos.permission.ACCESS_BLUETOOTH\",\r\n    \"reason\": \"$string:accessBleInfo\",\r\n    \"usedScene\": {\r\n        \"abilities\": [\r\n        \"EntryAbility\"\r\n        ],\r\n        \"when\": \"always\"\r\n    }\r\n    },\r\n    {\r\n    \"name\": \"ohos.permission.DISCOVER_BLUETOOTH\",\r\n    \"reason\": \"$string:accessBleInfo\",\r\n    \"usedScene\": {\r\n        \"abilities\": [\r\n        \"EntryAbility\"\r\n        ],\r\n        \"when\": \"always\"\r\n    }\r\n    },\r\n    {\r\n    \"name\": \"ohos.permission.USE_BLUETOOTH\",\r\n    \"reason\": \"$string:accessBleInfo\",\r\n    \"usedScene\": {\r\n        \"abilities\": [\r\n        \"EntryAbility\"\r\n        ],\r\n        \"when\": \"always\"\r\n    }\r\n    }\r\n]\r\n```\r\n\r\n#### 权限说明\r\n\r\n- ohos.permission.ACCESS_BLUETOOTH：允许应用接入蓝牙并使用蓝牙功能。\r\n\r\n- ohos.permission.DISCOVER_BLUETOOTH：允许应用配置本地蓝牙，查找远端设备且与之配对连接。\r\n\r\n- ohos.permission.USE_BLUETOOTH：允许应用查看蓝牙的配置，包括蓝牙名称、蓝牙设备类型、开关状态等。\r\n\r\n备注：权限配置中的 $string:accessBleInfo 需在字符串资源文件中定义，说明申请权限的原因（如“使用蓝牙打印小票”），符合 OHOS 权限申请规范。\r\n\r\n## 使用示例\r\n\r\n```js\r\n// 1. 检查蓝牙是否可用\r\nfunction isEnabled() {\r\n    ble.isEnabled(function() {\r\n        document.getElementById(\"isEnabled\").innerHTML = \"蓝牙已经启用\";\r\n    },function(){\r\n        document.getElementById(\"isEnabled\").innerHTML = \"蓝牙未启用\";\r\n    })\r\n}\r\n\r\n// 2. 开始扫描设备\r\nfunction bluetoothScan() {\r\n    var result = \"\";\r\n    ble.startScanWithOptions([],\r\n        {reportDuplicates: false},\r\n        function(device) {\r\n            if(result.indexOf(device.id) < 0) {\r\n                result += device.name;\r\n                result += device.id;\r\n                result += \"<br />\";\r\n                document.getElementById(\"bleInfo\").innerHTML = result;\r\n            }\r\n        },\r\n        function(info){\r\n            document.getElementById(\"bleInfo\").innerHTML = \"扫描失败\";\r\n        }\r\n    );\r\n}\r\n\r\n// 3. 停止扫描\r\nfunction stopScan() {\r\n    ble.stopScan(function(){\r\n        document.getElementById(\"stopScanInfo\").innerHTML = \"关闭扫描\";\r\n    },function(){\r\n        document.getElementById(\"stopScanInfo\").innerHTML = \"关闭失败\";\r\n    });\r\n}\r\n\r\n// 4. 连接设备（设备 ID 需替换为实际扫描获取的 ID）\r\nfunction bluetoothConnect() {\r\n    var uuid = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\n    ble.connect(uuid, function(){\r\n        document.getElementById(\"connectInfo\").innerHTML = \"连接成功\";\r\n    }, function(){\r\n        document.getElementById(\"connectInfo\").innerHTML = \"连接失败\";\r\n    });\r\n}\r\n\r\n// 5. 断开连接\r\nfunction bluetoothDisConnect() {\r\n    var address = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\n    ble.disconnect(address, function(){\r\n        document.getElementById(\"disconnectInfo\").innerHTML = \"关闭成功\";\r\n    },function(){\r\n        document.getElementById(\"disconnectInfo\").innerHTML = \"关闭失败\";\r\n    });\r\n}\r\n\r\n```\r\n\r\n## 使用说明\r\n\r\n### 核心 API 说明\r\n\r\n插件挂载在 `cordova.plugins.ble` 对象上，所有 API 均为异步操作，支持 Promise 链式调用或回调函数两种方式。\r\n\r\n#### 1. 初始化与权限检查\r\n\r\n##### 1.1 检查蓝牙是否可用\r\n\r\n检查设备蓝牙硬件是否可用且已开启。\r\n\r\n```js\r\nfunction isEnabled() {\r\n    ble.isEnabled(function() {\r\n        document.getElementById(\"isEnabled\").innerHTML = \"蓝牙已经启用\";\r\n    },function(){\r\n        document.getElementById(\"isEnabled\").innerHTML = \"蓝牙未启用\";\r\n    })\r\n}\r\n\r\n```\r\n\r\n#### 2. 设备扫描\r\n\r\n##### 2.1 开始扫描设备\r\n\r\n扫描蓝牙，无权限时弹窗授权；返回设备名称和设备 ID。\r\n\r\n```js\r\nfunction bluetoothScan() {\r\n    var result = \"\";\r\n    ble.startScanWithOptions([],\r\n        {reportDuplicates: false},\r\n        function(device) {\r\n            if(result.indexOf(device.id) < 0) {\r\n                result += device.name;\r\n                result += device.id;\r\n                result += \"<br />\";\r\n                document.getElementById(\"bleInfo\").innerHTML = result;\r\n            }\r\n        },\r\n        function(info){\r\n            document.getElementById(\"bleInfo\").innerHTML = \"扫描失败\";\r\n        }\r\n    );\r\n}\r\n\r\n```\r\n\r\n##### 2.2 停止扫描\r\n\r\n手动停止持续扫描。\r\n\r\n```js\r\nfunction stopScan() {\r\n    ble.stopScan(function(){\r\n        document.getElementById(\"stopScanInfo\").innerHTML = \"关闭扫描\";\r\n    },function(){\r\n        document.getElementById(\"stopScanInfo\").innerHTML = \"关闭失败\";\r\n    });\r\n}\r\n\r\n```\r\n\r\n#### 3. 设备连接与管理\r\n\r\n##### 3.1 连接设备\r\n\r\n通过设备 ID（扫描时获取的 id 字段）连接 BLE 从设备。\r\n\r\n```js\r\nfunction bluetoothConnect() {\r\n    var uuid = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\n    ble.connect(uuid, function(){\r\n        document.getElementById(\"connectInfo\").innerHTML = \"连接成功\";\r\n    }, function(){\r\n        document.getElementById(\"connectInfo\").innerHTML = \"连接失败\";\r\n    });\r\n}\r\n\r\n```\r\n\r\n##### 3.2 断开连接\r\n\r\n断开与指定设备的连接。\r\n\r\n```js\r\nfunction bluetoothDisConnect() {\r\n    var address = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\n    ble.disconnect(address, function(){\r\n        document.getElementById(\"disconnectInfo\").innerHTML = \"关闭成功\";\r\n    },function(){\r\n        document.getElementById(\"disconnectInfo\").innerHTML = \"关闭失败\";\r\n    });\r\n}\r\n\r\n```\r\n\r\n##### 3.3 检查连接状态\r\n\r\n检查指定设备是否处于连接状态。\r\n\r\n```js\r\nfunction isBluetoothConnect() {\r\n    var address = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\n    ble.isConnected(address, function(){\r\n        document.getElementById(\"isConnectInfo\").innerHTML = \"连接成功\";\r\n    },function(){\r\n        document.getElementById(\"isConnectInfo\").innerHTML = \"未连接\";\r\n    });\r\n}\r\n\r\n```\r\n\r\n#### 4. 写入特征值\r\n\r\n向指定设备、服务、特征值写入数据（支持普通写入和无响应写入），以下以小票打印机为例（需导入 GBK 转换 JS 文件：https://github.com/cnwhy/GBK.js）。\r\n\r\n```js\r\n// 蓝牙打印特征值写入数据\r\nvar address = \"F6:AC:52:47:E8:72\";// 测试使用，实际以开发者连接的蓝牙为准\r\nvar service_uuid = \"49535343-FE7D-4AE5-8FA9-9FAFD205E455\";\r\nvar characteristic_uuid = \"49535343-8841-43F4-A8D4-ECBE34729BB3\";\r\n\r\nvar cmd = new _EscCommand(true);\r\nvar content = cmd.TextAlignLeft + \"打印测试\";\r\ncontent += \"\\n\\n\\n\\n\";\r\ncontent += cmd.CutAllPage;\r\nvar uint8Array = gbkStringToUint8Array(content);\r\n\r\nble.write(address, service_uuid, characteristic_uuid, uint8Array.buffer, function(){\r\n    document.getElementById(\"writeInfo\").innerHTML = \"打印小票成功\";\r\n},function(){\r\n    document.getElementById(\"writeInfo\").innerHTML = \"打印小票失败\";\r\n});\r\n\r\n// 蓝牙打印指令\r\nfunction _EscCommand() {\r\n    this.ESC = \"\\u001B\";\r\n    this.GS = \"\\u001D\";\r\n    this.InitializePrinter = this.ESC + \"@\";\r\n    this.BoldOn = this.ESC + \"E\" + \"\\u0001\";\r\n    this.BoldOff = this.ESC + \"E\" + \"\\0\";\r\n    this.DoubleHeight = this.GS + \"!\" + \"\\u0001\";\r\n    this.DoubleWidth = this.GS + \"!\" + \"\\u0010\";\r\n    this.DoubleOn = this.GS + \"!\" + \"\\u0011\"; // 2x sized text (double-high + double-wide)\r\n    this.DoubleOff = this.GS + \"!\" + \"\\0\";\r\n    this.PrintAndFeedMaxLine = this.ESC + \"J\" + \"\\u00FF\"; // 打印并走纸 最大 255\r\n    this.TextAlignLeft = this.ESC + \"a\" + \"0\";\r\n    this.TextAlignCenter = this.ESC + \"a\" + \"1\";\r\n    this.TextAlignRight = this.ESC + \"a\" + \"2\";\r\n    this.CutAllPage = this.ESC + \"i\";\r\n    this.CutHalfPage = this.ESC + \"m\";\r\n}\r\n\r\n// GBK 编码转换\r\nfunction gbkStringToUint8Array(gbkStr) {\r\n    // GBK.encode 返回一个数组\r\n    const gbkArray = GBK.encode(gbkStr);\r\n    // 将数组转换为 Uint8Array\r\n    return new Uint8Array(gbkArray);\r\n}\r\n\r\n```\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-ble-central/\r\n├── src/                          # 源代码目录\r\n│   └── main/                     # 主要源代码\r\n│       ├── cpp/                  # C++ 原生代码\r\n│       │   └── Bluetooth/        # 蓝牙模块\r\n│       │       ├── BLECentralPlugin.cpp  # BLE 中心设备功能的 C++ 实现\r\n│       │       └── BLECentralPlugin.h    # BLE 中心设备功能的头文件\r\n│       └── ets/                  # ArkTS 代码（OpenHarmony API）\r\n│           └── components/       # 组件目录\r\n│               └── BleAction/    # 蓝牙动作组件\r\n│                   └── BleAction.ets    # BLE 功能的实现\r\n├── www/                          # Web 资源目录\r\n│   └── js ble.js                 # JavaScript BLE 接口（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-ble-central/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-ble-central/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-ble-central 官方指南](https://www.npmjs.com/package/cordova-plugin-ble-central)\r\n\r\n- GitCode 仓库：[CPF-Cordova/cordova-plugin-ble-central](https://gitcode.com/CPF-Cordova/cordova-plugin-ble-central)\r\n","readmeFilename":"README.md"}