Flutter条形码账单扫描插件barcode_bill_scanner的使用
Flutter条形码账单扫描插件 barcode_bill_scanner
的使用
简介
Barcode Bill Scanner
是一个专门为Flutter开发的条形码扫描插件,主要用于巴西的应用程序中从水平条形码(主要是账单)中获取可读代码。巴西的条形码格式由FEBRABAN定义,该格式将常规的44位代码转换为47~48位字符长度的代码。此插件默认将条形码转换为FEBRABAN格式,但可以根据需要关闭此功能。
使用方法
以下是一个完整的示例Demo,展示了如何在Flutter项目中使用 barcode_bill_scanner
插件进行条形码扫描,并显示扫描结果。
import 'package:barcode_bill_scanner/barcode_bill_scanner.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'BarcodeBillScanner Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String? barcode; // 用于存储扫描到的条形码
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('条形码账单扫描'),
),
body: Stack(
alignment: Alignment.center,
children: [
BarcodeBillScanner(
onActionLabel: "取消", // 设置取消操作的标签
onSuccess: (String value) async {
// 当成功扫描到条形码时,更新状态并显示扫描结果
setState(() => barcode = value);
},
onCancel: () {
// 当用户取消扫描时,重置条形码
setState(() => barcode = null);
},
),
if (barcode != null)
Center(
child: RotatedBox(
quarterTurns: 1, // 将文本旋转90度以适应竖屏显示
child: Text(
barcode!,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 20.0,
color: Colors.amber, // 设置扫描结果显示的颜色
),
),
),
),
],
),
);
}
}
配置要求
iOS
- 最低iOS部署目标: 10.0
- Xcode版本: 12或更高
- Swift版本: 5
- ML Kit仅支持64位架构 (x86_64 和 arm64),因此需要排除32位架构 (i386 和 armv7)。
为了确保 flutter build ios
或 flutter build ipa
能够正常运行,您需要在Xcode中排除 armv7
架构:
-
打开Xcode项目:
- 选择
Runner
项目 - 进入
Build Settings
- 在
Excluded Architectures
中添加armv7
- 选择
-
修改
Podfile
文件,确保其内容如下:
$iOSVersion = '10.0'
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end
end
end
end
更多关于Flutter条形码账单扫描插件barcode_bill_scanner的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复