You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在Dart中扫描DataMatrix二维码的方法及开源免费扫描库推荐

在Dart/Flutter中扫描DataMatrix二维码的开源免费方案

当然有合适的开源免费库可以满足你的需求!我之前在项目里也找过类似方案,避开了商业SDK(比如你提到的Scanbot那个),下面这两个库亲测好用:

1. mobile_scanner

这是目前Flutter生态里维护很活跃的条码扫描库,支持DataMatrix在内的几乎所有主流条码格式,许可证是MIT,完全免费无需授权。

基本用法:

  • 先在pubspec.yaml里添加依赖:
    dependencies:
      mobile_scanner: ^5.0.0 # 请用最新版本
    
  • 然后请求相机权限(iOS和Android都需要配置权限声明),接着就可以初始化扫描组件,指定只扫描DataMatrix:
    MobileScanner(
      controller: MobileScannerController(
        formats: const [BarcodeFormat.dataMatrix],
      ),
      onDetect: (capture) {
        final List<Barcode> barcodes = capture.barcodes;
        if (barcodes.isNotEmpty) {
          String data = barcodes.first.rawValue!;
          // 处理扫描到的DataMatrix内容
        }
      },
    )
    

2. zxing_flutter

基于老牌开源条码库ZXing的Flutter绑定,稳定性强,兼容更多旧设备,许可证是Apache 2.0,同样免费开源,支持DataMatrix扫描。

基本用法:

  • 添加依赖:
    dependencies:
      zxing_flutter: ^0.1.0 # 请用最新版本
    
  • 实现扫描逻辑:
    ZxingScanner(
      onScan: (result) {
        if (result.format == BarcodeFormat.DATA_MATRIX) {
          String data = result.text;
          // 处理扫描结果
        }
      },
      formats: const [BarcodeFormat.DATA_MATRIX],
    )
    

额外提示:

如果是纯Dart项目(非Flutter),可以直接用zxing-dart库——它是ZXing的纯Dart实现,也支持DataMatrix解码,适合后端或桌面端场景。另外不管用哪个库,都要记得在Android的AndroidManifest.xml和iOS的Info.plist中配置相机权限,否则扫描功能会无法正常工作。

内容的提问来源于stack exchange,提问作者Naweap

火山引擎 最新活动