详解Flutter扫码识别二维码内容

前面一篇写了生成二维码图片,这篇来写使用相机扫描识别二维码

识别二维码需要用到插件barcode_scan

首先在pubspec.yaml文件中添加以下依赖,添加依赖后在pubspec.yaml运行flutter packages get或 使用IDE更新软件包。

dependencies:
 ...
 barcode_scan: ^1.0.0

Android配置

在使用它之前需要先配置 android\app\src\main\AndroidManifest.xml

在该文件中添加添加app获取相机权限及BarcodeScanner activity

<!--获取相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>

如下图所示

编辑项目级build.gradle文件

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

如图所示

以及编辑应用级build.gradle文件

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

如图所示

注意 apply plugin: 'kotlin-android' 需要放在 apply plugin: 'com.android.application' 之后

IOS配置

在 Info.plist 中添加一下内容

<key>NSCameraUsageDescription</key>
<string>Camera permission is required for barcode scanning.</string>

扫码实现

完成以上步骤之后在需要触发扫码的页面引用barcode_scan

import 'package:barcode_scan/barcode_scan.dart';

然后写上一个调用扫码的方法

// 扫描二维码
Future scan() async {
 try {
  // 此处为扫码结果,barcode为二维码的内容
  String barcode = await BarcodeScanner.scan();
  print('扫码结果: '+barcode);
 } on PlatformException catch (e) {
  if (e.code == BarcodeScanner.CameraAccessDenied) {
   // 未授予APP相机权限
   print('未授予APP相机权限');
  } else {
   // 扫码错误
   print('扫码错误: $e');
  }
 } on FormatException{
  // 进入扫码页面后未扫码就返回
  print('进入扫码页面后未扫码就返回');
 } catch (e) {
  // 扫码错误
  print('扫码错误: $e');
 }
}

在使用时触发scan()方法即可,效果如下

默认的右上角打开闪光灯的文字为英文,如果需要修改可以到Flutter目录下修改以下相应文件

Andriod文件

flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\android\src\main\kotlin\com\apptreesoftware\barcodescan\BarcodeScannerActivity.kt
flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\android\src\main\kotlin\com\apptreesoftware\barcodescan\BarcodeScannerActivity.kt

如图

IOS文件

flutter\.pub-cache\hosted\pub.flutter-io.cn\barcode_scan-1.0.0\ios\Classes\BarcodeScannerViewController.m

如图

注:该插件也可以用来扫描条形码

到此这篇关于Flutter扫码识别二维码内容的文章就介绍到这了,更多相关Flutter扫码二维码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Flutter扫码识别二维码内容

    前面一篇写了生成二维码图片,这篇来写使用相机扫描识别二维码 识别二维码需要用到插件barcode_scan 首先在pubspec.yaml文件中添加以下依赖,添加依赖后在pubspec.yaml运行flutter packages get或 使用IDE更新软件包. dependencies: ... barcode_scan: ^1.0.0 Android配置 在使用它之前需要先配置 android\app\src\main\AndroidManifest.xml 在该文件中添加添加app获取相

  • winform 调用摄像头扫码识别二维码的实现步骤

    因为公司业务需求,需要在Windows系统下调用摄像头识别二维码需求,就有了这个功能. 我根据网上网友提供的一些资料,自己整合应用到项目中,效果还不错(就是感觉像素不是太好) 现在将调用摄像头+识别二维码这两个功能单独出来写到这里,供大家讨论和参考. 有什么不足或者问题大家可以提出来,共同改进共同进步 创建一个空的winform项目解决方案,我起名叫他:ScanQRCode 将Form1作为主窗体,设置相关属性: StartPosition:CenterScreen (窗体居中) 添加一个居中标

  • 详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    在生活中有一种东西几乎已经快要成为我们的另一个电子"身份证",那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) ,又称二维条码,是在一维条码的基础上扩展出的一种具有可读性的条码.设备扫描二维条码,通过识别条码的长度和宽度中所记载的二进制数据,可获取其中所包含的信息.相比一维条码,二维码记载更复杂的数据,比如图片.网络链接等. 今天介绍一种免费开源的二维码操作组件,ThoughtWorks.QRCode

  • 详解基于Koa2开发微信二维码扫码支付相关流程

    前段时间在开发一个功能,要求是通过微信二维码进行扫码支付.这个情景我们屡见不鲜了,各种电子商城.线下的自动贩卖机等等都会有这个功能.平时只是使用者,如今变为开发者,也是有不小的坑.所以特此写一篇博客记录一下. 注: 要开发微信二维码支付,你必须要有相应的商户号的权限,否则你是无法开发的.若无相应权限,本文不推荐阅读. 两种模式 打开微信支付的文档,我们可以看到两种支付模式:模式一和模式二.这二者的流程图微信的文档里都给出了(不过说实话画得真的有点丑). 文档里指出了二者的区别: 模式一开发前,商

  • Python识别二维码的两种方法详解

    目录 前言 pyzbar + PIL cv2 前言 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我们生活中不可或缺的一部分. 在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”.“用Python制作动图二维码”之类的文章.而关于使用Python批量识别二维码的教程,并不多见.所以今天我会给大家分享两种批量识别二维码的Python技巧! pyzbar + P

  • PHP生成二维码与识别二维码的方法详解【附源码下载】

    本文实例讲述了PHP生成二维码与识别二维码的方法.分享给大家供大家参考,具体如下: 二维码的分类 线性堆叠式二维码 矩阵式二维码 二维码的优缺点 优点 信息容量大 编码范围广 容错能力强 译码可靠性高 可引入加密措施 成本低,易制作 缺点 二维码技术成为手机病毒.钓鱼网站传播的新渠道 信息泄密 目前流行的三大国际标准 PDF417:不支持中文 DM:专利未公开,需支付专利费用 QR CODE:专利公开,支持中文 QR CODE 纠错能力 L级:约可纠错7%的数据码字 M级:约可纠错15%的数据码

  • Android WebView实现长按保存图片及长按识别二维码功能

    先来简单说一下本文所要实现的功能:用户在浏览网页的时候,长按某一区域,识别如果是图片,则弹出弹框,出现保存图片的功能.同时识别图片是否是二维码,如果是则在弹框中追加识别二维码功能. 细节上:保存图片的弹框要显示在手指长按的位置:选择图片保存后,可以让用户直接去相册查看:选择识别二维码,判断是是不是网址,是的话可以让用户选择复制或访问,否则可以让用户选择复制或搜索. 然后再来看一下效果图: 保存图片 save.gif 识别包含普通文字的二维码: text.gif 识别包含网址的二维码: code.

  • iOS模仿微信长按识别二维码的多种方式

    参考:https://github.com/nglszs/BCQRcode 方式一: #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end ************** #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDid

  • Android 二维码 生成和识别二维码 附源码下载

    今天讲一下目前移动领域很常用的技术--二维码.现在大街小巷.各大网站都有二维码的踪迹,不管是IOS.Android.WP都有相关支持的软件.之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解.今天主要是讲解如何使用ZXing库,生成和识别二维码.这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码. 1.ZXing库介绍 这里简单介绍一下ZXing库.ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口

  • 微信小程序长按识别二维码的几种情况分析

    目录 一.image标签 + show-menu-by-longpress=“{{true}}” 二.wx.previewImage 三. web-view 支持长按识别的码 补充:扫码中有几个可配置的参数注意下 总结 小程序中的图片已支持长按识别了,总结一下几种情况下: 一.image标签 + show-menu-by-longpress=“{{true}}” <image src="{{qrcode}}" mode="widthFix" show-menu

随机推荐