Thursday, 1 August 2019

QR Code Scanner for Flutter

QR Code Scanner for Flutter


QR Code Scanner

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

Android

QR Code Scanner for Flutter


QR Code Scanner for Flutter


iOS

QR Code Scanner for Flutter


QR Code Scanner for Flutter



Get Scanned QR Code

When a QR code is recognized, the text identified will be set in 'qrText'.
class _QRViewExampleState extends State<QRViewExample> {
  final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
  var qrText = "";
  QRViewController controller;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          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();
  }
}
Dart

iOS Integration

In order to use this plugin, add the following to your Info.plist file:
<key>io.flutter.embedded_views_preview</key>
<true/>

Flip Camera (Back/Front)

The default camera is the back camera.
controller.flipCamera();
Dart

Flash (Off/On)

By default, flash is OFF.
controller.toggleFlash();
Dart

Resume/Pause

Pause camera stream and scanner.
controller.pause();
Dart
Resume camera stream and scanner.
controller.resume();
Dart

TODO'S:

  • 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

GitHub

QR Code Scanner for Flutter — Read More
Latest commit to the master branch on 7-29-2019
Download as zip