一、摄像头权限配置:
1.Android添加摄像头权限(工程/android/app/src/main/AndroidManifest.xml):
<manifest ...>
...
<uses-permission android:name="android.permission.CAMERA" />
</manifest>
2.iOS添加摄像头使用说明(工程/ios/Runner/Info.plist):
<dict>
...
<key>NSCameraUsageDescription</key>
<string>本应用需要使用摄像头实现扫码功能</string>
</dict>
二、实现扫码功能:
1.添加barcode_scanner2插件依赖,在pubspec.yaml中:
dependencies:
barcode_scan2: ^4.2.1 #扫码库插件
2.实现扫码功能:
ElevatedButton( //APP界面某一处按钮
child: Text("打开扫码界面"),
onPressed: () {
openQRScanPage(); //点击按钮时打开三方扫码界面,扫码成功后会自动关闭三方界面回到原有界面
}
)
...
//打开三方扫码界面,扫码成功后会自动关闭三方界面回到原有界面
Future<void> openQRScanPage() async {
var options = ScanOptions(
android: AndroidOptions(aspectTolerance: 0.5, useAutoFocus: true), //(默认已配)添加Android自动对焦
autoEnableFlash: false, //true打开闪光灯, false关闭闪光灯
strings: {'cancel': '退出', 'flash_on': '开闪光灯', 'flash_off': '关闪光灯'} //标题栏添加闪光灯按钮、退出按钮
);
var result = await BarcodeScanner.scan(options: options);
String qrcode = result.rawContent; //扫描到的条形码或二维码内容
print("条形码或二维码为: " + qrcode);
//...处理后续逻辑,如授权登录
}