Flutter 二维码

匿名 (未验证) 提交于 2019-12-03 00:09:02

生成二维码:

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

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)),  ),

扫码:

可以安装插件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

使用时添加权限:
安卓:

<uses-permission android:name="android.permission.CAMERA" />  <activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>

iOS:

<key>NSCameraUsageDescription</key> <string>Camera permission is required for barcode scanning.</string>

扫码案例:

class _MyHomePageState extends State<MyHomePage> {   @override   Widget build(BuildContext context) {     return Scaffold(       appBar: AppBar(         title: Text(widget.title),       ),       body: Column(         children: <Widget>[           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');     }   } }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!