91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flutter如何實現掃二維碼功能

發布時間:2022-03-23 11:24:51 來源:億速云 閱讀:1070 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Flutter如何實現掃二維碼功能”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Flutter如何實現掃二維碼功能”這篇文章吧。

具體內容如下

首先在pubspec.yaml中添加:

dependencies:
  qrscan: ^0.3.2
  event_bus: ^2.0.0

在androd清單文件中加入以下權限:

<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(); //通過掃碼獲取二維碼中的數據
    final info = QRInfo("${cameraScanResult}");
    eventBus.fire(info);
    print(cameraScanResult); //在控制臺打印
  }
}

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如何實現掃二維碼功能

以上是“Flutter如何實現掃二維碼功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉阴县| 雷山县| 连城县| 丹凤县| 宁远县| 康平县| 于都县| 胶南市| 乌拉特前旗| 滦南县| 遵化市| 淮南市| 铜鼓县| 泰州市| 永福县| 大洼县| 汉阴县| 乌兰浩特市| 谷城县| 广宗县| 平邑县| 杭锦旗| 万年县| 津市市| 正安县| 收藏| 宜春市| 金乡县| 保靖县| 汝南县| 荆州市| 平江县| 交城县| 沾化县| 沙河市| 城步| 哈巴河县| 柯坪县| 扶余县| 恩施市| 那曲县|