startBatchBarcodeScanner static method
Starts the Ready-to-Use Batch Barcode Scanner UI as full-screen modal UI dialog. The Barcode Scanner is able to recognize 1D- and 2D-barcodes (QR codes, etc).
Implementation
static Future<BarcodeScanningResult> startBatchBarcodeScanner(
BatchBarcodeScannerConfiguration config) async {
try {
if (config.barcodeFormats == null) {
config.barcodeFormats = PredefinedBarcodes.allBarcodeTypes();
} else if (config.barcodeFormats!.isEmpty) {
config.barcodeFormats = PredefinedBarcodes.allBarcodeTypes();
}
var updatedParameters = config.toJson();
if (config.barcodeFormatter != null) {
_initBatchFormatterHandler(
_batchBarcodeFormatterCallbackChannel, config.barcodeFormatter!);
_batchBarcodeFormatterCallbackChannel.setMethodCallHandler(_handler);
updatedParameters['shouldUseBarcodeFormatter'] = true;
} else {
_handler = null;
}
const defaultJsonName = "BatchBarcodeScreen";
var configuration = await _applyParametersOnDefaultJson(
defaultJsonName, updatedParameters);
var barcodeScanningResult = await _channel.invokeMethod(
'startBatchBarcodeScanner', configuration);
_handler = null;
if (_wasCanceled(barcodeScanningResult)) {
return BarcodeScanningResult.canceled();
}
return BarcodeScanningResult.fromJson(jsonDecode(barcodeScanningResult));
} catch (e) {
Logger.root.severe(e);
return BarcodeScanningResult.error(e.toString());
}
}