flutter_barcode_scanner

一个用于 Flutter 应用的插件,为 Android 和 iOS 添加了条形码扫描支持。

flutter_barcode_scanning_demo

尝试示例

只需克隆或下载存储库,在Android Studio/ VS Code中打开项目,打开pubspec.yaml并点击Packages get
连接设备并点击run
要在 iPhone 上运行,您需要首次从 Xcode 运行,然后在example/ios中执行pod install,然后从 Xcode 运行。

入门

请按照 Android 和 iOS 的步骤进行操作

请仔细遵循iOS步骤

Android

:zap: 不用担心,您无需执行任何操作。

iOS - 需要 Swift 支持

部署目标 : 11

1. 从头开始

  1. 创建一个新的 flutter 项目。请确保选中包含 iOS 代码的 Swift 支持
  2. 创建新的 flutter 项目后,在 Xcode 中打开/ios项目,并将最低部署目标设置为 11
    并将Swift 版本设置为 5
  3. 设置部署目标和 Swift 版本后,关闭 Xcode,然后在 flutter 项目的/ios中运行pod install

基本配置已完成,现在请继续如何使用部分。

2. 添加到现有 flutter 应用

如果您的现有 iOS 代码是Swift,那么您只需要执行以下操作。

  1. 最低部署目标设置为 10,并将Swift 版本设置为 5
  2. 关闭 Xcode,然后在 flutter 项目的/ios中运行pod install
  3. 现在请继续如何使用部分。

如果您的现有 iOS 代码是Objective-C,那么您需要执行以下操作。

  1. 在不同位置创建一个同名的新 flutter 项目(创建时别忘了选中包含 iOS 代码的 Swift 支持
  2. 只需复制项目中新创建的/ios文件夹,然后替换现有的/ios
  3. 在 Xcode 中打开 iOS 项目,并将最低部署目标设置为 11,并将Swift 版本设置为 5
  4. /ios中运行pod install

注意:如果您之前对 iOS 部分进行了任何更改,您可能需要再次进行这些配置

如何使用?

要在 iOS 上使用,您需要添加相机使用说明。
为此,请打开 Xcode 并在Info.plist中添加相机使用说明。

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

在对 Android 和 iOS 进行更改后,将 flutter_barcode_scanner 添加到pubspec.yaml

dependencies:
  ...
  flutter_barcode_scanner: ^1.0.1

一次扫描

  1. 您需要先导入该软件包。
import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
  1. 然后使用scanBarcode方法访问条形码扫描。
String barcodeScanRes = await FlutterBarcodeScanner.scanBarcode(
                                                    COLOR_CODE, 
                                                    CANCEL_BUTTON_TEXT, 
                                                    isShowFlashIcon, 
                                                    scanMode);

在这里,在scanBarcode中,

COLOR_CODE是十六进制颜色,它是条形码覆盖层中线条的颜色,您可以根据需要传递颜色,

CANCEL_BUTTON_TEXT是屏幕上取消按钮的文本,您可以根据需要传递文本和语言,

isShowFlashIcon是一个布尔值,用于显示或隐藏闪光灯图标,

scanMode是一个枚举,用户可以在其中传递任何{ QR, BARCODE, DEFAULT },如果未传递任何值,则默认为QR
它会显示图形覆盖,例如条形码和 QR 码。

注意:目前,scanMode仅用于显示条形码和 QR 码的图形覆盖。选择任何一种模式都将扫描 QR 和条形码。

连续扫描

  • 如果您需要在不关闭摄像头的情况下连续扫描条形码,请使用FlutterBarcodeScanner.getBarcodeStreamReceiver
    参数将与FlutterBarcodeScanner.scanBarcode相同
    例如
FlutterBarcodeScanner.getBarcodeStreamReceiver("#ff6666", "Cancel", false, ScanMode.DEFAULT)
         .listen((barcode) { 
         /// barcode to be used
         });

GitHub

https://github.com/AmolGangadhare/flutter_barcode_scanner