The QR Code Scanner package for Appeto SDK.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 
Julian Steenbakker b4ee3d78dc
Updated example.
pirms 5 gadiem
.github Update issue templates pirms 5 gadiem
.resources Remove unused .gif files pirms 6 gadiem
android Moved permission request from plugin initialization to view initialization. pirms 5 gadiem
example Updated example. pirms 5 gadiem
ios Added scanArea for iOS. pirms 5 gadiem
lib Reformat with dartfmt pirms 5 gadiem
.gitignore .gitgnore all the things pirms 6 gadiem
CHANGELOG.md Release 0.1.0 pirms 5 gadiem
LICENSE Initial commit pirms 7 gadiem
README.md Updated barcode check to inline check. Updated README.md. pirms 5 gadiem
analysis_options.yaml Updated pedantic. pirms 5 gadiem
pubspec.yaml Release 0.1.0 pirms 5 gadiem

README.md

QR Code Scanner

GH 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

Android

iOS

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');
  Barcode result;
  QRViewController controller;

  /// Overriding reassemble and pausing the camera
  /// ensures us that hot reload won't give a black screen
  @override
  void reassemble() {
    super.reassemble();
    controller.pauseCamera();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          Expanded(
            flex: 5,
             // To ensure the Scanner view is properly sizes after rotation
             // we need to listen for Flutter SizeChanged notification and update controller
            child: NotificationListener<SizeChangedLayoutNotification>(
              onNotification: (notification) {
                Future.microtask(() => controller?.updateDimensions(qrKey));
                return false;
              },
              child: SizeChangedLayoutNotifier(
                key: const Key('qr-size-notifier'),
                child: QRView(
                  key: qrKey,
                  onQRViewCreated: _onQRViewCreated,
                ),
              ),
            ),
          ),
          Expanded(
            flex: 1,
            child: Center(
              child: (result != null) ?
                        Text('Barcode Type: ${describeEnum(result.format)}   Data: ${result.code}')
                      : Text('Scan a code'),
            ),
          )
        ],
      ),
    );
  }

  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:

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to scan QR codes</string>

Flip Camera (Back/Front)

The default camera is the back camera.

controller.flipCamera();

Flash (Off/On)

By default, flash is OFF.

controller.toggleFlash();

Resume/Pause

Pause camera stream and scanner.

controller.pauseCamera();

Resume camera stream and scanner.

controller.resumeCamera();

SDK

Requires at least SDK 21 (Android 5.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