qr_scanner_alternative
一个用于 Flutter 应用的插件,它为 Android 和 iOS 平台都添加了条形码扫描支持。
尝试示例
只需克隆或下载仓库,在 Android Studio/ VS Code
中打开项目,打开 pubspec.yaml
并点击 Packages get
。连接设备并运行 run
。要运行在 iPhone 上,需要首次从 Xcode 运行,然后只需在 example/ios
中执行 pod install
,然后从 Xcode 运行。
入门
遵循 Android 和 iOS 的步骤
请仔细遵循 iOS 步骤
Android
⚡ 不必担心,您不需要做任何事情。
iOS - 需要 Swift 支持
部署目标:12
1. 新开始
- 创建一个新的 Flutter 项目。请检查 包含 iOS 代码的 Swift 支持。
- 创建新的 Flutter 项目后,在 Xcode 中打开
/ios
项目,将最小的 部署目标设置为 12,并将 Swift 版本设置为 5。 - 设置部署目标和使用 Swift 版本后,关闭 Xcode,然后在 flutter 项目中的
/ios
目录下运行 pod install。
您已完成基本配置,现在请转到 如何使用 部分。
2. 添加到现有 Flutter 应用
如果您的现有 iOS 代码是 Swift,那么您只需按照以下步骤操作。
- 将 最小部署目标设置为 12,并将 Swift 版本设置为 5。
- 关闭 Xcode,并在 flutter 项目中的
/ios
路径下运行 pod install。 - 现在继续到 如何使用 部分。
如果您的现有 iOS 代码是 Objective-C,则需要按照以下步骤操作。
- 在不同的位置创建与现有项目同名的新 flutter 项目(创建时别忘了勾选 为 iOS 代码包含 Swift 支持)。
- 只需将新创建的项目中的
/ios
文件夹复制,并用现有/ios
文件夹替换。 - 在 Xcode 中打开 ios 项目,并将 最小部署目标设置为 12,将 Swift 版本设置为 5。
- 在
/ios
中运行 pod install。
注意:如果在 iOS 部分之前进行了任何更改,可能需要重新进行这些配置。
如何使用?
要在 iOS 上使用,您需要添加相机使用描述。请在 Xcode 中添加 Info.plist
中的相机使用描述。
<key>NSCameraUsageDescription</key>
<string>Camera permission is required for barcode scanning.</string>
在修改 Android 和 iOS 后,请将 qr_scanner_alternative/ 添加到 pubspec.yaml
。
dependencies:
...
qr_scanner_alternative/: ^2.0.0
一次性扫描
- 首先需要导入该包。
import 'package:qr_scanner_alternative//qr_scanner_alternative/.dart';
- 然后使用
scanBarcode
方法来访问条形码扫描。
String barcodeScanRes = await QrScannerAlternative.scanBarcode(
COLOR_CODE,
CANCEL_BUTTON_TEXT,
isShowFlashIcon,
scanMode);
在scanBarcode
中,
COLOR_CODE
是十六进制颜色,代表条形码覆盖中线的颜色,可以传递您选择的颜色,
CANCEL_BUTTON_TEXT
是屏幕上取消按钮的文本,您可以传递您选择的文本和语言,
isShowFlashIcon
是用于显示或隐藏闪光灯图标的布尔值,
scanMode
是一个枚举,用户可以传递{ QR, BARCODE, DEFAULT }
中的任何一个,如果不传递任何内容,则默认为QR
。它显示条形码和二维码的图形覆盖。
注:当前,scanMode
仅用于显示条形码和二维码的图形覆盖。选择任何这种模式都会扫描条形码和二维码。
连续扫描
- 如果您需要在不关闭相机的情况下连续扫描条形码,请使用
QrScannerAlternative.getBarcodeStreamReceiver
,参数与FlutterBarScannerAlterative.scanBarcode
相同,例如。
QrScannerAlternative.getBarcodeStreamReceiver("#ff6666", "Cancel", false, ScanMode.DEFAULT)
.listen((barcode) {
/// barcode to be used
});
贡献
衷心希望看到任何贡献,如果您喜欢,请 ⭐ 点赞
联系
电子邮件: [email protected]