scan_code_page.dart 814 Bytes
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mobile_scanner/mobile_scanner.dart';

class ScanCodePage extends StatelessWidget {
  const ScanCodePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('扫码'),
        leading: IconButton(
          icon: const Icon(Icons.arrow_back),
          onPressed: () {
            context.pop();
          },
        ),
      ),
      body: MobileScanner(
        onDetect: (BarcodeCapture barcode) {
          final String? code = barcode.barcodes.first.rawValue;
          if (code != null) {
            // 返回扫码结果
            context.pop(code);
          }
        },
        fit: BoxFit.contain,
      ),
    );
  }
}