startBatchBarcodeScanner static method

Future<BarcodeScanningResult> startBatchBarcodeScanner(
  1. BatchBarcodeScannerConfiguration config
)

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 {
    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());
  }
}