Flutter: сканирование штрихкода
1. Добавим в pubspec.yaml зависимость
dependencies:
flutter_barcode_scanner: ^2.0.0
Добавим в код предыдущего проекта:
class _Page1State extends State<Page1> { // _ впереди класса, означает чтоб скрыть доступ из других файлов
...
....
String _scanBarcode = 'Unknown';
Future<void> startBarcodeScanStream() async {
FlutterBarcodeScanner.getBarcodeStreamReceiver(
'#ff6666', 'Cancel', true, ScanMode.BARCODE)!
.listen((barcode) => print(barcode));
}
Future<void> scanBar() async {
String barcodeScanRes;
try {
barcodeScanRes = await FlutterBarcodeScanner.scanBarcode('#ff6666', 'Отменить', false, ScanMode.BARCODE);
Fluttertoast.showToast(
msg: "Прочитано:"+barcodeScanRes,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
} on PlatformException {
barcodeScanRes = 'Ошибка получения версии платформы';
}
if (!mounted) return;
setState(() {
_scanBarcode = barcodeScanRes;
});
}
....
....
....
ListTile(
onTap: (){
print(scanBar());
},
leading: Icon(
Icons.sick,
),
Следует отметить, что при запуске кода на Android/IOS приложение самостоятельно попросит доступ к камере, а потому еще одной проблемой — обработкой запросов доступа меньше.