0
【笔记】Flutter 扫描二维码
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.
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();
}
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK