Flutter条码扫描与打印集成插件zebra_scan_print_datawedge的使用
Flutter条码扫描与打印集成插件zebra_scan_print_datawedge的使用
该插件提供了与Zebra DataWedge交互的简单接口,用于条形码扫描和标签打印功能。它包括管理DataWedge配置文件的方法、控制扫描以及通过Zebra打印机打印标签的方法。
功能
- 创建和管理DataWedge配置文件
- 启动和停止条形码扫描
- 获取扫描数据流
- 连接到Zebra打印机(通过IP)
- 使用Zebra打印机打印标签
- 校准Zebra打印机
安装
要使用Zebra DataWedge插件,请将其添加到pubspec.yaml
文件中:
dependencies:
zebra_scan_print_datawedge: ^<latest_version>
然后运行flutter pub get
以安装包。
设置
- 确保在Zebra设备上安装了Zebra DataWedge应用。
- 确保授予访问扫描器和打印机功能所需的权限。
使用
初始化DataWedge
在使用任何DataWedge功能之前,必须初始化插件。
ZebraDataWedge().initialized();
扫描方法
创建DataWedge配置文件
此方法使用给定的名称创建一个DataWedge配置文件。如果没有提供名称,默认为"TejasGProdInternal_2"
。
ZebraDataWedge().createDataWedgeProfile(profileName: "MyProfile");
启动扫描
此方法将启动条形码扫描器。
ZebraDataWedge().startScan();
停止扫描
此方法将停止条形码扫描器。
ZebraDataWedge().stopScan();
获取扫描数据流
此方法提供一个流,该流将在扫描时发出扫描的条形码数据。
ZebraDataWedge().getStreamOfData.listen((scannedData) {
print('Scanned Data: $scannedData');
});
启用DataWedge
启用DataWedge服务。
ZebraDataWedge().enableDataWedge();
禁用DataWedge
禁用DataWedge服务。
ZebraDataWedge().disableDataWedge();
打印机方法
连接到打印机
使用其IP地址和可选端口号(默认为9100
)连接到Zebra打印机。
bool isConnected = await ZebraDataWedge().connectToPrinter("192.168.1.100");
断开连接到打印机
使用其IP地址断开连接到Zebra打印机。
bool isDisconnected = await ZebraDataWedge().disconnectToPrinter("192.168.1.100");
打印标签
发送ZPL(Zebra编程语言)命令到打印机以打印标签。确保传递的标签被前导斜杠和单引号包围。
bool printed = await ZebraDataWedge().printerLabel("192.168.1.100", "/'^XA^FO100,100^A0N,50,50^FDHello, World!^FS^XZ'/");
校准打印机
通过发送校准命令来校准Zebra打印机。命令必须被前导斜杠和单引号包围。
bool calibrated = await ZebraDataWedge().calibratePrinter("192.168.1.100", "/'^XA^MMT^XZ'/");
检查打印机是否可用
此方法会检查打印机是否在提供的IP地址处可用。
bool isAvailable = await ZebraDataWedge().isPrinterAvailable("192.168.1.100");
API 方法
扫描方法
createDataWedgeProfile({String profileName = "TejasGProdInternal_2"})
: 使用给定的配置文件名称创建DataWedge配置文件。startScan()
: 开始条形码扫描过程。stopScan()
: 停止条形码扫描过程。getStreamOfData
: 提供扫描条形码的数据流。initialized()
: 初始化插件以使用。enableDataWedge()
: 启用DataWedge服务进行扫描。disableDataWedge()
: 禁用DataWedge服务进行扫描。
打印机方法
connectToPrinter(String ipAddress, {int portNumber = 9100})
: 使用提供的IP地址和端口号连接到Zebra打印机。disconnectToPrinter(String ipAddress)
: 断开连接到Zebra打印机。printerLabel(String ipAddress, String label)
: 发送ZPL标签到打印机。calibratePrinter(String ipAddress, String command)
: 发送校准命令到打印机。isPrinterAvailable(String ipAddress)
: 检查打印机是否在提供的IP地址处可用。
示例
void main() async {
ZebraDataWedge dataWedge = ZebraDataWedge();
// 初始化DataWedge
await dataWedge.initialized();
// 创建DataWedge配置文件
await dataWedge.createDataWedgeProfile(profileName: "MyProfile");
// 开始扫描
await dataWedge.startScan();
// 监听扫描数据
dataWedge.getStreamOfData.listen((scannedData) {
print('Scanned Data: $scannedData');
});
// 连接到打印机
bool connected = await dataWedge.connectToPrinter("192.168.1.100");
// 打印标签
bool printed = await dataWedge.printerLabel("192.168.1.100", "'^XA^FO100,100^A0N,50,50^FDHello, Zebra!^FS^XZ'");
// 检查打印机是否可用
bool isAvailable = await dataWedge.isPrinterAvailable("192.168.1.100");
// 校准打印机
bool calibrated = await dataWedge.calibratePrinter("192.168.1.100", "'^XA^MMT^XZ'");
// 断开连接到打印机
bool disconnected = await dataWedge.disconnectToPrinter("192.168.1.100");
}
更多关于Flutter条码扫描与打印集成插件zebra_scan_print_datawedge的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter条码扫描与打印集成插件zebra_scan_print_datawedge的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
要在Flutter应用中集成Zebra设备的条码扫描与打印功能,可以使用zebra_scan_print_datawedge
插件。这个插件允许你通过DataWedge API与Zebra设备进行交互,实现条码扫描和打印功能。
以下是使用zebra_scan_print_datawedge
插件的基本步骤:
1. 添加依赖
首先,在pubspec.yaml
文件中添加zebra_scan_print_datawedge
插件的依赖:
dependencies:
flutter:
sdk: flutter
zebra_scan_print_datawedge: ^0.0.1
然后,运行flutter pub get
来获取依赖。
2. 初始化插件
在你的Flutter应用启动时,初始化zebra_scan_print_datawedge
插件:
import 'package:zebra_scan_print_datawedge/zebra_scan_print_datawedge.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
ZebraScanPrintDatawedge.initialize();
runApp(MyApp());
}
3. 配置DataWedge Profile
在使用插件之前,你需要配置DataWedge Profile。你可以通过插件的configureDataWedgeProfile
方法来配置:
ZebraScanPrintDatawedge.configureDataWedgeProfile(
profileName: 'MyProfile',
profileEnabled: true,
scannerInputEnabled: true,
intentAction: 'com.example.ACTION',
intentCategory: 'android.intent.category.DEFAULT',
);
4. 处理扫描结果
你可以通过监听广播Intent来获取扫描结果。首先,定义一个Intent过滤器来接收扫描结果:
ZebraScanPrintDatawedge.setIntentListener((intent) {
String scannedData = intent['com.symbol.datawedge.data_string'];
print('Scanned Data: $scannedData');
});
5. 打印功能
使用插件的print
方法来发送打印任务到Zebra打印机:
ZebraScanPrintDatawedge.print(
printerAddress: '192.168.1.1', // 打印机IP地址
zplData: '^XA^FO50,50^A0N,30,30^FDHello, Zebra!^FS^XZ',
);
6. 权限处理
确保你的应用具有必要的权限,例如蓝牙和位置权限,以便与Zebra设备进行通信。
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />