qrcode_flutter 3.0.0 copy "qrcode_flutter: ^3.0.0" to clipboard
qrcode_flutter: ^3.0.0 copied to clipboard

Flutter plugin for scanning QR codes.You can customize your page by using PlatformView.Scanning Picture from path (photo album).

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:qrcode_flutter/qrcode_flutter.dart';
import 'package:image_picker/image_picker.dart';

void main() => runApp(_MyPage());

class _MyPage extends StatefulWidget {
  @override
  _OnePageState createState() => _OnePageState();
}

class _OnePageState extends State<_MyPage> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(
        title: Text("qrcode_flutter"),
      ),
      body: Builder(
        builder: (context) => TextButton(
          child: Text("navigate to qrcode page"),
          onPressed: () {
            Navigator.of(context)
                .push(MaterialPageRoute(builder: (_) => MyApp()));
          },
        ),
      ),
    ));
  }
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with TickerProviderStateMixin {
  QRCaptureController _controller = QRCaptureController();

  bool _isTorchOn = false;

  String _captureText = '';

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

    _controller.onCapture((data) {
      print('$data');
      setState(() {
        _captureText = data;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('scan'),
        actions: <Widget>[
          TextButton(
            onPressed: () async {
              PickedFile image =
                  await ImagePicker().getImage(source: ImageSource.gallery);
              var qrCodeResult =
                  await QRCaptureController.getQrCodeByImagePath(image.path);
              setState(() {
                _captureText = qrCodeResult.join('\n');
              });
            },
            child: Text('photoAlbum', style: TextStyle(color: Colors.white)),
          ),
        ],
      ),
      body: Stack(
        alignment: Alignment.center,
        children: <Widget>[
          Container(
            width: 300,
            height: 300,
            child: QRCaptureView(
              controller: _controller,
            ),
          ),
          SafeArea(
            child: Align(
              alignment: Alignment.bottomCenter,
              child: _buildToolBar(),
            ),
          ),
          Container(
            child: Text('$_captureText'),
          )
        ],
      ),
    );
  }

  Widget _buildToolBar() {
    return Row(
      mainAxisSize: MainAxisSize.max,
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        TextButton(
          onPressed: () {
            _controller.pause();
          },
          child: Text('pause'),
        ),
        TextButton(
          onPressed: () {
            if (_isTorchOn) {
              _controller.torchMode = CaptureTorchMode.off;
            } else {
              _controller.torchMode = CaptureTorchMode.on;
            }
            _isTorchOn = !_isTorchOn;
          },
          child: Text('torch'),
        ),
        TextButton(
          onPressed: () {
            _controller.resume();
          },
          child: Text('resume'),
        ),
      ],
    );
  }
}
15
likes
90
pub points
75%
popularity

Publisher

unverified uploader

Flutter plugin for scanning QR codes.You can customize your page by using PlatformView.Scanning Picture from path (photo album).

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, flutter_web_plugins, plugin_platform_interface

More

Packages that depend on qrcode_flutter