Flutter barcode_scanner2 使用

本文介绍了Flutter插件barcode_scanner2的使用方法,包括如何导入、配置权限,以及基本和进阶的使用示例。该插件支持二维码和条形码扫描,并提供了相机权限管理和自动对焦等功能。

Flutter barcode_scanner2 使用

barcode_scanner2 是一个基于flutter平台的第三方扫码库,其前身barcode_scanner 已不再更新。其实现了二维码、条形码识别功能,以及调用的相机相关功能(如闪光灯等)。其实现了自动获取运行时权限功能。

导入

首先,在项目的android工程中,在其AndroidManifest.xml中添加相机权限

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

同时确保工程支持kotlin插件。

iOS目录下则需要在Info.plist中声明需要的权限

<dict>
    <!-- ... ->
    <key>NSCameraUsageDescription</key>
    <string>权限需求说明文本</string>
    <!-- ... ->
</dict>

在项目目录下的pubspec.yaml文件中添加如下依赖

dependencies: 
    # ...
    barcode_scan: any   // 指定版本号

运行Packages get即可

使用

基本用法示例:
import 'package:barcode_scan/barcode_scan.dart';

void funcB() {
    // scan()方法返回 Future<ScanResult>实例
    BarcodeScanner.scan().then((value) {
        print(result.type); // 结果类别,barcode、cancelled,failed三种结果
        print(result.rawContent); // 扫码结果
        print(result.format); 
        print(result.formatNote);   // 未知格式会在此处生成提示
    }
}

基本用法中,直接调用scan()方法可以返回一个Future结果,包含扫码结果、格式等内容。scan()方法有一个接受options参数的重载

进阶用法示例:
void funB() {
    var options = ScanOptions(
        // 附带参数
    );
    
    BarcodeScanner.scan(options: options).then((value) {
        print(result.type); // 结果类别,barcode、cancelled,failed三种结果
        print(result.rawContent); // 扫码结果
        print(result.format); 
        print(result.formatNote);   // 未知格式会在此处生成提示
    }
}

options 包含如下配置

Option数据类型描述适用于
stringsmapcancel: 取消按钮文字; flash_on: 开启闪光灯按钮文字; flash_off: 关闭闪光灯按钮文字cancel: iOS; 其他: iOS/Android
restrictFormatBarcodeFormat[]限制不可识别的格式iOS/Android
useCameraint使用的摄像头编号(参考```BarcodeScanner.numberOfCameras)iOS/Android
autoEnableFlashbool是否自动开启闪光灯iOS/Android
androidAndroidOptions*android 相关配置Android

*AndroidOptions包含两个属性,aspectTolerance为double类型,用来设置画面比例。useAutoFocus为bool类型,用来开关自动对焦功能

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值