Skip to main content

Changelog | Capacitor Barcode Scanner

tip

For additional details about the API, please refer to our API reference documentation.

Version 7.0.0 (30 May 2025):

  • 🎉 New:
    • Added support of new barcode formats that are used in the pharmaceutical industry: PHARMA_CODE, PHARMA_CODE_TWO_TRACK, PZN8 (Pharmazentralnummer) and PZN7.
    • Added support of a new barcode document format HIBC.
    • Added an advanced configuration of Barcode Scanner for RTU-UI screens and for still image recognition. See more here BarcodeScannerScreenConfiguration and here BarcodeScannerConfiguration.
    • Added the ability to configure the Barcode Scanner using the common barcode configuration, see BarcodeFormatCommonConfiguration.
    • Added an option to ignore barcodes that do not decode to one of the accepted document formats for BarcodeScannerConfiguration. See more here: BarcodeScannerConfiguration.onlyAcceptDocuments.
    • Added lists of predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. Old predefined sets of barcode formats were removed. See more here: BarcodeFormats.
    • Introduced a new barcode item object to better represent barcode results. See more here: BarcodeItem.
    • Added the ability to return the barcode image in the result using the new returnBarcodeImage property. See more here: BarcodeScannerConfiguration.returnBarcodeImage.
    • Images returned in scanner results are now represented as image references. They can be converted to base64 or saved in a provided path. See more here: ImageRef.
    • Introduced a boolean strictMode for certain barcode configurations. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we support strictMode for QR_CODE, MICRO_QR_CODE, RMQR_CODE, PDF_417, MICRO_PDF417 and GS1_COMPOSITE.
    • Android: Added an option to the RTU-UI v2 Barcode Scanner screen for keeping the screen on. Use BarcodeScannerScreenConfiguration.keepScreenOn to control this function.
  • 🚀 Improvements:
    • Improved quiet zone checks for the barcode formats ITF, CODE_11, MSI_PLESSEY, IATA_2_OF_5, INDUSTRIAL_2_OF_5 and CODE_25.
    • Improved the false positive rate for ITF.
    • Improved our Barcode Scanner with a significant speed-up in live mode on very large input resolutions.
    • Improved the recognition of PDF417 barcodes in the Barcode Scanner.
    • Improved the Barcode Scanner to better recognize QR codes if the top left finder pattern is corrupted (up to QR code version size 20).
    • By default, Code93 now includes check digits in the result. To disable this and restore the previous behavior, set stripCheckDigits = true.
    • More robust QR code recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artistic QR codes.
    • QR codes with non-square finder patterns and QR codes embedded in adversarial backgrounds (flow codes and more generally) can now be recognized.
    • Improved barcode detection for various barcode types.
    • Improved the performance when scanning four state postal barcodes (i.e. AUSTRALIA_POST, JAPAN_POST, ROYAL_MAIL, ROYAL_TNT_POST, USPS_INTELLIGENT_MAIL).
  • 🐞 Bug fixes:
    • Fixed checksum for CODE_39 barcode format.
    • Fixed the returned results for all types of UpcEanExtensionBehavior.
    • Fixed an issue when scanning Code93 barcodes with stripCheckDigits = false (default) and the check digit was an extension character.
    • iOS: Fixed processing of still images of indexed color space model in the Barcode Scanner.
    • iOS: Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
    • iOS: RTU-UI v2: Fixed a bug in the Barcode Scanner RTU-UI where the flip camera button was not resetting the widest camera available if chosen.
    • iOS: RTU-UI v2: Fixed a UI bug in the Barcode Scanner RTU-UI where the sheet button overlapped with the action bar.
    • Android: Fixed an overflow when decoding a MICRO_QR_CODE barcode format with wrong bits in numeric mode.
    • Android: Fixed minimumTextLength for ITF barcode format. Before, we used it to check the number of symbols instead of the true text length.
    • Android: Fixed sorting of quad points for four-state/postal barcode types.
    • Android: Fixed quad when flag BarcodeFormatConfigurationBase.addAdditionalQuietZone is enabled.
    • Android: RTU-UI v2: The modal dialog no longer appears below the status bar.
    • Android: RTU-UI v2: Fixed an issue where FindAndPickScanningMode.sheetContent.barcodeItemImageVisible was not properly applied.
    • Android: RTU-UI v2: fixed accessibility content for action buttons.
  • ⚠️ Breaking Changes:
    • No need for specific import from capacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2. Everything should be imported from the default capacitor-plugin-scanbot-barcode-scanner-sdk path.
    • Removed startBarcodeScanner, closeBarcodeScanner, startBatchBarcodeScanner and closeBatchBarcodeScanner deprecated APIs along with all related types.
    • startBarcodeScanner API is part of ScanbotBarcodeSDK object. The input configuration and result objects are changed. See more here: ScanbotBarcodeSDK.startBarcodeScanner.
    • initializeSdk API now returns a result of type LicenceInfoResult instead of a status.
    • The input parameters and result objects for detectBarcodesOnImage API were changed. See more here: ScanbotBarcodeSDK.detectBarcodesOnImage.
    • Only the results from the RTU-UI APIs are wrapped with ResultWrapper, all other results are sent directly without being wrapped with ResultWrapper.
    • Type literals for UpcEanExtensionBehavior, BarcodeScannerEngineMode and FieldValidationStatus have been modified.
    • Replaced BarcodeType with BarcodeFormat.
    • Renamed type BarcodeScannerConfiguration to BarcodeScannerScreenConfiguration.
    • Renamed types BarcodeMappedData.barcodeImageKey to BarcodeMappedData.BARCODE_IMAGE_KEY and ExpectedBarcode.barcodeImageKey to ExpectedBarcode.BARCODE_IMAGE_KEY.
    • Renamed types MSIPlesseyChecksumAlgorithm to MsiPlesseyChecksumAlgorithm, EngineMode to BarcodeScannerEngineMode, Gs1HandlingMode to Gs1Handling, ValidationStatus to FieldValidationStatus and BarcodesExtensionFilter to UpcEanExtensionBehavior.
  • 🚙 Under the hood:
    • Upgraded the native Scanbot Android SDK to v7.0.2.
    • Upgraded the native Scanbot iOS SDK to v7.0.2.
    • Upgraded nlohmann::json to 3.11.3
    • Upgraded xsimd to 13.2
    • Upgraded xtl to 0.8
    • Upgraded xtensor to 0.26-scanbot
    • Upgraded yaml-cpp to 0.8
    • Upgraded Boost to 1.88
    • Upgraded spdlog to 1.15.2
    • iOS: Upgraded CLI11 to 2.5
    • iOS: The regex filters are applied for substrings instead of the entire output string.
    • Android: Upgrade OpenCV to 4.10
    • Android: Updated Compile Sdk to 35
    • Android: Android Jetpack Compose updated to 1.7.8

