Flutter之实现生成二维码,扫描二维码

一、生成二维码

1、导入依赖

在 pubspec.yaml 中 dependencies 节点下添加:

  # 二维码生成 https://pub.dev/packages/qr_flutter
  qr_flutter: ^3.2.0

2、引入代码

import 'package:qr_flutter/qr_flutter.dart';

3、属性

属性

4、代码

Container(
  padding: EdgeInsets.all(15),
  decoration: BoxDecoration(
    color: Colors.white,
    borderRadius:
    BorderRadius.all(Radius.circular(16.0))),
    child: QrImage(
      // backgroundColor: Colors.white,
      foregroundColor: Colours.app_main,
      data: shareData['share_url'] ?? '',
      size: 200.0,
)),

二、扫描二维码

1、导入依赖

在 pubspec.yaml 中 dependencies 节点下添加:

 # 二维码扫描 https://pub.dev/packages/barcode_scan
  barcode_scan: ^3.0.1

2、引入代码

import 'package:barcode_scan/barcode_scan.dart';

3、代码

class _QRCodeState extends State<QRCode> {

  var textStr = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("二维码"),
      ),
      body: Container(
        width: MediaQuery.of(context).size.width,  //充满屏幕宽度,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,  //居中
          children: [
            SizedBox(height: 50,),
            RaisedButton(
              child: Text("二维码扫描"),
              onPressed: () {
                getQrcodeState().then((value) => setState(() {
                  this.textStr = value;
                }));
              },
            ),
            SizedBox(height: 20,),
            Text("扫描内容为${this.textStr}"),
          ],
        ),
      ),
    );
  }
  
  //扫描二维码
  static Future<String> getQrcodeState() async {
    try {
      const ScanOptions options = ScanOptions(
        strings: {
          'cancel': '取消',
          'flash_on': '开启闪光灯',
          'flash_off': '关闭闪光灯',
        },
      );
      final ScanResult result = await BarcodeScanner.scan(options: options);
      return result.rawContent;
    } catch (e) {

    }
    return null;
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值