您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Flutter如何實(shí)現(xiàn)掃二維碼功能”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Flutter如何實(shí)現(xiàn)掃二維碼功能”這篇文章吧。
具體內(nèi)容如下
首先在pubspec.yaml中添加:
dependencies: qrscan: ^0.3.2 event_bus: ^2.0.0
在androd清單文件中加入以下權(quán)限:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!-- 路徑:E:\chen\android\app\src\main\AndroidManifest.xml -->
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<HYText> { String message = "Hello GalenWu"; @override void initState() { super.initState(); eventBus.on<QRInfo>().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); }
以上是“Flutter如何實(shí)現(xiàn)掃二維碼功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。