Flutter条码扫描插件zebra_scan_datawedge的使用
Flutter条码扫描插件zebra_scan_datawedge的使用
ZebraDataWedge插件
ZebraDataWedge
插件是一个用于与 Zebra 的 DataWedge 进行交互的 Flutter 接口,使你能够创建和配置 DataWedge 配置文件,控制扫描过程,启用或禁用 DataWedge 功能,并通过流获取扫描数据。
特性
- 创建DataWedge配置文件:轻松创建新的DataWedge配置文件,并自定义配置文件名称。
- 启动和停止扫描:通过编程方式控制扫描过程。
- 启用或禁用DataWedge:在Zebra设备上切换DataWedge功能。
- 获取扫描数据流:通过流实时获取扫描数据。
安装
在你的 pubspec.yaml
文件中添加插件:
dependencies:
zebra_datawedge: ^1.0.0 # 替换为实际版本
然后安装包:
flutter pub get
使用
导入包
import 'package:zebra_datawedge/zebra_datawedge.dart';
初始化插件
创建 ZebraDataWedge
类的一个实例:
final zebraDataWedge = ZebraDataWedge();
方法
1. createDataWedgeProfile
创建一个新的DataWedge配置文件并指定名称。
await zebraDataWedge.createDataWedgeProfile(profileName: "CustomProfileName");
- 参数:
profileName
(可选):配置文件的名称。默认值为"TejasGProdInternal_2"
。
2. getStreamOfData
一个提供最新扫描数据的流。
zebraDataWedge.getStreamOfData.listen((scannedData) {
print("Scanned Data: $scannedData");
});
3. startScan
启动扫描过程。
await zebraDataWedge.startScan();
4. stopScan
停止扫描过程。
await zebraDataWedge.stopScan();
5. initialized
初始化DataWedge并开始监听流。
zebraDataWedge.initialized();
6. disableDataWedge
在设备上禁用DataWedge。
await zebraDataWedge.disableDataWedge();
7. enableDataWedge
在设备上启用DataWedge。
await zebraDataWedge.enableDataWedge();
示例
以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:zebra_datawedge/zebra_datawedge.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final zebraSdk = ZebraDataWedge();
[@override](/user/override)
void initState() {
super.initState();
zebraSdk.initialized();
zebraSdk.createDataWedgeProfile(profileName: "TejasG_Prod");
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Zebra SDK Plugin'),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
margin: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
border: Border.all(color: Colors.grey)),
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(20.0),
child: Center(
child: StreamBuilder(
stream: zebraSdk.getStreamOfData,
builder: (context, snap) {
if (snap.hasData) {
return Text(
snap.data ?? "No Data Available",
style: const TextStyle(
fontWeight: FontWeight.bold),
);
} else {
return const Text(
"Scan new data...",
style: TextStyle(
fontWeight: FontWeight.normal,
color: Colors.grey),
);
}
}),
),
),
const Divider(
height: 1,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
children: [
TextButton(
onPressed: zebraSdk.startScan,
child: const Text("Start Scan")),
TextButton(
onPressed: zebraSdk.stopScan,
child: const Text("Stop Scan")),
],
),
Column(
children: [
TextButton(
onPressed: zebraSdk.disableDataWedge,
child: const Text("Disable Data Wedge")),
TextButton(
onPressed: zebraSdk.enableDataWedge,
child: const Text("Enable Data Wedge")),
],
)
],
)
],
),
)
],
),
),
);
}
}
更多关于Flutter条码扫描插件zebra_scan_datawedge的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter条码扫描插件zebra_scan_datawedge的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
zebra_scan_datawedge
是一个用于在 Flutter 应用中与 Zebra 设备上的 DataWedge 服务进行交互的插件。DataWedge 是 Zebra 设备上的一个服务,用于处理条码扫描和其他数据输入。通过 zebra_scan_datawedge
插件,你可以轻松地在 Flutter 应用中集成条码扫描功能。
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 zebra_scan_datawedge
插件的依赖:
dependencies:
flutter:
sdk: flutter
zebra_scan_datawedge: ^0.0.1 # 请检查最新版本
然后运行 flutter pub get
来安装插件。
2. 配置 DataWedge
在使用插件之前,你需要在 Zebra 设备上配置 DataWedge 以将扫描的数据发送到你的 Flutter 应用。
- 打开 DataWedge 应用程序。
- 创建一个新的配置文件或使用现有配置文件。
- 在“输出插件”中,选择“Intent 输出”。
- 设置 Intent 操作的格式为
com.your.package.name.SCAN
(将com.your.package.name
替换为你的应用包名)。 - 设置 Intent 类别为
android.intent.category.DEFAULT
。 - 设置 Intent 数据为
text/plain
。 - 确保启用了“发送解码数据”选项。
3. 在 Flutter 中使用插件
3.1 初始化插件
在你的 Flutter 应用中,首先需要初始化 zebra_scan_datawedge
插件。
import 'package:zebra_scan_datawedge/zebra_scan_datawedge.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
ZebraScanDataWedge _zebraScanDataWedge;
[@override](/user/override)
void initState() {
super.initState();
_zebraScanDataWedge = ZebraScanDataWedge();
_initializeScanner();
}
void _initializeScanner() async {
try {
await _zebraScanDataWedge.initialize();
_zebraScanDataWedge.scanDataStream.listen((scanData) {
// 处理扫描到的数据
print('Scanned Data: $scanData');
});
} catch (e) {
print('Failed to initialize scanner: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Zebra Scanner Example'),
),
body: Center(
child: Text('Scan a barcode'),
),
),
);
}
}
3.2 处理扫描数据
在上面的代码中,_zebraScanDataWedge.scanDataStream
是一个 Stream
,它会发出每次扫描到的数据。你可以通过监听这个 Stream
来处理扫描到的条码数据。
3.3 销毁插件
当你的应用不再需要扫描功能时,应该销毁插件以释放资源。
[@override](/user/override)
void dispose() {
_zebraScanDataWedge.dispose();
super.dispose();
}