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 插件,讓應用開發者能使用裝置的相機,在行動與網頁應用中加入條碼與 QR 碼掃描功能。它處理了相機存取、即時畫面處理與解碼等困難部分,因此開發者無需為 Android、iOS、macOS 或 Web 寫出平台特定的程式碼。
工作原理
此插件在各平台封裝原生條碼偵測程式庫:Android 使用 MLKit,iOS 與 macOS 使用 Apple 的 Vision 框架,Web 則提供三種瀏覽器後端選擇(瀏覽器內建的 BarcodeDetector API、名為 zxing-wasm 的 WebAssembly 版 ZXing,或傳統的純 JavaScript ZXing 庫)。
開發者使用 MobileScanner 小工具,並透過 onDetect 回呼函數在每次識別到條碼時觸發。如需更多控制,MobileScannerController 提供多種選項,包括相機解析度、偵測速度、要掃描的條碼格式、手電筒(閃光燈)控制、影像反轉、自動縮放,以及在不同相機鏡頭(一般、廣角、變焦)之間切換的能力。它也提供協助函數,用於查詢裝置支援的鏡頭類型,並選擇最適合近距離掃描的鏡頭。
適用對象
需要掃描 QR 碼或條碼的 Flutter 開發者——例如用於票務、支付、庫存管理、忠誠度計畫或驗證流程的應用。它是一個即插即用的套件,而非獨立應用程式。
主要特色
- 跨平台:支援 Android、iOS、macOS 與 Web(不支援 Linux 或 Windows)。
- 即時偵測,支援多種條碼格式(QR、Code 128、EAN、DataMatrix、PDF417、Aztec 等)。
- 可設定掃描:掃描視窗、自動縮放、手電筒、偵測速度與格式過濾。
- 支援鏡頭類型切換,並提供協助函數以選擇最適合近距離掃描的鏡頭。
- Web 實作提供三種偵測後端,各有性能與格式支援的權衡,並支援設定 CDN 鏡像以載入掃描程式庫。
- 在 Android 上,開發者可選擇內建 MLKit 模型(應用體積較大,但立即可用)或透過 Google Play Services 下載的非內建模型(應用體積較小)。
相關
- 專案
- 專案
- 專案
- 專案
- 專案