# qr_code_scanner
**Repository Path**: vincent-feng/qr_code_scanner
## Basic Information
- **Project Name**: qr_code_scanner
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: BSD-2-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-10-09
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# QR Code Scanner
[](https://github.com/juliuscanute/qr_code_scanner/actions)
A QR code scanner that works on both iOS and Android by natively embedding the platform view within Flutter. The integration with Flutter is seamless, much better than jumping into a native Activity or a ViewController to perform the scan.
## Screenshots
## Get Scanned QR Code
When a QR code is recognized, the text identified will be set in 'qrText'.
```dart
class _QRViewExampleState extends State {
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
var qrText = "";
QRViewController controller;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
flex: 5,
child: QRView(
key: qrKey,
onQRViewCreated: _onQRViewCreated,
),
),
Expanded(
flex: 1,
child: Center(
child: Text('Scan result: $qrText'),
),
)
],
),
);
}
void _onQRViewCreated(QRViewController controller) {
this.controller = controller;
controller.scannedDataStream.listen((scanData) {
setState(() {
qrText = scanData;
});
});
}
@override
void dispose() {
controller?.dispose();
super.dispose();
}
}
```
## iOS Integration
In order to use this plugin, add the following to your Info.plist file:
```
io.flutter.embedded_views_preview
NSCameraUsageDescription
This app needs camera access to scan QR codes
```
## Flip Camera (Back/Front)
The default camera is the back camera.
```dart
controller.flipCamera();
```
## Flash (Off/On)
By default, flash is OFF.
```dart
controller.toggleFlash();
```
## Resume/Pause
Pause camera stream and scanner.
```dart
controller.pause();
```
Resume camera stream and scanner.
```dart
controller.resume();
```
# SDK
Requires at least SDK 24 (Android 7.0).
# TODOs
* iOS Native embedding is written to match what is supported in the framework as of the date of publication of this package. It needs to be improved as the framework support improves.
* In future, options will be provided for default states.
* Finally, I welcome PR's to make it better :), thanks
# Credits
* Android: https://github.com/zxing/zxing
* iOS: https://github.com/mikebuss/MTBBarcodeScanner
* Special Thanks To: LeonDevLifeLog for his contributions towards improving this package.