Version 6.1.0 (6 December 2024):

  • 🎉 New:
    • Added a new API, getImageData that returns a base 64 encoded representation of the image data.
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32. Added literals that represent the new barcode types in BarcodeFormat.
    • Added a new optional property addAdditionalQuietZone in DetectBarcodesOnImageArguments. The default value is false.
    • Added a new property accessibilityDescription in RoundButton and ButtonConfiguration.
    • Added a new property allowEmptySubmission in MultipleScanningMode to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
    • Added new optional properties useIATA2OF5Checksum, useCode11Checksum and australiaPostCustomerFormat in BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration, BarcodeRecognizerConfiguration and DetectBarcodesOnImageArguments.
    • Added the ability to display the scanned barcode's image in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase by specifying ExpectedBarcode.barcodeImageKey for the expected barcode's image property.
    • Added a new type literal CONFIRMED in ValidationStatus.
    • Added a new type literal NONE in CommonFieldType.
    • iOS: Added a new property displayText in GenericDocument.Type and Field.Type.
    • iOS: Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
    • Android: Added support for 16KB page size (Android 15).
    • Android: Added a new property polygonInRoot in Field.
  • 🚀 Improvements:
    • Improved detection of UPC and EAN extensions.
    • Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
    • For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
  • 🐞 Bug fixes:
    • Fixed KANJI mode for QR codes.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase that never showed the expected barcodes title, but always the barcode value.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase in button sheet mode where the counter badge was not visible.
    • iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's sheet screen where the subtitle label was being vertically cut off.
    • iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's confirmation sheet in the SingleScanningModeUseCase where the loading indicator was not centered when the loading message was hidden.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
    • iOS: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
    • iOS: Fixed a bug that did not mirror the front camera as expected.
    • iOS: Fixed a crash in scanners when setting the same minZoom and maxZoom in ZoomRange.
    • Android: Fixed R8 obfuscation config for SDK logging classes.
    • Android: Minor fixes for appearance in RTU-UI v2 Barcode Scanner to make it consistent with its iOS counterpart.
    • Android: Fixed an issue with AR Overlay and barcode mapping in RTU-UI v2 Barcode Scanner, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
  • ⚠️ Breaking Changes:
    • The application project must use Android Gradle Plugin version >= 8.4.0 or have the Kotlin plugin applied.
    • Removed property codeDensity from BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration and DetectBarcodesOnImageArguments.
    • Removed DetectBarcodesOnImagesField, DetectBarcodesOnImageResult and ExtractImagesFromPdfResult interfaces.
    • Removed type literals VALIDATE and DECODE and replaced them with VALIDATE_STRUCTURE, DECODE_STRUCTURE, VALIDATE_FULL and DECODE_FULL in Gs1HandlingMode.
    • Changed the default values for properties okButton, cancelButton and actionButton in ScanbotAlertDialog.
    • Changed the default values for properties enableCameraButton and closeButton in CameraPermissionScreen.
    • Changed the default value for property visible in ArOverlayFindAndPickConfiguration to true for FindAndPickScanningMode.
    • Replaced standard and validationStatus fields with validationErrors in the GS1.Element class.
    • Renamed RootTypeName to BarcodeDocumentModelRootType and also renamed the inherited document types.
    • Android: Changed barcodesRegexFilter behavior in BarcodeRecognizerConfiguration for BarcodeScannerConfiguration config for RTU-UI v2 Barcode Scanner. Barcodes are accepted if the barcode data contains the part that matches the regex.
  • 🚙 Under the hood:
    • Upgraded the native Scanbot Android SDK to v6.1.1.
    • Upgraded the native Scanbot iOS SDK to v6.1.1.
    • Added gs1-syntax-dictionary lib.

