IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter 二维码扫描 -> 正文阅读

[移动开发]Flutter 二维码扫描

1:barcode_scan: ^3.0.1

优点:集成快,不需要过多的配置即可兼容。
缺点:暂时无FLutter2.0之后的空安全版本。且mac的M1芯片使用该插件无法打包。

import 'package:flutter/services.dart';
import 'package:barcode_scan/platform_wrapper.dart';

class Barcode {
  //扫描得到的二维码
  String _qrCode = '';

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

  String get qrCode => _qrCode;

  set qrCode(String value) {
    _qrCode = value;
  }
}

使用

Barcode barcode = new Barcode();
barcode.scan();

2:scan: ^0.0.7(flutter2.0前的最后一个版本)

优点:版本更新快,Flutter2.0有空安全版本。可以自定义扫码界面,可扩展性强。
缺点:可能低版本的在android的个别机型会出现一些问题。

仅供参考

import 'package:flutter/material.dart';
import '../styles/app_style.dart';
import 'package:scan/scan.dart';

class BarcodeScan extends StatefulWidget {
  final Function scanCode;

  const BarcodeScan({Key key, this.scanCode}) : super(key: key);
  @override
  _BarcodeScanState createState() => _BarcodeScanState();
}

class _BarcodeScanState extends State<BarcodeScan> {

  ScanController controller = ScanController();
  String qrcode = '';
  bool flashFlag = false;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('扫描二维码'),
          backgroundColor: KColor.primaryColor,
          actions: [
            Container(
              margin: EdgeInsets.only(right: 5.px),
              width: 27.px,
              child: InkWell(
                child: Image.asset(flashFlag?'images/icon-flash-on.png':'images/icon-flash-off.png',color: Colors.white,),
                onTap: (){
                  setState(() {
                    controller.toggleTorchMode();
                    flashFlag = !flashFlag;
                  });
                },
              ),
            )
          ],
          leading:Padding(
            padding: EdgeInsets.only(left: 15.px,top: 20.px),
            child:  InkWell(child: Text('退出',style: TextStyle(color: Colors.white)),onTap: (){Navigator.pop(context);}),
          ),
        ),
        body: Column(
          children: [
            Container(
              width: 375.px,
              height: 712.px,
              child: ScanView(
                controller: controller,
                scanAreaScale: .7,
                scanLineColor: KColor.primaryColor,
                onCapture: (data) {
                  setState(() {
                    qrcode = data;
                    Navigator.pop(context);
                    widget.scanCode(qrcode);
                  });
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}

闪光灯图片:
icon-flash-off.png
在这里插入图片描述
icon-flash-on.png
在这里插入图片描述

若不喜欢上面图片的话可以上图库自行搜索下载
https://www.iconfont.cn/home/index

关于选择本地图片扫描之类的可以参考官方文档进行查阅
https://pub.dev/packages/scan/versions/0.0.7

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:51:10  更:2021-09-08 10:52:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:29:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码