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

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

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

qr_terminal

在终端中打印二维码。

该项目灵感来源于 qrcode-terminal 的 JavaScript/Node 版本。

Pub包

使用Dart安装:

dart pub add qr_terminal

使用Flutter安装:

flutter pub add qr_terminal

然后导入此模块:

import 'package:qr_terminal/qr_terminal.dart' as $qr_terminal;

使用方法

生成常规二维码

$qr_terminal.generate("Hello World!");

生成小型二维码

$qr_terminal.generate("Hello World!", small: true);

指定QR码类型生成二维码

$qr_terminal.generate("Smol", typeNumber: 4);

指定QR码类型并生成小型二维码

$qr_terminal.generate("Smoller", typeNumber: 4, small: true);

许可证

GNU GPL v3


完整示例代码

import 'package:qr_terminal/qr_terminal.dart' as $qr_terminal;

void main(List<String> arguments) {
  // 生成常规二维码
  $qr_terminal.generate("Hello World!");
  print("");

  // 生成小型二维码
  $qr_terminal.generate("Hello World!", small: true);
  print("");

  // 指定QR码类型生成二维码
  $qr_terminal.generate("Smol", typeNumber: 4);
  print("");

  // 指定QR码类型并生成小型二维码
  $qr_terminal.generate("Smoller", typeNumber: 4, small: true);
  print("");
}

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

1 回复

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


在Flutter中,虽然qr_terminal这个插件名称听起来像是用于二维码扫描与生成的,但实际上在Flutter社区中,更常见和广泛使用的插件是qr_code_scannerqr_flutter(用于生成二维码)。由于qr_terminal不是一个广为人知的Flutter插件,且经过搜索并未找到确切的qr_terminal Flutter插件,因此我将分别展示如何使用qr_code_scanner进行二维码扫描和使用qr_flutter生成二维码。

二维码扫描:使用qr_code_scanner

首先,添加qr_code_scanner依赖到你的pubspec.yaml文件中:

dependencies:
  flutter:
    sdk: flutter
  qr_code_scanner: ^4.0.0  # 请检查最新版本号

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

下面是一个简单的示例,展示如何使用qr_code_scanner来扫描二维码:

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

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

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

class QRViewExample extends StatefulWidget {
  @override
  _QRViewExampleState createState() => _QRViewExampleState();
}

class _QRViewExampleState extends State<QRViewExample> {
  final GlobalKey qrKey = GlobalKey();
  QRViewController? controller;

  @override
  void reassemble() {
    super.reassemble();
    if (Platform.isAndroid) {
      controller?.pauseCamera();
    }
  }

  @override
  void dispose() {
    controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          Expanded(
            flex: 5,
            child: QRView(
              key: qrKey,
              onQRViewCreated: _onQRViewCreated,
            ),
          ),
          Expanded(
            flex: 1,
            child: Center(
              child: Text('Scan Result: ${_result ?? ''}'),
            ),
          ),
        ],
      ),
    );
  }

  void _onQRViewCreated(QRViewController controller) {
    setState(() {
      this.controller = controller;
      controller.scannedDataStream.listen((scanData) {
        setState(() {
          _result = scanData;
        });
      });
    });
  }

  String? _result;
}

二维码生成:使用qr_flutter

首先,添加qr_flutter依赖到你的pubspec.yaml文件中:

dependencies:
  flutter:
    sdk: flutter
  qr_flutter: ^4.0.0  # 请检查最新版本号

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

下面是一个简单的示例,展示如何使用qr_flutter来生成二维码:

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

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

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

class QRCodeGeneratorExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final String qrCodeData = "https://flutter.dev";

    return Scaffold(
      appBar: AppBar(
        title: Text('QR Code Generator Example'),
      ),
      body: Center(
        child: QrImage(
          data: qrCodeData,
          version: QrVersions.auto,
          size: 200.0,
          color: Colors.black,
        ),
      ),
    );
  }
}

这两个示例分别展示了如何在Flutter应用中实现二维码的扫描和生成。如果你确实需要一个名为qr_terminal的特定插件,请确认插件的正确名称或提供更多上下文信息,因为qr_terminal并不是一个标准的Flutter插件名称。

回到顶部