Flutter 3.X二维码扫描功能

  • 1. pubspec.yaml文件添加依赖
  • 2使用
  • 3. 源代码
  • 4.第二种方式
    • 4.1 pubspec.yaml文件添加依赖
    • 4.2 使用
    • 源代码

1. pubspec.yaml文件添加依赖

flutter_qr_bar_scanner: ^3.0.2

dependencies:flutter:sdk: flutter# The following adds the Cupertino Icons font to your application.# Use with the CupertinoIcons class for iOS style icons.cupertino_icons: ^1.0.2flutter_qr_bar_scanner: ^3.0.2

2使用

import 'package:flutter/material.dart';
import 'package:flutter_qr_bar_scanner/qr_bar_scanner_camera.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(title: 'Flutter QR/Bar Code Reader',debugShowCheckedModeBanner: false,theme: ThemeData(primarySwatch: Colors.blue,),home: MyHomePage(title: 'Flutter QR/Bar Code Reader'),);}
}class MyHomePage extends StatefulWidget {MyHomePage({Key? key, this.title}) : super(key: key);final String? title;@override_MyHomePageState createState() => _MyHomePageState();
}class _MyHomePageState extends State<MyHomePage> {String? _qrInfo = 'Scan a QR/Bar code';bool _camState = false;_qrCallback(String? code) {setState(() {_camState = false;_qrInfo = code;});}_scanCode() {setState(() {_camState = true;});}@overridevoid initState() {super.initState();_scanCode();}@overridevoid dispose() {super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(widget.title!),),body: _camState? Center(child: SizedBox(height: 1000,width: 500,child: QRBarScannerCamera(onError: (context, error) => Text(error.toString(),style: TextStyle(color: Colors.red),),qrCodeCallback: (code) {_qrCallback(code);},),),): Center(child: Text(_qrInfo!),),);}
}

3. 源代码

flutter 二维码扫描

4.第二种方式

4.1 pubspec.yaml文件添加依赖

flutter_hms_scan_kit: ^1.0.5

4.2 使用

import 'dart:async';
import 'dart:typed_data';import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hms_scan_kit/flutter_hms_scan_kit.dart';
import 'package:flutter_hms_scan_kit/scan_result.dart';void main() {runApp(MyApp());
}class MyApp extends StatefulWidget {@override_MyAppState createState() => _MyAppState();
}class _MyAppState extends State<MyApp> {String _platformVersion = 'Unknown';ScanResult? _scanResult;List<int>? _code;@overridevoid initState() {super.initState();initPlatformState();generateCode();}// Platform messages are asynchronous, so we initialize in an async method.Future<void> initPlatformState() async {String platformVersion;// Platform messages may fail, so we use a try/catch PlatformException.// We also handle the message potentially returning null.try {platformVersion =await FlutterHmsScanKit.platformVersion ?? 'Unknown platform version';} on PlatformException {platformVersion = 'Failed to get platform version.';}// If the widget was removed from the tree while the asynchronous platform// message was in flight, we want to discard the reply rather than calling// setState to update our non-existent appearance.if (!mounted) return;setState(() {_platformVersion = platformVersion;});}Future<void> scan() async {_scanResult = await FlutterHmsScanKit.scan;setState(() {});}Future<void> generateCode() async {var bytes = await rootBundle.load("assets/images/ic_logo.png");_code = await FlutterHmsScanKit.generateCode(content: "这是条码",type: ScanTypeFormat.QRCODE_SCAN_TYPE,width: 300,height: 300,color: "#7CB342",logo: bytes.buffer.asUint8List(),);setState(() {});}@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: const Text('Flutter华为扫码'),),body: Container(width: double.infinity,padding: EdgeInsets.symmetric(vertical: 50),child: SingleChildScrollView(child: Column(children: [Text('类型: ${_scanResult?.scanTypeForm}\n'),Text('内容类型: ${_scanResult?.scanType}\n'),Text('扫码内容: ${_scanResult?.value}\n'),ElevatedButton(onPressed: scan,child: Padding(padding: EdgeInsets.symmetric(horizontal: 100),child: Text("扫描"),),),SizedBox(height: 50),Text('生成条码\n'),if (_code != null)Image.memory(Uint8List.fromList(_code!))elseContainer(height: 300, color: Colors.transparent),ElevatedButton(onPressed: generateCode,child: Padding(padding: EdgeInsets.symmetric(horizontal: 100),child: Text("生成条码"),),),],),),),),);}
}

源代码

二维码扫描