Version 5.1.0 (24 July 2024):

  • 🎉 New:
    • Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import startBarcodeScanner from capacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2 to leverage the new UI. See our updated documentation for a full set of examples and use cases.
    • Added support for the MICRO_PDF_417 barcode format.
    • Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
  • 🚀 Improvements:
    • Optimized camera preview quality and processing speed for all scanners.
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
    • iOS: Added support of haptic feedback on capable devices.
    • iOS: Improved speed and image quality of still image capturing.
    • iOS: Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
    • Android: Changed the touch to focus square in the native camera view to a circle.
  • 🐞 Bug fixes:
    • Android: Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
    • Android: For BarcodeFormat.PDF_417, a single case to generate clusters was not covered, which led to a crash.
    • Android: BarcodesExtensionFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
  • ⚠️ Breaking changes:
    • Our Ready to Use UI v1 barcode scanners are now deprecated and it is highly encouraged to use the new RTU UI v2 barcode scanner API.
    • The structure of barcode formatted results has been changed from record classes to using GenericDocument. See API reference for the new structure (https://api-docs.scanbot.io/barcode-scanner-sdk/capacitor/api-docs/). This change affects RTU UI v1, however, the same structures are used across RTU UI v1 and RTU UI v2.
    • Renamed BarcodeFormat.RSS_14 to BarcodeFormat.DATABAR and BarcodeFormat.RSS_EXPANDED to BarcodeFormat.DATABAR_EXPANDED.
    • iOS: IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
    • Android: Removed BarcodeFormat.CODE_25 from COMMON_CODES list.
    • Android: ZoomRange can be created with any input values but will be limited under the hood by internal MIN_ZOOM (x0.2) and MAX_ZOOM (x100) values.
  • 🚙 Under the hood:
    • Upgraded native Scanbot Android Barcode Scanner SDK to v5.1.2.
    • Upgraded native Scanbot iOS Barcode Scanner SDK to v5.1.3.
    • iOS: Added third-party library libzueci version 1.0.0.
    • Android: Updated 3rd-party libraries: libjpeg-turbo to 2.1.5.1, libpng to 1.6.40 and libtiff to 4.6.0.
    • Android: Added more rules for R8 shrinker to work adequately with AGP >= 8.
    • Android: Updated AGP to 7.4.2, TargetSDK to 33 and Kotlin to 1.8.22.

Version 4.2.0 (13 May 2024):

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get your free Trial License

What do you think of this documentation?