精选文章

Flutter 二维码进阶

2025-04-02 · 组件

这是二维码组件的进阶实践:权限、闪光灯、扫码频率控制。

0. 依赖

dependencies:
  qr_code_scanner: ^1.0.1
  permission_handler: ^10.2.0

1. 权限处理

Future<bool> ensureCameraPermission() async {
  var status = await Permission.camera.status;
  if (status.isDenied) status = await Permission.camera.request();
  return status.isGranted;
}

2. 闪光灯控制

await controller?.toggleFlash();
final isOn = await controller?.getFlashStatus();

3. 扫码节流(防止多次触发)

bool _locked = false;
controller!.scannedDataStream.listen((scanData) {
  if (_locked) return;
  _locked = true;
  controller?.pauseCamera();
  // handle result
  Future.delayed(const Duration(seconds: 1), () {
    _locked = false;
    controller?.resumeCamera();
  });
});

4. 常见坑点

  • 权限拒绝:需引导设置页
  • 多次回调:必须加锁

JJ

作者简介

专注于内容创作、产品策略与设计实践。欢迎交流合作。

上一篇 下一篇