• flutter 二维码


    一、生成二维码

    https://pub.flutter-io.cn/packages/qr_flutter

    qr_flutter: ^3.1.0
    QrImage(
      data: "1234567890",
      version: QrVersions.auto,
      size: 200.0,
    ),

     全

    //生成二维码
    import 'package:flutter/material.dart';
    import 'package:qr_flutter/qr_flutter.dart';
    class RQTest extends StatefulWidget {
      @override
      _RQTestState createState() => _RQTestState();
    }
    
    class _RQTestState extends State<RQTest> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: QrImage(
              data: "1234567890",
              version: QrVersions.auto,
              size: 200.0,
            ),
          ),
        );
      }
    }

    二、扫描二维码

    https://pub.flutter-io.cn/packages/barcode_scan

    barcode_scan: 3.0.1 #生成二维码
                () async {
                  var result = await BarcodeScanner.scan();
    
                  print(result.type); // 返回结果类型(barcode, cancelled, failed)
                  print(result.rawContent); //扫描返回的内容
                  print(result.format); // The barcode format (as enum)
                  print(result.formatNote); // If a unknown format was scanned this field contains a note
                }();

    //扫描二维码
    import 'package:flutter/material.dart';
    import 'package:barcode_scan/barcode_scan.dart';
    class RQTest extends StatefulWidget {
      @override
      _RQTestState createState() => _RQTestState();
    }
    
    class _RQTestState extends State<RQTest> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: RaisedButton(
              child: Text("扫一扫"),
              onPressed: (){
                () async {
                  var result = await BarcodeScanner.scan();
    
                  print(result.type); // 返回结果类型(barcode, cancelled, failed)
                  print(result.rawContent); //扫描返回的内容
                  print(result.format); // The barcode format (as enum)
                  print(result.formatNote); // If a unknown format was scanned this field contains a note
                }();
              },
            )
          ),
        );
      }
    } 

    1.Android端

    AndroidManifest.xml添加

        <!--照相机-->
        <uses-permission android:name="android.permission.CAMERA" />

    项目级别build.gradle添加 ---外层

    buildscript {
        ext.kotlin_version = '1.3.61'
        // ...
        dependencies {
            // ...
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }

    应用级别build.gradle添加 --内层

    apply plugin: 'kotlin-android'
    // ...
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        // ...
    }

    build.gradle 这两个文件如果生成时默认勾选的kotlin,貌似不用在单独添加

    报错:Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 18 declared in library

    说明某个依赖包的manifests中的minSdkVersion版本比项目的minSdkVersion要高

    解决

    1.更改项目的uses-sdk:minSdkVersion
    2.更改依赖包的uses-sdk:minSdkVersion
    3.在项目的manifests标签下添加

     xmlns:tools="http://schemas.android.com/tools"
     tools:overrideLibrary="依赖包的包名"
    <uses-sdk tools:overrideLibrary="xxx.xxx.aaa, xxx.xxx.bbb"/>

    2.IOS端

    Info.plist添加

    <dict>
        <!-- ... -->
        <key>NSCameraUsageDescription</key>
        <string>Camera permission is required for barcode scanning.</string>
        <!-- ... -->
    </dict>
  • 相关阅读:
    手动访问和传参
    子路由
    matlab 不同尺度的矩阵存储
    贝叶斯决策
    vim的使用
    linux另一种安装方式
    Linux中profile、bashrc、bash_profile之间的区别和联系
    emacs编辑器的使用
    关于鼠标不敏感导致自以为ubuntu很怪的问题
    各种可以远程
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/13611701.html
Copyright © 2020-2023  润新知