Flutter 3.X二维码扫描功能相关推荐

  1. iOS 自带二维码扫描功能的实现

    #自从iOS7以后中新增了二维码扫描功能.因此可以在不借助第三方类库的情况下简单的写出二维码的扫描功能: 原生的二维码扫描功能在AVFoundation框架下,所以在使用原生的二维码扫描功能时要先导入 ...

  2. 基于MUI框架的使用HTML5+实现的二维码扫描功能

                                                                               Barcode的一个实现案例 一.简介 Barco ...

  3. Flutter 画笔绘制二维码扫描框

    文章目录 一.CustomPaint介绍 1. CustomPaint 2. CustomPainter 3. Paint & Canvas 4. 示例(绘制文本背景) 二.计算扫描框四个点坐 ...

  4. Android实现二维码扫描功能(四)-ZXing识别图片二维码,相册选图

    简介 上一篇 Android实现二维码扫描功能(三)-闪光灯控制介绍了光线较弱情况下开启闪光灯来辅助二维码识别的方法. 本篇我们介绍如何识别相册中的图片(含二维码) 动态演示 使用模拟器录制了动画演示 ...

  5. JavaCV/OpenCV 二维码扫描功能

    JavaCV/OpenCV 二维码扫描功能 怎样配置工程就不再赘述,不清楚的读者可以网上查找资料,二维码扫描功能通过JavaCV实现起来还是挺简单的,主要OpenCV中QRCodeDetector提供 ...

  6. Android实现二维码扫描功能-ZXing识别图片二维码,相册选图

    文章目录 1.演示 2.权限问题 3.实现步骤 4.工具类 5.图片Uri处理(重要更新) 1.演示 2.权限问题 部分朋友在打开相册时遇到读写权限未授权的问题,我在开发的时候没有遇到,也没有注册读写 ...

  7. 使用安卓实现一个二维码扫描功能(基于Android Studio)

    二维码扫描使用很广泛,在这里记录二维码扫描的功能,需要导入第三方的类库. 步骤一:在项目中导入第三方的类库,导入方法:往Android Studio中导入第三方类库文件这篇博客中有详细记录 步骤二:定 ...

  8. Android实现二维码扫描功能(一)ZXing插件接入

    简介 关于Android扫描二维码的功能实现,网上有很多相关资料.在对比之后,选用了前辈了修改过的ZXing直接接入到项目中,特制作此demo,介绍整个过程. (最新更新)本篇文章讲解的接入方法对部分 ...

  9. MUI 结合 HTML5+ 实现的二维码扫描功能

    扫码登录的实现原理 原理解释: 接下来就是对于这个服务的详细实现.首先,大概说一下原理:用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求.服务器收到请求后,随机生成一个uuid, ...

最新文章

  1. NeHe教程Qt实现——lesson03
  2. python继承——封装
  3. 震撼!英伟达用深度学习做图像修复,毫无ps痕迹
  4. c# 前导0_C#| 用前导零填充整数
  5. python秒数变分钟_python时间时分秒与秒数的互相转换
  6. .Net core下的配置设置(一)——Configuration
  7. 为什么有些人电脑,电视,家电坏了首先是换新的,而不是维修?
  8. JS延迟加载百度分享代码,提高网页速度
  9. RotateMenu简单地旋转菜单控件《IT蓝豹》
  10. struct vsf_sysutil_statbuf
  11. 微计算机的工作原理,一文看懂微流控芯片的工作原理
  12. Visual Studio Code 编辑器
  13. 视频素材-高质量缥缈雾气雾霾特效合成动画 Lens Distortions – Fog II
  14. Microsoft buildup new website for open-source project
  15. spec开发思路以及理解
  16. 使用NetBeans进行J2ME开发(五):揭开游戏开发的神秘面纱
  17. d610网络计算机,尼康D610,10年来我见过的真心值得买的全幅单反
  18. FCN(全卷积神经网络)
  19. Unity支持GIF,零卡顿,秒解码
  20. python 读取图片,保存到指定目录,删除图片

热门文章

  1. android网络图片搜索——基于百度图片搜索引擎
  2. 如何下载阿里妈妈订单EXCEL(cookie保持)
  3. 【分享】夕小瑶和大家谈谈几种算法岗的区别和体验
  4. 星际争霸1的AI设计思路:以人族开局为例
  5. .Net Core基础之读取配置文件
  6. 呼铁局外经集团公司:二届二次职代会新风扑面
  7. GOA WinForms 系列
  8. 更改无线网卡mac地址后,无法连接到此无线网卡分享的热点
  9. 如何突破局域网对上网用户的一些限制
  10. Nessus扫描设置