0

【笔记】Flutter 扫描二维码

 1 year ago
source link: https://loli.fj.cn/2023/08/21/Flutter%E6%89%AB%E6%8F%8F%E4%BA%8C%E7%BB%B4%E7%A0%81/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Flutter 扫描二维码

通过 qr_code_scanner 扫描二维码

flutter pub add qr_code_scanner
import 'package:qr_code_scanner/qr_code_scanner.dart';

扫描二维码

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

main() async {
runApp(
const MaterialApp(
home: App(),
),
);
}

class App extends StatefulWidget {
final Function(Barcode? result)? completed;

const App({
Key? key,
this.completed,
}) : super(key: key);

@override
AppState createState() => AppState();
}

class AppState extends State<App> {
final GlobalKey qrKey = GlobalKey();
QRViewController? _controller;

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("文本内容")),
body: Column(
children: [
SizedBox(
width: 192,
height: 108,
child: QRView(
key: qrKey,
onQRViewCreated: (QRViewController controller) {
_controller = controller;
controller.scannedDataStream.listen((result) {
print(result.code);
});
},
),
),
],
),
);
}

@override
void dispose() {
_controller!.dispose();
super.dispose();
}
}

扫码后停止

_controller!.stopCamera():停止扫码
_controller!.pauseCamera():暂停扫码,画面也会静止
_controller!.resumeCamera():继续扫码,恢复被暂停的画面
_controller!.flipCamera():翻转摄像头

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

main() async {
runApp(
const MaterialApp(
home: App(),
),
);
}

class App extends StatefulWidget {
final Function(Barcode? result)? completed;

const App({
Key? key,
this.completed,
}) : super(key: key);

@override
AppState createState() => AppState();
}

class AppState extends State<App> {
final GlobalKey qrKey = GlobalKey();
QRViewController? _controller;

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("文本内容")),
body: Column(
children: [
SizedBox(
width: 192,
height: 108,
child: QRView(
key: qrKey,
onQRViewCreated: (QRViewController controller) {
_controller = controller;
controller.scannedDataStream.listen((result) {
print(result.code);
_controller!.stopCamera();
});
},
),
),
],
),
);
}

@override
void dispose() {
_controller!.dispose();
super.dispose();
}
}

稀土掘金 —— 剪刀石头布啊


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK