FLUTTER ECOSYSTEM

SiriDx/qrcode

A flutter plugin for scanning QR codes. Use AVCaptureSession in iOS and zxing in Android.

qrcode project cover
Stars
71
Forks
45
Last push (UTC)
Oct 20, 2022
Project status
Active
Dean Chen GitHub avatar
GITHUB User

Dean Chen ↗

iOS & Flutter Developer.

Xiamen, China
LanguagesDartObjective-CRubyShell

Technical topics

Packages published by this repository

Original README

English project snapshot. Visit GitHub for the latest content.

Expand / collapse project README

qrcode

A flutter plugin for scanning QR codes. Use AVCaptureSession in iOS and zxing in Android.

Usage

Use this package as a library
Add dependency

Add this to your package's pubspec.yaml file:

dependencies:
  qrcode: ^1.0.5
Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get
Import it

Now in your Dart code, you can use:

import 'package:qrcode/qrcode.dart';
Basic
class _MyAppState extends State<MyApp> {
  QRCaptureController _captureController = QRCaptureController();

  bool _isTorchOn = false;

  @override
  void initState() {
    super.initState();

    _captureController.onCapture((data) {
      print('onCapture----$data');
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Stack(
          alignment: Alignment.center,
          children: <Widget>[
            QRCaptureView(controller: _captureController),
            Align(
              alignment: Alignment.bottomCenter,
              child: _buildToolBar(),
            )
          ],
        ),
      ),
    );
  }

  Widget _buildToolBar() {
    return Row(
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FlatButton(
              onPressed: () {
                _captureController.pause();
              },
              child: Text('pause'),
            ),
            FlatButton(
              onPressed: () {
                if (_isTorchOn) {
                  _captureController.torchMode = CaptureTorchMode.off;
                } else {
                  _captureController.torchMode = CaptureTorchMode.on;
                }
                _isTorchOn = !_isTorchOn;
              },
              child: Text('torch'),
            ),
            FlatButton(
              onPressed: () {
                _captureController.resume();
              },
              child: Text('resume'),
            ),
          ],
        );
  }
}

Integration

iOS

To use on iOS, you must add the following to your Info.plist

<key>NSCameraUsageDescription</key>
<string>Camera permission is required for qrcode scanning.</string>
<key>io.flutter.embedded_views_preview</key>
<true/>