qrcode_flutter_ohos 1.0.0 copy "qrcode_flutter_ohos: ^1.0.0" to clipboard
qrcode_flutter_ohos: ^1.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_ohos/qrcode_flutter_ohos.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 {
              _controller.pause();
              final ImagePicker picker = ImagePicker();
              final XFile? image = await picker.pickImage(source: ImageSource.gallery);
              if(image != null) {
                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'),
        ),
      ],
    );
  }
}
0
likes
70
points
9
downloads

Publisher

unverified uploader

Weekly Downloads

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

Repository

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_web_plugins, plugin_platform_interface

More

Packages that depend on qrcode_flutter_ohos

Packages that implement qrcode_flutter_ohos