Flutter: сканирование штрихкода
1. Добавим в pubspec.yaml зависимость
1 2 3 |
dependencies: flutter_barcode_scanner: ^2.0.0 |
Добавим в код предыдущего проекта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
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 приложение самостоятельно попросит доступ к камере, а потому еще одной проблемой — обработкой запросов доступа меньше.