Flutter 调用摄像头扫描二维码插件

原生平台如果想要实现二维码扫描很简单,例如iOS可以根据Version库或者AVFoudation库很快定制出相应工具来,Flutter只能依赖第三方插件了。

插件依赖:

dependencies:
  flutter:
    sdk: flutter

  ...
  barcode_scan2: ^4.2.1

可以根据自己的Flutter项目选择是1代还是2代。1代不支持空安全,二代支持。
另外不要忘记了该插件最低依赖为 Android v 18,低于该平台将无法编译。

原生项目权限:

以Android为例,在Mainifexist.xml中声明一下权限:
(uses-permission标签)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.today_art">

   <application
   ...
   </application>

   <uses-permission android:name="android.permission.CAMERA" />
    
</manifest>

调用

此操作是个异步任务。

ScanOptions是个界面配置模型,配置返回键文字,闪光灯开启与关闭状态的文字。result是异步返回结果。

  _openQREvent() async {
    var options = const ScanOptions(
        android: AndroidOptions(aspectTolerance: 0.5, useAutoFocus: true),
        autoEnableFlash: false,
        strings: {'cancel': '退出', 'flash_on': '开启闪光灯', 'flash_off': '关闭闪光灯'}
    );
    var result = await BarcodeScanner.scan(options: options);
    String qrcode = result.rawContent;
    print(qrcode);
    print(result.type); // The result type (barcode, cancelled, failed)
    print(result.rawContent); // The barcode content
    print(result.format); // The barcode format (as enum)
    print(result.formatNote); //
  }

界面如下:
请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Flutter 应用程序中实现二维码扫描,可以使用 `qr_code_scanner` 或 `barcode_scan` 插件。 `qr_code_scanner` 插件提供了一个 `QRView` widget,可以轻松地将二维码扫描器集成到应用程序中。以下是一个简单的示例: 1. 添加 `qr_code_scanner` 插件到 `pubspec.yaml` 文件中: ``` dependencies: qr_code_scanner: ^0.4.3 ``` 2. 导入 `qr_code_scanner` 包: ``` import 'package:qr_code_scanner/qr_code_scanner.dart'; ``` 3. 创建一个 `QRViewController` 和一个 `QRView`: ``` QRViewController controller; final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); @override Widget build(BuildContext context) { return QRView( key: qrKey, onQRViewCreated: _onQRViewCreated, ); } void _onQRViewCreated(QRViewController controller) { this.controller = controller; controller.scannedDataStream.listen((scanData) { // 处理扫描到的二维码 }); } ``` 当用户扫描二维码时,`QRViewController` 会不断发送扫描数据到 `scannedDataStream`,可以在监听函数中处理这些数据。 如果想要更多的控制权,可以使用 `barcode_scan` 插件。这个插件提供了一个 `scan()` 方法,可以启动一个新的扫描器界面,并且可以自定义扫描器的外观和行为。以下是一个简单的示例: 1. 添加 `barcode_scan` 插件到 `pubspec.yaml` 文件中: ``` dependencies: barcode_scan: ^2.0.0 ``` 2. 导入 `barcode_scan` 包: ``` import 'package:barcode_scan/barcode_scan.dart'; ``` 3. 调用 `scan()` 方法并处理返回的数据: ``` Future<void> scan() async { String barcode = await BarcodeScanner.scan(); // 处理扫描到的二维码 } ``` 在调用 `scan()` 方法时,会启动一个新的扫描器界面,并等待用户扫描二维码。当用户扫描二维码后,会返回扫描到的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值