Flutter扫码识别⼆维码内容
前⾯⼀篇写了⽣成⼆维码图⽚,这篇来写使⽤相机扫描识别⼆维码
识别⼆维码需要⽤到插件 barcode_scan
⾸先在 pubspec.yaml ⽂件中添加以下依赖,添加依赖后在 pubspec.yaml 运⾏ flutter packages get 或使⽤IDE更新软件包。dependencies:
...
barcode_scan: ^1.0.0
Android配置
在使⽤它之前需要先配置 android\app\src\l
在该⽂件中添加添加app获取相机权限及BarcodeScanner activity
<!--获取相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>
如下图所⽰
编辑项⽬级adle⽂件
buildscript {
ext.kotlin_version = '1.2.31'
...
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
...
如图所⽰
以及编辑应⽤级adle⽂件
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{
flutter pub// 进⼊扫码页⾯后未扫码就返回
print('进⼊扫码页⾯后未扫码就返回');
} catch (e) {
// 扫码错误
print('扫码错误: $e');
}
}
在使⽤时触发scan()⽅法即可,效果如下
默认的右上⾓打开闪光灯的⽂字为英⽂,如果需要修改可以到Flutter⽬录下修改以下相应⽂件
Andriod⽂件
flutter\.pub-cache\hosted\pub.flutter-io\barcode_scan-1.0.0\android\src\main\kotlin\com\apptreesoftware\barcodescan\BarcodeScannerActivity.kt   
如图
IOS⽂件
flutter\.pub-cache\hosted\pub.flutter-io\barcode_scan-1.0.0\ios\Classes\BarcodeScannerViewController.m
如图
注:该插件也可以⽤来扫描条形码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。