二维码扫描器

一款同时适用于iOS和Android的QR码扫描器,通过原生嵌入平台视图在Flutter中实现。与Flutter的集成非常流畅,远胜于跳转到原生Activity或ViewController来执行扫描。

截图

Android

iOS

获取扫描到的二维码

当识别到二维码时,识别出的文本将设置在“qrText”中。

class _QRViewExampleState extends State<QRViewExample> {
  final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
  var qrText = "";
  QRViewController controller;

  @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: $qrText'),
            ),
          )
        ],
      ),
    );
  }

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

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

iOS 集成

要使用此插件,请将以下内容添加到您的Info.plist文件中

<key>io.flutter.embedded_views_preview</key>
<true/>

翻转相机(后置/前置)

默认相机是后置相机。

controller.flipCamera();

闪光灯(关闭/开启)

默认情况下,闪光灯是关闭的。

controller.toggleFlash();

恢复/暂停

暂停相机流和扫描器。

controller.pause();

恢复相机流和扫描器。

controller.resume();

待办事项

  • iOS原生嵌入是根据本软件包发布日期时框架支持的内容编写的。随着框架支持的改进,它需要得到改进。
  • 未来将提供默认状态的选项。
  • 最后,我欢迎PR来使其变得更好:),谢谢

GitHub

https://github.com/juliuscanute/qr_code_scanner