ensemble_qr_scanner 1.2.54
ensemble_qr_scanner: ^1.2.54 copied to clipboard
QR Code and Barcode scanner module for Ensemble Framework. Lightweight module with minimal dependencies.
Ensemble QR Scanner #
Lightweight QR Code and Barcode scanner module for Ensemble Framework.
Quick Setup #
Using Enable Script (Recommended) #
cd starter
dart run scripts/modules/enable_qr_code.dart
flutter pub get
flutter run
Manual Installation #
- Add dependency to
pubspec.yaml:
dependencies:
ensemble_qr_scanner:
git:
url: https://github.com/EnsembleUI/ensemble.git
ref: main
path: modules/qr_scanner
- Update
lib/generated/ensemble_modules.dart:
// Add import
import 'package:ensemble_qr_scanner/qr_code_scanner.dart';
// Set flag
static const useCamera = true;
// Register (inside useCamera block)
GetIt.I.registerSingleton<EnsembleQRCodeScanner>(
EnsembleQRCodeScannerImpl.build(EnsembleQRCodeScannerController()));
- Add permissions:
Android (AndroidManifest.xml):
<uses-permission android:name="android.permission.CAMERA" />
iOS (Info.plist):
<key>NSCameraUsageDescription</key>
<string>Camera permission is required for QR code scanning</string>
Usage #
QRCodeScanner:
id: scanner
initialCamera: back
formatsAllowed: [qrcode, barcode]
cutOutHeight: 250
cutOutWidth: 250
cutOutBorderRadius: 12
cutOutBorderColor: 0xFF00FF00
onReceived: |
//@code
console.log("Scanned: " + event.data.data);
Properties #
| Property | Type | Default |
|---|---|---|
initialCamera |
String (back/front) |
back |
formatsAllowed |
Array (qrcode, barcode) |
[qrcode] |
cutOutHeight |
Integer | 200 |
cutOutWidth |
Integer | 200 |
cutOutBorderRadius |
Integer | 0 |
cutOutBorderColor |
Color | red |
Methods #
flipCamera()- Switch front/backtoggleFlash()- Toggle flashpauseCamera()- Pause scanningresumeCamera()- Resume scanning
Events #
onReceived:
{
format: "qrCode", // Format name
data: "https://...", // Decoded string
rawBytes: [...] // Raw bytes
}
onInitialized: Triggered when ready onPermissionSet: Triggered on permission change
Module Comparison #
| Feature | qr_scanner | camera | face_camera |
|---|---|---|---|
| QR/Barcode | ✅ | ✅ | ❌ |
| Photo/Video | ❌ | ✅ | ❌ |
| Face detection | ❌ | ❌ | ✅ |
| Size | ~4KB | ~400KB+ | varies |
| Permissions | Camera only | Camera, Location, Mic | Camera, Mic |
| Dependencies | mobile_scanner | geolocator, sensors | face detection models |
Face detection was moved out of
ensemble_camerainto the standaloneensemble_face_cameramodule. UsingfaceDetection: enabled: trueinopenCameranow logs a warning and falls back to the standard camera.
When to Use #
Use ensemble_qr_scanner:
- Only need QR/barcode scanning
- Want minimal app size
- Don't need extra permissions
Use ensemble_camera:
- Need photo/video capture
- Need sensor/location features
- (includes QR via re-export)
Use ensemble_face_camera:
- Need real-time face detection and
openFaceCamera
Migration from Camera Module #
Before:
dependencies:
ensemble_camera: ^0.0.1
After:
dependencies:
ensemble_qr_scanner: ^0.0.1
Code remains the same - just update dependency!
Supported Formats #
- QR Code
- Code 128, Code 39, Code 93
- EAN-8, EAN-13
- UPC-A, UPC-E
- Codabar
License #
See LICENSE file.