{"_id":"@cordova-ohos/phonegap-plugin-barcodescanner","_rev":"3-82840599ee044d91717686c228d7ac4f","name":"@cordova-ohos/phonegap-plugin-barcodescanner","dist-tags":{"latest":"8.1.1"},"versions":{"8.1.0":{"name":"@cordova-ohos/phonegap-plugin-barcodescanner","version":"8.1.0","keywords":["cordova","statusbar","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/phonegap-plugin-barcodescanner@8.1.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/phonegap-plugin-barcodescanner/issues"},"dist":{"shasum":"a22fc6fd6ec495d7e31049b1fc84e27634f64c76","tarball":"https://registry.npmjs.org/@cordova-ohos/phonegap-plugin-barcodescanner/-/phonegap-plugin-barcodescanner-8.1.0.tgz","fileCount":9,"integrity":"sha512-A20Pg5ymqRG5Bh2pmjj8DnLcFHk9/Y58DTKBnH6TMDr3jPpbh7XG9/GlWv3XHhZedrD6EGhTSh5kxbhzcupHyg==","signatures":[{"sig":"MEQCIBhZfeo5Y7/7wurU4gBHCCQjyGApzchFb+Ezb25I5UqsAiAt1k4gc+POg/g0GTtCPGcd3ACjBkE9H1isEj8c6F0D5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38672},"cordova":{"id":"phonegap-plugin-barcodescanner","platforms":["ohos"]},"engines":{"cordovaDependencies":{"8.1.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"b8de668f04629776f37da8c9a8bd8826bf200b7d","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/phonegap-plugin-barcodescanner","type":"git"},"_npmVersion":"10.5.1","description":"Cordova statusbar Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/phonegap-plugin-barcodescanner_8.1.0_1774229368439_0.3759716809685867","host":"s3://npm-registry-packages-npm-production"}},"8.1.1":{"name":"@cordova-ohos/phonegap-plugin-barcodescanner","version":"8.1.1","description":"Cordova Barcodescanner Plugin","cordova":{"id":"phonegap-plugin-barcodescanner","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/phonegap-plugin-barcodescanner"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner/issues"},"keywords":["cordova","statusbar","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"8.1.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/phonegap-plugin-barcodescanner@8.1.1","gitHead":"8e9c6eff81d31ab22c0f268fa58b473736b9feb7","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-zZ/sv7tr/Px5egNWZCrR/gaMSRugIH4uRFrqbjC/avIFBxv1nY6u0XW71ndpNGum00TuXexxMMCxp8xfetc1ng==","shasum":"b3ef5828d5263e60b597b2e23b92f15e2e78ad1f","tarball":"https://registry.npmjs.org/@cordova-ohos/phonegap-plugin-barcodescanner/-/phonegap-plugin-barcodescanner-8.1.1.tgz","fileCount":10,"unpackedSize":57696,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCH1D4YRscE1npImDUow6d8P01HCuj+DJBA4Nk1zIg6DcCIQC230u4sss89nMQgyg2PkXgCRO53TKI8Swb/gUIV75M9A=="}]},"_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/phonegap-plugin-barcodescanner_8.1.1_1785154995985_0.8468260042861029"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-23T01:29:28.351Z","modified":"2026-07-27T12:23:16.616Z","8.1.0":"2026-03-23T01:29:28.576Z","8.1.1":"2026-07-27T12:23:16.168Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","statusbar","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/phonegap-plugin-barcodescanner"},"description":"Cordova Barcodescanner 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>phonegap-plugin-barcodescanner</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本项目基于 [phonegap-plugin-barcodescanner@8.1.0](https://www.npmjs.com/package/phonegap-plugin-barcodescanner/v/8.1.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [phonegap-plugin-barcodescanner](#phonegap-plugin-barcodescanner)\r\n  - [简介](#简介)\r\n    - [功能特性](#功能特性)\r\n  - [支持平台](#支持平台)\r\n  - [前置准备](#前置准备)\r\n  - [下载安装](#下载安装)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\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    - [API 文档](#api-文档)\r\n      - [实时扫描（核心 API）](#实时扫描核心-api)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\nphonegap-plugin-barcodescanner 是一款专为 Cordova/PhoneGap 混合移动应用打造的条码与二维码扫描插件，基于原生平台扫描能力开发，支持多码制识别、实时预览、闪光灯控制及相册图片解析等核心功能。具备识别速度快、准确率高、兼容性强、轻量化等特点，可广泛应用于商品溯源、移动支付、资产管理、票务验证等场景。\r\n\r\n### 功能特性\r\n\r\n- **多码制全面支持**：覆盖常见一维码（如 EAN-13、UPC-A、Code 128）和二维码（如 QR Code、Data Matrix、Aztec），支持自定义启用/禁用特定码制\r\n\r\n- **原生扫描引擎**：基于 OHOS 原生扫描能力开发，识别速度 ≤300ms，准确率 ≥98%（清晰条码场景）\r\n\r\n- **实时预览与对焦**：支持高清实时预览（最高 1080P），支持自动对焦、手动点击对焦及连续对焦模式，适配不同距离扫描需求\r\n\r\n- **辅助扫描功能**：集成闪光灯控制（明暗环境自适应）、扫描框引导（提高识别效率）、震动/声音反馈（扫描成功提示）\r\n\r\n- **相册图片解析**：支持从相册选择图片或传入图片路径，解析图片中的条码信息，适配多种图片格式（JPG、PNG、GIF 等）\r\n\r\n- **权限智能管理**：自动检测并请求相机、相册权限，提供权限申请结果回调，支持权限拒绝后的引导处理\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使用插件前需确保已创建 Cordova/PhoneGap 项目，若未创建，可执行以下命令创建：\r\n\r\n```bash\r\n# 方式1：使用 cordova 创建\r\ncordova create barcodeApp com.example.barcodeapp BarcodeApp\r\n\r\n# 方式2：使用 phonegap 创建\r\nphonegap create barcodeApp\r\n```\r\n\r\n进入项目根目录后，即可进行插件的安装操作。\r\n\r\n## 下载安装\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n适用于大多数场景，直接从 npm 仓库安装稳定版，支持指定版本及 OHOS 平台安装：\r\n\r\n```bash\r\n# 安装 hcordova\r\nnpm install -g hcordova\r\n\r\n# 安装最新稳定版扫描插件\r\nhcordova plugin add phonegap-plugin-barcodescanner\r\n\r\n# 安装指定 OHOS 平台\r\nhcordova plugin add phonegap-plugin-barcodescanner --platform ohos\r\n\r\n# 安装指定版本（示例：1.0.0 版本，OHOS 平台）\r\nhcordova plugin add phonegap-plugin-barcodescanner@1.0.0 --platform ohos\r\n```\r\n\r\n### 从 GitCode 仓库安装\r\n\r\n适用于需要体验最新功能的开发者，从 GitCode 仓库直接安装开发版：\r\n\r\n```bash\r\n# 安装开发版插件（OHOS 平台）\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner.git@develop --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：~/Downloads/phonegap-plugin-barcodescanner）\r\n# 执行离线安装\r\nhcordova plugin add ~/Downloads/phonegap-plugin-barcodescanner\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\r\n```bash\r\n# 卸载扫描插件（全平台）\r\nhcordova plugin remove phonegap-plugin-barcodescanner\r\n\r\n# 指定 OpenHarmony 平台卸载\r\nhcordova plugin remove phonegap-plugin-barcodescanner --platform ohos\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以下示例展示核心 API 的使用方法，涵盖实时扫描、结果处理等常见场景：\r\n\r\n```javascript\r\n// 实时扫描条码/二维码示例\r\ncordova.plugins.barcodeScanner.scan(\r\n    function (result) {\r\n        // 扫描取消时直接返回\r\n        if(result.cancelled) {\r\n            console.log(\"扫描已取消\");\r\n            return;\r\n        }\r\n        // 示例：仅允许识别 QR_CODE 二维码\r\n        if(result.format !== \"QR_CODE\") {\r\n            alert(\"请扫描正确的二维码\");\r\n            return;\r\n        }\r\n        // 扫描成功，处理返回结果\r\n        console.log(\"扫描成功，条码内容：\", result.text);\r\n        console.log(\"条码格式：\", result.format);\r\n    },\r\n    function (error) {\r\n        // 扫描失败，打印错误信息\r\n        console.log(\"Scanning failed: \" + error);\r\n    }\r\n);\r\n\r\n```\r\n\r\n## 使用说明\r\n\r\n### 核心概念\r\n\r\n#### 1. 插件命名空间\r\n\r\n插件通过全局对象 `cordova.plugins.barcodeScanner` 暴露所有 API 方法，所有操作均需通过该命名空间调用。\r\n\r\n#### 2. 扫描模式\r\n\r\n插件支持两种核心扫描模式，可根据业务场景选择：\r\n\r\n- **实时扫描模式**：打开相机实时预览并识别条码，适用于直接扫描实体条码的场景（如商品扫码、票务验证），仅支持单次扫描\r\n\r\n- **图片解析模式**：解析相册图片文件中的条码信息，适用于扫描已保存的条码图片场景（如相册中的电子票、截图中的条码）\r\n\r\n#### 3. 对焦模式\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插件通过全局对象 `cordova.plugins.barcodeScanner` 暴露所有 API 方法，所有操作均为异步执行，通过回调函数处理结果。具体使用示例见「使用示例」章节。\r\n\r\n#### 实时扫描（核心 API）\r\n\r\n```javascript\r\n/**\r\n* 打开相机实时扫描条码/二维码\r\n* @param {Function} successCallback - 成功回调（参数：result 扫描结果对象）\r\n* @param {Function} errorCallback - 失败回调（参数：error 错误信息）\r\n* @param {Object} options - 可选配置（可选）\r\n* @description 扫描结果对象 result 属性：\r\n* - text: string 条码内容\r\n* - format: string 条码格式（如 QR_CODE、EAN_13）\r\n* - cancelled: boolean 是否取消扫描（true 为取消，false 为成功）\r\n*/\r\ncordova.plugins.barcodeScanner.scan(\r\n    successCallback,\r\n    errorCallback,\r\n    options\r\n);\r\n```\r\n\r\n\r\n## 目录结构\r\n```\r\nphonegap-plugin-barcodescanner         # [根目录] 条形码/二维码扫描插件项目根目录\r\n├── src                                # [源码目录] 存放原生平台代码\r\n│   └── main                           # [主目录] 主代码目录\r\n│       ├── cpp                        # [C++ 目录] C++ 原生代码目录\r\n│       │   └── BarcodeScanner         # [C++ 模块] 扫描器核心逻辑文件夹\r\n│       │       ├── BarcodeScanner.cpp # [C++ 实现] 扫描功能的 C++ 逻辑实现\r\n│       │       └── BarcodeScanner.h   # [C++ 声明] 扫描功能的 C++ 头文件\r\n│       └── ets                        # [ArkTS 目录] ArkTS/ETS 代码目录\r\n│           └── components             # [组件目录] 存放 UI 组件\r\n│               └── BarcodeScan        # [TS 模块] 扫描相关的 UI 组件文件夹\r\n│                   └── BarcodeScan.ets # [ETS 文件] 扫描界面的 UI 实现（OHOS 系统的声明式 UI）\r\n├── www                                # [前端目录] 存放 JavaScript 接口文件\r\n│   └── barcodescanner.js              # [JS 文件] 提供给前端调用的 JavaScript 接口，负责桥接 Web 层与原生层\r\n├── .gitignore                         # [配置] Git 版本控制忽略文件配置\r\n├── LICENSE                            # [文本] 开源许可证文件\r\n├── OAT.xml                            # [配置] 门禁配置文件\r\n├── package.json                       # [配置] NPM 包配置文件，定义依赖和脚本\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/phonegap-plugin-barcodescanner/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner/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**：[phonegap-plugin-barcodescanner 官方指南](https://www.npmjs.com/package/phonegap-plugin-barcodescanner)\r\n\r\n- **GitCode 仓库**：[CPF-Cordova/phonegap-plugin-barcodescanner](https://gitcode.com/CPF-Cordova/phonegap-plugin-barcodescanner)\r\n","readmeFilename":"README.md"}