1. カメラの許可設定:
1. Android はカメラ権限を追加します (project/android/app/src/main/AndroidManifest.xml)。
<manifest ...>
...
<uses-permission android:name="android.permission.CAMERA" />
</manifest>
2. iOS はカメラ命令を追加します (project/ios/Runner/Info.plist):
<dict>
...
<key>NSCameraUsageDescription</key>
<string>本应用需要使用摄像头实现扫码功能</string>
</dict>
2. コードスキャン機能を実現します。
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);
//...处理后续逻辑,如授权登录
}