Flutter二维码扫描与生成插件barkoder_flutter的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter二维码扫描与生成插件barkoder_flutter的使用

添加企业级条码扫描引擎到您的Flutter应用

barKoder SDK Flutter插件为Flutter提供了一个易于使用的解决方案,具有一个出色的界面,可以集成到iOS和Android应用中。

barKoder条码扫描SDK集成到您的面向企业和消费者的应用程序中,将立即把用户的智能手机和平板电脑变成坚固的条码扫描设备,而无需采购和维护昂贵且缓慢的硬件设备,这些设备的使用寿命非常短。

barKoder条码扫描SDK是一个相对较新的产品,在一个成熟市场中已经开发得足够先进甚至超越了其他竞争对手的API。其强大的条码读取引擎可以用于读取最广泛使用的条码,速度极快,识别率空前:

  • 1D - Codabar, Code 11, Code 25, Code 39, Code 93, Code 128, EAN-8, EAN-13, Interleaved 2 of 5, ITF-14, MSI Plessey, Pharmacode, Telepen, UPC-A & UPC-E
  • 2D - Aztec Code, Aztec Compact, Data Matrix, PDF417, Micro PDF417, DotCode, QR Code & Micro QR Code

您可以查看我们的免费演示应用Barcode Scanner by barKoder,该应用可在Apple App StoreGoogle Play Store 中下载。

安装与基本使用

1. 准备环境

安装Flutter SDK并设置您的环境。

2. 添加我们的flutter包

要将barkoder_flutter包添加到您的项目中,您有两种选择。您可以从pub.dev或本地路径中使用barkoder_flutter包。

要从pub.dev使用包,请在项目的依赖项中添加包名和版本号:

dependencies:
  flutter:
    sdk: flutter

  barkoder_flutter: <package version>

如果您更喜欢使用本地包,请从https://barkoder.com/repository下载包,并在项目的依赖项中设置包路径:

dependencies:
  flutter:
    sdk: flutter

  barkoder_flutter:
    path: <package local path>

3. 安装依赖

在终端中运行flutter pub get命令以安装项目中的指定依赖项。

4. 导入包

在项目中导入barkoder_flutter包:

import 'package:barkoder_flutter/barkoder_flutter.dart';

5. BarkoderView

此时,barkoder_flutter包已安装并导入到您的项目中。下一步是在布局中添加BarkoderView,并设置licenseKey参数和onBarkoderViewCreated回调。

@override
Widget build(BuildContext context) {
  return Scaffold(
    ...,
    body: BarkoderView(
      licenseKey: 'KEY',
      onBarkoderViewCreated: _onBarkoderViewCreated,
    ),
    ...
  );
}

许可证密钥是一串由字母数字字符组成的字符串。有关如何获取有效许可证的详细信息,请参阅第8节。

6. 准备扫描事件

_onBarkoderViewCreated回调函数中,SDK完全初始化并准备好进行配置或开始扫描过程。

void _onBarkoderViewCreated(barkoder) {
  _barkoder = barkoder;

  _barkoder.setBarcodeTypeEnabled(BarcodeType.qr, true);
  _barkoder.setRegionOfInterestVisible(true);
  
  ...
}

void _scanPressed() {
  _barkoder.startScanning((result) {
    // 成功扫描的结果在此处接收
  });
}

对于barkoder_flutter插件的完整用法,请检查我们的示例。

7. 相机权限

我们的SDK需要授予相机权限才能使用扫描功能。对于Android,权限是在插件的manifest文件中设置的。对于iOS,您需要在项目中的Info.plist文件中指定相机权限。

<key>NSCameraUsageDescription</key>
<string>Camera permission</string>

更多关于Flutter二维码扫描与生成插件barkoder_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter二维码扫描与生成插件barkoder_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用barkoder_flutter插件来实现二维码扫描与生成的示例代码。

1. 添加依赖

首先,在pubspec.yaml文件中添加barkoder_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  barkoder_flutter: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 导入插件

在你的Dart文件中导入插件:

import 'package:barkoder_flutter/barkoder_flutter.dart';

3. 生成二维码

下面是一个生成二维码的示例代码:

import 'package:flutter/material.dart';
import 'package:barkoder_flutter/barkoder_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: QRCodeGenerator(),
    );
  }
}

class QRCodeGenerator extends StatefulWidget {
  @override
  _QRCodeGeneratorState createState() => _QRCodeGeneratorState();
}

class _QRCodeGeneratorState extends State<QRCodeGenerator> {
  String qrCodeData = "Hello, Flutter!";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Generate QR Code'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('QR Code Data: $qrCodeData'),
            SizedBox(height: 20),
            BarkodeWidget(
              barkodeData: qrCodeData,
              barkodeType: BarkodeType.QR_CODE,
              width: 250,
              height: 250,
              onError: (context, error) {
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Error: $error')),
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}

4. 扫描二维码

下面是一个扫描二维码的示例代码:

import 'package:flutter/material.dart';
import 'package:barkoder_flutter/barkoder_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: QRCodeScanner(),
    );
  }
}

class QRCodeScanner extends StatefulWidget {
  @override
  _QRCodeScannerState createState() => _QRCodeScannerState();
}

class _QRCodeScannerState extends State<QRCodeScanner> {
  String scannedData = "";

  Future<void> _scanQRCode() async {
    try {
      String result = await BarkodeScanner.scan(
        onPermissionDenied: (context) {
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Permission Denied')),
          );
        },
      );
      setState(() {
        scannedData = result;
      });
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Error: ${e.message}')),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Scan QR Code'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Scanned Data: $scannedData'),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _scanQRCode,
              child: Text('Scan QR Code'),
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  1. 权限处理:在实际应用中,扫描二维码需要相机权限,请确保在AndroidManifest.xmlInfo.plist中正确配置相机权限。
  2. 插件版本barkoder_flutter插件的API可能会随着版本更新而变化,请参考插件的官方文档以获取最新信息。

通过这些代码示例,你可以在Flutter应用中实现二维码的生成和扫描功能。希望这对你有所帮助!

回到顶部