juliansteenbakker/mobile_scanner

A universal Flutter barcode and QR code scanner using CameraX/ML Kit for Android, AVFoundation/Apple Vision for iOS & macOS, and ZXing for web.

解决的问题

mobile_scanner 是一个 Flutter 插件,允许应用开发者使用设备摄像头在移动和网页应用中添加条形码和二维码扫描功能。它处理了摄像头访问、实时帧处理和解码等复杂部分,因此开发者无需为 Android、iOS、macOS 或 Web 编写平台特定代码。

工作原理

该插件在每个平台上封装了原生条形码检测库:Android 上使用 MLKit,iOS 和 macOS 上使用 Apple 的 Vision 框架,Web 上则提供三种浏览器后端选择(浏览器内置的 BarcodeDetector API、名为 zxing-wasm 的 WebAssembly 版 ZXing,或传统的纯 JavaScript ZXing 库)。

开发者使用 MobileScanner 小部件,并通过 onDetect 回调函数在每次识别到条形码时触发。如需更多控制,MobileScannerController 提供了多种选项,包括摄像头分辨率、检测速度、要扫描的条形码格式、手电筒(闪光灯)控制、图像反转、自动缩放,以及在不同摄像头镜头(普通、广角、变焦)之间切换的能力。它还提供帮助函数,用于查询设备支持的镜头类型,并选择最适合近距离扫描的镜头。

适用人群

需要扫描二维码或条形码的 Flutter 开发者——例如用于票务、支付、库存管理、忠诚度计划或认证流程的应用。它是一个即插即用的包,而非独立应用程序。

主要亮点

  • 跨平台:支持 Android、iOS、macOS 和 Web(不支持 Linux 或 Windows)。
  • 实时检测,支持多种条形码格式(QR、Code 128、EAN、DataMatrix、PDF417、Aztec 等)。
  • 可配置扫描:扫描窗口、自动缩放、手电筒、检测速度和格式过滤。
  • 支持镜头类型切换,并提供帮助函数以选择最适合近距离扫描的镜头。
  • Web 实现提供三种检测后端,各有性能与格式支持的权衡,并支持配置 CDN 镜像以加载扫描库。
  • 在 Android 上,开发者可选择捆绑 MLKit 模型(应用体积较大,但立即可用)或通过 Google Play Services 下载的非捆绑模型(应用体积更小)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目