Flutter学习笔记 二维码

生成二维码:

首先安装生成二维码插件:

dependencies:
  qr_flutter: ^3.0.1

在使用的地方导入:

import 'package:qr_flutter/qr_flutter.dart';

使用:

 QrImage(
   data: '二维码要显示的数据',
   size: 100.0,
   embeddedImage: AssetImage('images/pic.png'),
   embeddedImageStyle: QrEmbeddedImageStyle(size: Size(40, 40)),
 ),

Flutter学习笔记 二维码_第1张图片

扫码:

可以安装插件barcode_scan

dependencies:
  barcode_scan: ^1.0.0

在需要使用的地方导入:

import 'package:barcode_scan/barcode_scan.dart';

使用该插件时会遇到AndroidX之间版本冲突问题
可以通过将android.support改为androidx迁移项目至AndroidX
可以参考解决方式:

https://blog.csdn.net/ocean20/article/details/89215290

使用时添加权限:
安卓:




iOS:

NSCameraUsageDescription
Camera permission is required for barcode scanning.

扫码案例:

class _MyHomePageState extends State {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          QrImage(data: '二维码数据',
          size: 100,),
          RaisedButton(
            onPressed: () {
              scan();
            },
            child: Text('Button'),
          )
        ],
      ),
    );
  }

  Future scan() async {
    try {
      String barcode = await BarcodeScanner.scan();
      print('扫码结果:' + barcode);
    } on PlatformException catch (e) {
      if (e.code == BarcodeScanner.CameraAccessDenied) {
        print('未授予APP相机权限');
      } else {
        print('扫码错误:$e');
      }
    } on FormatException {
      print('进入扫码页面后未扫码就返回');
    } catch (e) {
      print('扫码错误:$e');
    }
  }
}

Flutter学习笔记 二维码_第2张图片

你可能感兴趣的:(Flutter)