日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Flutter實(shí)現(xiàn)掃二維碼功能_Android

作者:GalenWu ? 更新時(shí)間: 2022-05-25 編程語言

本文實(shí)例為大家分享了Flutter實(shí)現(xiàn)掃二維碼功能的具體代碼,供大家參考,具體內(nèi)容如下

首先在pubspec.yaml中添加:

dependencies:
? qrscan: ^0.3.2
? event_bus: ^2.0.0

在androd清單文件中加入以下權(quán)限:





import 'package:flutter/material.dart';
import 'package:qrscan/qrscan.dart' as scanner;
import 'package:event_bus/event_bus.dart';

void main() {
? runApp(MyApp());
}

final eventBus = EventBus();

class MyApp extends StatelessWidget {
? @override
? Widget build(BuildContext context) {
? ? return MaterialApp(home: HomePage());
? }
}

class HomePage extends StatelessWidget {
? @override
? Widget build(BuildContext context) {
? ? return Scaffold(
? ? ? appBar: AppBar(title: Text("QRScan")),
? ? ? body: BodyContent(),
? ? );
? }
}

class BodyContent extends StatelessWidget {
? const BodyContent({Key? key}) : super(key: key);

? @override
? Widget build(BuildContext context) {
? ? return Container(
? ? ? ? child: Column(
? ? ? children: [HYButton(), HYText()],
? ? ));
? }
}

class HYButton extends StatelessWidget {
? @override
? Widget build(BuildContext context) {
? ? return ElevatedButton(
? ? ? child: Text("掃一掃"),
? ? ? onPressed: scan,
? ? );
? }

? Future scan() async {
? ? String? cameraScanResult = await scanner.scan(); //通過掃碼獲取二維碼中的數(shù)據(jù)
? ? final info = QRInfo("${cameraScanResult}");
? ? eventBus.fire(info);
? ? print(cameraScanResult); //在控制臺(tái)打印
? }
}

class HYText extends StatefulWidget {
? @override
? _HYTextState createState() => _HYTextState();
}

class _HYTextState extends State {
? String message = "Hello GalenWu";

? @override
? void initState() {
? ? super.initState();

? ? eventBus.on().listen((data) {
? ? ? setState(() {
? ? ? ? message = "${data.qrcode}";
? ? ? });
? ? });
? }

? @override
? Widget build(BuildContext context) {
? ? return Text(
? ? ? message,
? ? ? style: TextStyle(fontSize: 30),
? ? );
? }
}

class QRInfo {
? String? qrcode;
? QRInfo(this.qrcode);
}

原文鏈接:https://blog.csdn.net/m0_38013946/article/details/120777406

欄目分類
最近更新