diff --git a/docs/sdks/android/release-notes.md b/docs/sdks/android/release-notes.md index d99d78e2..4687169c 100644 --- a/docs/sdks/android/release-notes.md +++ b/docs/sdks/android/release-notes.md @@ -10,9 +10,9 @@ keywords: - android --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -40,6 +40,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Behavioral Changes @@ -59,6 +60,9 @@ keywords: #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core diff --git a/docs/sdks/capacitor/release-notes.md b/docs/sdks/capacitor/release-notes.md index cbfe6c57..3eeddf01 100644 --- a/docs/sdks/capacitor/release-notes.md +++ b/docs/sdks/capacitor/release-notes.md @@ -9,9 +9,9 @@ keywords: - capacitor --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -37,6 +37,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes @@ -48,10 +49,14 @@ keywords: * Fixed BarcodeCount Scan Preview issues including: fixed an issue where preview barcodes were used to populate the scanning list, the correct feedback is played when a barcode not in list is scanned, fixed an issue where scanning was not possible after the app was put in background, and corrected highlight orientation in landscape * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes * Fixed an issue where the successful hint in BarcodeFind is not displayed +* Fixed the missing found item icon in the MatrixScan Find carousel #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core @@ -59,6 +64,7 @@ keywords: * Fixed an issue where the interface and video feed could have different visual orientations * Fixed a bug that could in rare cases produce a black screen when starting the camera * Fixed an issue where some LabelCapture fields were being returned incorrectly on TS frameworks +* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates. ### Deprecations diff --git a/docs/sdks/cordova/release-notes.md b/docs/sdks/cordova/release-notes.md index e99d3c4b..fec61cf3 100644 --- a/docs/sdks/cordova/release-notes.md +++ b/docs/sdks/cordova/release-notes.md @@ -10,9 +10,9 @@ keywords: - cordova --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -36,6 +36,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes @@ -47,10 +48,14 @@ keywords: * Fixed BarcodeCount Scan Preview issues including: fixed an issue where preview barcodes were used to populate the scanning list, the correct feedback is played when a barcode not in list is scanned, fixed an issue where scanning was not possible after the app was put in background, and corrected highlight orientation in landscape * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes * Fixed an issue where the successful hint in BarcodeFind is not displayed +* Fixed the missing found item icon in the MatrixScan Find carousel #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core @@ -59,6 +64,8 @@ keywords: * Fixed an issue where the interface and video feed could have different visual orientations * Fixed a bug that could in rare cases produce a black screen when starting the camera * Fixed an issue where some LabelCapture fields were being returned incorrectly on TS frameworks +* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates. +* Fixed a Cordova iOS compilation error due to missing header files ## 8.1.1 diff --git a/docs/sdks/flutter/release-notes.md b/docs/sdks/flutter/release-notes.md index 8cbdb68c..f555a0dc 100644 --- a/docs/sdks/flutter/release-notes.md +++ b/docs/sdks/flutter/release-notes.md @@ -10,9 +10,9 @@ keywords: - flutter --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -35,6 +35,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes @@ -47,10 +48,14 @@ keywords: * Fixed an issue where MatrixScan AR circle highlights stopped pulsing when the app was restored from the background * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes * Fixed an issue where the successful hint in BarcodeFind is not displayed +* Fixed the missing found item icon in the MatrixScan Find carousel #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core @@ -61,6 +66,7 @@ keywords: * Fixed an issue where the interface and video feed could have different visual orientations * Fixed a bug that could in rare cases produce a black screen when starting the camera * Fixed an issue where some LabelCapture fields were being returned incorrectly on TS frameworks +* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates. ### Deprecations diff --git a/docs/sdks/ios/release-notes.md b/docs/sdks/ios/release-notes.md index 4c6f4719..5629ffaa 100644 --- a/docs/sdks/ios/release-notes.md +++ b/docs/sdks/ios/release-notes.md @@ -10,9 +10,9 @@ keywords: - ios --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -39,6 +39,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes @@ -50,6 +51,12 @@ keywords: * Fixed BarcodeCount Scan Preview issues including: fixed an issue where preview barcodes were used to populate the scanning list, the correct feedback is played when a barcode not in list is scanned, fixed an issue where scanning was not possible after the app was put in background, and corrected highlight orientation in landscape * Fixed an issue where MatrixScan AR circle highlights stopped pulsing when the app was restored from the background * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes +* Fixed the missing found item icon in the MatrixScan Find carousel + +#### Id + +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core diff --git a/docs/sdks/linux/release-notes.md b/docs/sdks/linux/release-notes.md index 679de135..89b516b3 100644 --- a/docs/sdks/linux/release-notes.md +++ b/docs/sdks/linux/release-notes.md @@ -9,9 +9,9 @@ keywords: - linux --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -23,6 +23,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes diff --git a/docs/sdks/net/android/release-notes.md b/docs/sdks/net/android/release-notes.md index 7c520647..bdbc7df2 100644 --- a/docs/sdks/net/android/release-notes.md +++ b/docs/sdks/net/android/release-notes.md @@ -9,9 +9,9 @@ keywords: - netAndroid --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -19,6 +19,12 @@ keywords: * The Validation Flow, our ready‑to‑use workflow in Smart Label Capture for capturing and validating label data with minimal code, now features a completely redesigned user interface. The update improves ergonomics through a simplified API and highly requested customization options, making Smart Label Capture more intuitive and significantly reducing integration and customization effort across a wider range of use cases +### Performance Improvements + +#### Core + +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes + ### Bug Fixes #### Barcode @@ -29,6 +35,9 @@ keywords: #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core diff --git a/docs/sdks/net/ios/release-notes.md b/docs/sdks/net/ios/release-notes.md index d1c68364..84f4e24b 100644 --- a/docs/sdks/net/ios/release-notes.md +++ b/docs/sdks/net/ios/release-notes.md @@ -9,9 +9,9 @@ keywords: - netIos --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -19,6 +19,12 @@ keywords: * [Smart Label Capture](/sdks/net/ios/label-capture/intro.md) is now available on .NET for Android. It enables multi-modal data capture, extracting barcode and text data from labels simultaneously and making complex data entry up to 7 times faster. Ideal for labels containing serial numbers, weights, or expiry dates, it improves accuracy, reduces errors, and prevents revenue loss from incorrect information. +### Performance Improvements + +#### Core + +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes + ### Bug Fixes #### Barcode @@ -28,6 +34,12 @@ keywords: * Fixed BarcodeCount Scan Preview issues including: fixed an issue where preview barcodes were used to populate the scanning list, the correct feedback is played when a barcode not in list is scanned, fixed an issue where scanning was not possible after the app was put in background, and corrected highlight orientation in landscape * Fixed an issue where MatrixScan AR circle highlights stopped pulsing when the app was restored from the background * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes +* Fixed the missing found item icon in the MatrixScan Find carousel + +#### Id + +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core diff --git a/docs/sdks/react-native/release-notes.md b/docs/sdks/react-native/release-notes.md index 9623f430..2cf5ce3e 100644 --- a/docs/sdks/react-native/release-notes.md +++ b/docs/sdks/react-native/release-notes.md @@ -10,9 +10,9 @@ keywords: - react --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -37,6 +37,7 @@ keywords: #### Core +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes * Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes ### Bug Fixes @@ -49,10 +50,14 @@ keywords: * Fixed an issue where MatrixScan AR circle highlights stopped pulsing when the app was restored from the background * Added cameraStateOnStop property to BarcodeFindView to optimize camera transitions when switching between modes * Fixed an issue where the successful hint in BarcodeFind is not displayed +* Fixed the missing found item icon in the MatrixScan Find carousel #### Id * Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android +* Fixed a memory issue leading to a persistent black screen during ID Capture startup +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete #### Core @@ -62,6 +67,7 @@ keywords: * Fixed a bug that could in rare cases produce a black screen when starting the camera * Fixed an issue where some LabelCapture fields were being returned incorrectly on TS frameworks * Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates. +* Fixed compatibility of the React Native plugins with apps using React Native versions below 0.78 ### Deprecations diff --git a/docs/sdks/titanium/release-notes.md b/docs/sdks/titanium/release-notes.md index 5972e098..3d594d09 100644 --- a/docs/sdks/titanium/release-notes.md +++ b/docs/sdks/titanium/release-notes.md @@ -10,9 +10,15 @@ keywords: - titanium --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 + +### Performance Improvements + +#### Core + +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes ### Bug Fixes @@ -20,6 +26,7 @@ keywords: * Improved the Smart Scan Intention logic for detecting main codes + five-digit add on codes. This improves the rate of complete main + add-on code pairs. * Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation +* Fixed the missing found item icon in the MatrixScan Find carousel #### Core diff --git a/docs/sdks/web/release-notes.md b/docs/sdks/web/release-notes.md index 5c023acf..4a02a7f3 100644 --- a/docs/sdks/web/release-notes.md +++ b/docs/sdks/web/release-notes.md @@ -10,9 +10,9 @@ keywords: - web --- -## 8.2.0-beta.1 +## 8.2.0 -**Released**: February 2, 2026 +**Released**: February 13, 2026 ### New Features @@ -34,16 +34,30 @@ keywords: * Removed Howler.hs and JavaScript Cookie 3rd party dependencies +### Performance Improvements + +#### Core + +* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes + ### Bug Fixes #### Barcode * Improved the Smart Scan Intention logic for detecting main codes + five-digit add on codes. This improves the rate of complete main + add-on code pairs. * Fixed a bug where the torch control would be shown even if the torch was not supported +* Fixed an issue where SparkScan would select the wrong camera +* Fixed an issue where the SparkScanView was not being disposed correctly #### Id * Improved success rate when scanning using the ImageFrameSource or the SingleImageUploader as frame source +* Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner +* Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete + +#### Core + +* Fixed an issue where in some webview scenarios the wrong back camera was selected on the iPhone Pro ### Deprecations diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 9a0c241e..52265ccc 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -255,14 +255,10 @@ const config: Config = { }, showLastUpdateTime: false, includeCurrentVersion: true, - lastVersion: "8.1.1", + lastVersion: "current", versions: { current: { - label: '8.2.0-beta.1', - banner: 'unreleased', - badge: false, - }, - '8.1.1': { + label: '8.2.0', banner: 'none', badge: false, }, diff --git a/scripts/update-to-minor-beta.py b/scripts/update-to-minor-beta.py index 41a852b9..ac0319ba 100755 --- a/scripts/update-to-minor-beta.py +++ b/scripts/update-to-minor-beta.py @@ -28,8 +28,11 @@ def update_docusaurus_config(config_path: Path, current_version: str, new_versio # Update lastVersion from "current" to the archived version content = re.sub(r'lastVersion:\s*["\']current["\']', f'lastVersion: "{current_version}"', content) + # Strip -beta.* suffix from version label (docusaurus.config.ts should never contain beta suffix) + version_label = re.sub(r'-beta\.\d+$', '', new_version) + # Update current version label - content = re.sub(r"(current:\s*\{[^}]*label:\s*')[^']+'", rf"\g<1>{new_version}'", content, flags=re.DOTALL) + content = re.sub(r"(current:\s*\{[^}]*label:\s*')[^']+'", rf"\g<1>{version_label}'", content, flags=re.DOTALL) # Update current banner to 'unreleased' content = re.sub(r"(current:\s*\{[^}]*banner:\s*)'[^']*'", r"\g<1>'unreleased'", content, flags=re.DOTALL) diff --git a/src/components/HomePage/data/createBarcodeScanningArr.tsx b/src/components/HomePage/data/createBarcodeScanningArr.tsx index 37bba5b7..d689deae 100644 --- a/src/components/HomePage/data/createBarcodeScanningArr.tsx +++ b/src/components/HomePage/data/createBarcodeScanningArr.tsx @@ -32,10 +32,6 @@ export function createBarcodeScanningArr(framework: string) { if (path && path.startsWith('/')) { return `${path}${basePath}`; } - // For Cordova and .NET iOS label capture, link to /next/ docs (8.2) - if ((framework === 'cordova' || framework === 'netIos') && basePath === '/label-capture/intro') { - return `/next/sdks/${path}${basePath}`; - } // Otherwise prepend /sdks/ return `/sdks/${path}${basePath}`; } diff --git a/versioned_docs/version-8.1.1/barcode-scanning.mdx b/versioned_docs/version-8.1.1/barcode-scanning.mdx deleted file mode 100644 index e935462c..00000000 --- a/versioned_docs/version-8.1.1/barcode-scanning.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: barcode-scanning -title: Barcode Scanning -sidebar_label: Barcode Scanning ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/barcode-symbologies.mdx deleted file mode 100644 index 08c9c4e2..00000000 --- a/versioned_docs/version-8.1.1/barcode-symbologies.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: barcode-symbologies -title: Barcode Symbologies -sidebar_label: Barcode Symbologies ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/connector-guides/cursor.md b/versioned_docs/version-8.1.1/connector-guides/cursor.md deleted file mode 100644 index bbe656b5..00000000 --- a/versioned_docs/version-8.1.1/connector-guides/cursor.md +++ /dev/null @@ -1,76 +0,0 @@ -# Cursor Connectors Guide - -This guide explains how to connect Scandit’s documentation feed (`llms-full.txt`) to your [Cursor](https://cursor.sh) environment. Once integrated, Cursor will have direct access to the latest Scandit SDK information, helping you build faster with accurate, up-to-date context. - -## What is `llms-full.txt`? - -We provide an always up-to-date text file of our complete developer documentation with every release. This file is designed for easy integration with AI coding assistants like Cursor. - -This file is published with the public documentation and also available from the Context7 MCP server: - -- **Direct URL:** [https://docs.scandit.com/llms-full.txt](https://docs.scandit.com/llms-full.txt) -- **Context7 Mirror:** [https://context7.com/scandit/data-capture-documentation](https://context7.com/scandit/data-capture-documentation) - -## Getting Started - -Follow these steps to integrate Scandit’s documentation into your Cursor environment. - -### Add the Context - -1. Open Cursor and navigate to **Settings → Features → Custom Contexts**. -2. Add Scandit Documentation as a Context Source - * Click **Add Context**. - * Choose **Custom URL**. - * Paste the following URL: `https://docs.scandit.com/llms-full.txt` -3. (Optional) For redundancy, you can also add the Context7 mirror: - ``` - https://context7.com/scandit/data-capture-documentation - ``` -4. Name the context, for example **Scandit Docs (llms-full)**. - -### Configure Cursor to Use Scandit Docs - -1. In the **Context Settings**, set: - - **Refresh Interval:** `Daily` (so Cursor always pulls the latest release updates). - - **Scope:** Global (recommended) or Project-only if you want Scandit docs available only in specific projects. -2. Enable **Auto-context injection** so Scandit docs are suggested whenever you work with `scandit-datacapture` imports. - -### Verify Integration - -1. Open a project using the Scandit SDK. -2. Start typing code like: - ```dart - import 'package:scandit_flutter_datacapture_barcode/scandit_flutter_datacapture_barcode.dart'; - ``` -3. Ask Cursor: - > “How do I configure SparkScan with continuous scanning and manual activation?” - -Cursor should now answer using the Scandit documentation pulled from `llms-full.txt`. - -## Best Practices - -- **Keep contexts lean:** If you’re using multiple SDKs, assign them to different projects to avoid context bloat. -- **Check for updates:** Since `llms-full.txt` is updated on release, rely on the daily refresh. For urgent updates, manually reload the context in Cursor. -- **Use alongside Scandit samples:** Combine the docs feed with local [SDK sample app](https://github.com/Scandit) for best results. - -## Using `contexts.json` - -If you prefer to configure Cursor directly via `contexts.json`, paste the following block: - -```json -{ - "name": "Scandit Docs (llms-full)", - "urls": [ - "https://docs.scandit.com/llms-full.txt", - "https://context7.com/scandit/data-capture-documentation" - ], - "refreshInterval": "daily", - "scope": "global", - "autoInject": true -} -``` - -Place this inside your Cursor `contexts.json` file, typically located at: - -- **macOS/Linux:** `~/.cursor/contexts.json` -- **Windows:** `%APPDATA%\Cursor\contexts.json` diff --git a/versioned_docs/version-8.1.1/connector-guides/windsurf.md b/versioned_docs/version-8.1.1/connector-guides/windsurf.md deleted file mode 100644 index 1117ffc0..00000000 --- a/versioned_docs/version-8.1.1/connector-guides/windsurf.md +++ /dev/null @@ -1,82 +0,0 @@ -# Windsurf Connectors Guide - -This guide explains how to connect Scandit’s documentation feed (`llms-full.txt`) to your [Windsurf](https://codeium.com/windsurf) environment. Once integrated, Windsurf will have direct access to the latest Scandit SDK information, helping you build faster with accurate, up-to-date context. - -## What is `llms-full.txt`? - -We provide an always up-to-date text file of our complete developer documentation with every release. This file is designed for easy integration with AI coding assistants like Windsurf. - -This file is published with the public documentation and also available from the Context7 MCP server: - -- **Direct URL:** [https://docs.scandit.com/llms-full.txt](https://docs.scandit.com/llms-full.txt) -- **Context7 Mirror:** [https://context7.com/scandit/data-capture-documentation](https://context7.com/scandit/data-capture-documentation) - -## Getting Started - -Follow these steps to integrate Scandit’s documentation into your Windsurf environment. - -### Add the Context Source - -1. Open Windsurf. -2. Go to **Settings → AI → Context Sources**. -3. Click **Add Source** and choose **Custom URL**. -4. Paste the following URL: - ``` - https://docs.scandit.com/llms-full.txt - ``` -5. (Optional) For redundancy, also add the Context7 mirror: - ``` - https://context7.com/scandit/data-capture-documentation - ``` -6. Give the source a name, for example **Scandit Docs (llms-full)**. - -### Configure Windsurf to Use Scandit Docs - -1. In the **Source Settings** panel, configure the following: - - **Refresh Interval:** Set to `Daily` (so Windsurf always pulls the latest release updates). - - **Scope:** Choose `Global` if you want Scandit docs to be available in all projects, or `Workspace-only` for more targeted use. -2. Toggle **Auto-injection** so that Windsurf automatically references Scandit docs when you work with `scandit-datacapture` imports. - -### Verify Integration - -1. Open a project that uses the Scandit SDK. -2. Add a package import such as: - ```dart - import 'package:scandit_flutter_datacapture_barcode/scandit_flutter_datacapture_barcode.dart'; - ``` -3. In the Windsurf chat panel, ask: - > “How do I configure SparkScan with continuous scanning and manual activation?” - -If configured correctly, Windsurf should respond using content pulled directly from Scandit’s documentation feed (`llms-full.txt`). - -## Best Practices - -- **Keep context sources focused:** Assign Scandit docs only to relevant workspaces if you’re working with multiple SDKs. -- **Stay up-to-date:** Windsurf automatically refreshes the feed daily, but you can manually reload if you need immediate access to the latest release. -- **Combine with samples:** For best results, pair the Scandit docs feed with local [SDK sample apps](https://github.com/Scandit). - -## Using `windsurf.json` - -You can also configure Windsurf directly via the `windsurf.json` file. Add the following block: - -```json -{ - "name": "Scandit Docs (llms-full)", - "urls": [ - "https://docs.scandit.com/llms-full.txt", - "https://context7.com/scandit/data-capture-documentation" - ], - "refreshInterval": "daily", - "scope": "global", - "autoInject": true -} -``` - -### File Location - -The configuration file is located at: - -- **macOS/Linux:** `~/.windsurf/windsurf.json` -- **Windows:** `%APPDATA%\Windsurf\windsurf.json` - -Once added, restart Windsurf for the changes to take effect. diff --git a/versioned_docs/version-8.1.1/core-concepts.mdx b/versioned_docs/version-8.1.1/core-concepts.mdx deleted file mode 100644 index f229e121..00000000 --- a/versioned_docs/version-8.1.1/core-concepts.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: core-concepts -title: Core Concepts -sidebar_label: Core Concepts ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/extension-codes.mdx b/versioned_docs/version-8.1.1/extension-codes.mdx deleted file mode 100644 index 593ae7e2..00000000 --- a/versioned_docs/version-8.1.1/extension-codes.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: extension-codes -title: Add-on Codes -sidebar_label: Add-on Codes ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/features-by-framework.mdx b/versioned_docs/version-8.1.1/features-by-framework.mdx deleted file mode 100644 index b7bce20c..00000000 --- a/versioned_docs/version-8.1.1/features-by-framework.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: features-by-framework -title: Features by Framework -sidebar_label: Features by Framework ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/input-configuration.md b/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/input-configuration.md deleted file mode 100644 index 6af59a9f..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/input-configuration.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -description: "Learn how to configure input data for the Custom Data Transfer feature in Scandit Express, enabling you to collect and manage data efficiently during scanning tasks." -framework: express -sidebar_label: Input Configuration -keywords: - - express ---- - -# Configuring Input Data - -This guide explains how to configure input data for the **Custom Data Transfer** feature. Input data determines the type and format of the information to be collected by the user during scanning. - -## Types of Input Data - -There are three types of input data you must configure: - -| Input Type | Description | -|-------------------|-------------| -| **Standard Input** | Predefined or fixed input fields configured in advance. | -| **User Session Input** | Data provided by the user once at the beginning of a scanning session. | -| **User Scan Input** | Data provided by the user for each scanned barcode. | - - -## Standard Input - -Standard inputs are fixed values or predefined fields. They are useful when you need to always attach the same kind of information (e.g., device ID, operator ID). - -| Field | Description | -|-------|-------------| -| `type` | Always set to `standardInput` for this input type. | -| `target` | Either of `picker`, `googleSheets`, or `share`. This defines where the data will be sent. Additional fields may be required depending on the target. | -| `fields` | An array of **InputField** objects that define the data to be included. | - -### Target - -| Target | Description | Additional Fields | -|--------|-------------|-------------------| -| `picker` | Data will be included in a CSV. | `format: 'csv'` | -| `googleSheets` | Data will be sent to a Google Sheet. | `spreadSheetsId` (string)

`sheetId` (Int) | -| `share` | Data will be shared via Android's share functionality as a CSV file. | `format: 'csv'` | - -### InputField - -| Field | Description | -|-------|-------------| -| `Type` | Defines the field type (`barcodeData`, `symbology`, `quantity`, `info`, `additionalInfo`, `generic`). | -| `Key` | Identifier used for both display (label) and as the key in the output. | - -## Example Configuration - -```json -{ - "type": "standard", - "target": { - "type": "googleSheets", - "spreadSheetId": "My ID", - "sheetId": 0 - }, - "fields": [ - { - "type": "barcodeData", - "key": "name-of-barcode-column" - }, - { - "type": "quantity", - "key": "name-of-barcode-quantity" - }, - { - "type": "generic", - "key": "name-of-a-generic-column" - } - ] -}, -{ - "type": "userSession", - "fields": [ - { - "type": "generic", - "key": "STORE_NAME_1" - }, - { - "type": "generic", - "key": "STORE_NAME_2" - } - ] -}, -{ - "type": "userScanInput", - "fields": [ - { - "type": "generic", - "key": "SHELF_LOCATION" - }, - { - "type": "quantity", - "key": "QUANTITY_SCANNED" - } - ] -} -``` diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/output-configuration.md b/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/output-configuration.md deleted file mode 100644 index 7be35a29..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/output-configuration.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -description: "Learn how to configure output data for the Custom Data Transfer feature in Scandit Express, enabling you to collect and manage data efficiently during scanning tasks." -framework: express -sidebar_label: Output Configuration -keywords: - - express ---- -# Configuring Output Data - -This guide explains how to configure output data for the **Custom Data Transfer** feature. Output configuration determines how scanned data and additional inputs are structured, transformed, and exported to external systems. - -## Core Configuration - -| Field | Description | -|-------|-------------| -| `type` | Always set to `standard` for this configuration type. | -| `behavior` | Defines how new data is written. Options:

- `replace`: overwrite existing data

- `append`: add new rows or entries. | -| `target` | Defines the destination for the output (e.g., Google Sheets, CSV, API). | -| `parserOptions` | (Optional) Array of parser configuration objects. | -| `timestampOptions` | (Optional) Controls how timestamps are handled. | -| `grouped` | Boolean (default: `true`). If `false`, the same barcode will be repeated when quantity > 1. | -| `fields` | Array of **OutputField** objects that define which values should be exported. | - -## OutputField Configuration - -Each `OutputField` defines a single column or output entry. - -| Field | Description | -|-------|-------------| -| `type` | Defines the source of the output value. Options:

- `barcodeValue`

- `inputValue`

- `labelValue` | -| `name` | String used as the column name in the output. | -| `barcodeValue` | Configuration object (only if `type=barcodeValue`). Defines which aspect of the barcode to output. | -| `inputValue` | String (only if `type=inputValue`). Refers to the key from an `InputField`. | -| `labelValue` | String (only if `type=labelValue`). Refers to a label field name from `labelCaptureSettings`. | - -### BarcodeValue Types - -When `type=barcodeValue`, the following `barcodeValue.type` options are available: - -| Type | Description | -|------|-------------| -| `barcodeData` | Raw scanned barcode data. | -| `symbology` | Symbology type (e.g., QR, Code128). | -| `symbolCount` | Number of symbols in the barcode. | -| `quantity` | Quantity derived from scanning. | -| `timestamp` | Timestamp of the scan (see `timestampOptions`). | -| `parsed` | Parsed values based on `parserOptions`. | -| `found` | Whether the item was found (configurable labels: `foundValue`, `notFoundValue`). | -| `counted` | Counting status (configurable: `notInListValue`, `notInListAcceptedValue`, `notInListRejectedValue`, `receivedValue`, `notReceivedValue`). | - -* `timestampOptions`: Default date format for all dates used is `"yyyy-MM-dd'T'HH:mm:ss'Z'"` (ISO 8601). You can customize this format using the `format` field. -* `parserOptions`: Supported parsers are `hibc`, `gs1AI`, `swissQR`, `vin`, and `iataBcbp`. Use the `options` object if you want to put extra options to parsers. - - -## Example Configuration - -```json -{ - "type": "standard", - "behavior": "append", - "target": { - "type": "googleSheets", - "spreadSheetId": "My spreadSheetId", - "sheetId": 0 - }, - "parserOptions": [ - { - "parserType": "gs1AI", - "options": { - "strictMode": false, - "allowMachineReadableCodes": true - } - } - ], - "fields": [ - { - "type": "barcodeValue", - "name": "Barcode", - "barcodeValue": { - "type": "barcodeData" - } - }, - { - "type": "barcodeValue", - "name": "Quantity", - "barcodeValue": { - "type": "quantity" - } - }, - { - "type": "barcodeValue", - "name": "Count Status", - "barcodeValue": { - "type": "counted", - "notInListValue": "Item not in list", - "notInListAcceptedValue": "Item not in list - but accepted", - "notInListRejectedValue": "Item not in list - and rejected", - "receivedValue": "Received", - "notReceivedValue": "Not Received" - } - }, - { - "type": "barcodeValue", - "name": "parsed field", - "barcodeValue": { - "type": "parsed", - "parsedValues": [ - { - "parserType": "swissQR", - "keys": "QRCH/AltPmtInf/AltPmt/2", - "options": { - "parserOptionKey1": true, - "parserOptionKey2": false - }, - } - ] - } - }, - { - "type": "inputValue", - "name": "StoreName1", - "inputValue": "STORE_NAME_1" - }, - { - "type": "inputValue", - "name": "StoreName2", - "inputValue": "STORE_NAME_2" - }, - { - "type": "barcodeValue", - "name": "The First Barcode PD splitted", - "labelValue": "pd", - "barcodeValue": { - "type": "parsed", - "parsedValues": [ - { - "parserType": "gs1AI", - "keys": "02.GTIN" - } - ] - } - }, - { - "type": "labelValue", - "name": "The First Barcode PD", - "labelValue": "pd" - } - ] -} -``` diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/overview.md b/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/overview.md deleted file mode 100644 index be7a02ed..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/custom-data-transfer/overview.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -description: "Custom Data Transfer in Scandit Express allows you to import and export data using configurable CSV files or Google Sheets, ensuring seamless integration with your system without the need for coding or reformatting." -framework: express -sidebar_label: Overview -keywords: - - express ---- - -# Custom Data Transfer - -The **Custom Data Transfer** feature in Scandit Express lets you import and export data using a configurable CSV file or Google Sheet. By aligning data formats between Scandit Express and your system, this feature ensures seamless integration into your workflow without the need for coding or reformatting. - -## Key Benefits - -Traditionally, data captured with Scandit Express could only be exported: - -- Automatically into a text field (via virtual keyboard). -- To certain Android apps using a special sharing method. -- Through standardized CSV reports. - -Standardized reports often use fixed field names that may not match your system’s database structure. This required manual reformatting before the data could be consolidated, slowing down workflows and creating friction. - -**Custom Data Transfer eliminates this step** by letting you configure both input and output formats to match your system’s data structure. - -- **No reformatting required**: Align captured data directly with your system’s fields. -- **Flexible import and export**: Use Google Sheets, CSV files, or manual lists created in Scandit Express. -- **Improved efficiency**: Reduce time spent on post-processing, so employees can focus on scanning tasks. -- **System-agnostic**: Works with any system, including legacy systems, without the need for integration or custom development. - -## How It Works - -1. **Configure field mappings**; - - Define which data fields are relevant for your capture flow. - - Match these fields to the structure of your system’s database. -2. **Import data** into Scandit Express. - - Upload a CSV file. - - Connect to a Google Sheet. - - Or create a new list directly within the app. -3. **Capture and update data** using Scandit Express. -4. **Export data** in your configured format, ready to be consumed by your system without additional formatting. - -## Example Workflow - -- A product list is exported from your system in CSV format. -- The CSV is imported into Scandit Express using the Custom Data Transfer feature. -- Employees capture or update data during scanning tasks. -- The updated data is exported back to CSV or Google Sheets in the same format—ready to be re-imported into your system without adjustments. diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/bluetooth-pairing.md b/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/bluetooth-pairing.md deleted file mode 100644 index 00fece17..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/bluetooth-pairing.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -description: "Guide to integrating and configuring Bluetooth device pairing using the Scandit Express." -framework: express -keywords: - - express ---- - -# Bluetooth Device Pairing - -## Prerequisites - -Before you begin, ensure you have the following prerequisites: - -- The latest version of Xcode -- An iOS project with a deployment target of iOS 14.0 or higher -- A Scandit Express license key. Sign up for a [free trial](https://www.scandit.com/trial/) if you don't already have a license key. - -## Installation - - - - - -To integrate the BLEScanner SDK into your Xcode project using Swift Package Manager, add the desired frameworks in the _Package Dependencies_ section of your project. - -Add our SPM package repository: - -``` -https://github.com/Scandit/blescanner-spm -``` - -Alternatively, if you prefer checking out git repositories via SSH: - -``` -git@github.com:Scandit/blescanner-spm.git -``` - - - - -[CocoaPods](https://cocoapods.org/) is a dependency manager for Swift and Objective-C Cocoa projects. To integrate the BLEScanner SDK into your Xcode project using CocoaPods, specify it in your `Podfile`: - -```ruby -pod 'BLEScannerSDK' -``` - - - - - -You can download the framework from: -``` -https://ssl.scandit.com/sdk/download/scandit-blescannersdk-ios-${VERSION}.zip -``` -replacing `${VERSION}` with the version you want to download. - - - - - -## Configuring the Host - -To use the SDK in your source code, import it as follows: - -```swift -import BLEScannerSDK -``` - -You can then use the `WedgeHost` initializer to set up a host: - -```swift -WedgeHost( - hostName: String, - projectCode: String, - baseUrl: String, - eventCallback: (WedgeHostEvent) -> Void -) -``` - -- **hostName:** The name you specify for the host. -- **projectCode:** Your Scandit Express project code provided in the dashboard. -- **baseUrl:** The base URL for the QR code that will be generated. You can use this to directly open your app by specifying a universal link. For example, if you want your host to redirect users to Scandit Express, you can specify `https://express.scandit.com/bluetooth` or `scanditExpress://bluetooth`. -- **eventCallback:** The callback for events sent to the host (more details below). - -The host can provide you with the **connection QR code** as a `UIImage` using: - -```swift -host.makeQRCode().generateQRCode() -``` - -### Receiving Events - -Hosts receive events in the `eventCallback`. Here's how an event is defined: - -```swift -public struct WedgeHostEvent { - public let eventType: BLEScannerSDK.WedgeHostEventType - public let data: String? -} -``` - -```swift -public enum WedgeHostEventType: Int { - case NONE - case ADV_STARTED // ADV stands for advertising Bluetooth services - case ADV_STOPPED - case ADV_ABORTED - case DEVICE_NAME_SET - case DEVICE_BARCODE_RECEIVED - case DEVICE_DISCONNECTED -} -``` - -For example, when the host successfully receives a barcode, the `WedgeHostEvent` will look like this: - -```swift -WedgeHostEvent(eventType: .DEVICE_BARCODE_RECEIVED, data: "barcode data") -``` - -## Debugging the Host - -You will need to run the host on a physical device since Bluetooth functionality does not work on the simulator. diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/device-pairing.md b/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/device-pairing.md deleted file mode 100644 index a19c81e8..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/device-pairing.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -description: "Device Pairing in Scandit Express allows you to transfer scanned barcode data from one smart device (the sender) to another (the receiver) where your system application is running. This enables fast, flexible, and reliable data transfer between devices in real time—without needing to use additional hardware." -framework: express -sidebar_label: Overview -keywords: - - express ---- - -# Device Pairing - -**Device Pairing** in Scandit Express allows you to transfer scanned barcode data from one smart device (the sender) to another (the receiver) where your system application is running. This enables fast, flexible, and reliable data transfer between devices in real time—without needing to use additional hardware. - -Data can be transferred via Bluetooth for Native iOS apps and online connection for Web apps: - -- **Online Connection** - - Works with web-based applications - - Requires a stable internet connection - -- **Bluetooth** - - Works with native iOS applications - - No internet connection required - -## Device Pairing Workflow - -Device Pairing connects two devices: - -- **Sender:** An iOS or Android device running Scandit Express to capture barcodes. -- **Receiver:** A system device (iOS only) running a compatible app to receive data. - -1. **Pairing** - - On the receiver device, display a QR code (generated by your application through our SDK). - - On the sender, open the native camera app and scan the QR code to pair the devices. - -2. **Scanning** - - Use the sender device to scan barcodes - - Through the configuration you can choose to: - - Automatically send each scan; or - - Tap **“Send data to device”** to send all captured data at once - -3. **Transfer** - - Data is transmitted via Bluetooth or online connection - - It is instantly entered into the target application on the receiver - -## System Requirements - -* Sender Device - * iOS or Android device running the Scandit Express app -* Receiver Device - - iOS (for Bluetooth) - - Browser-based apps - - Must support light integration with Scandit’s SDK - -## Setup & Configuration - -- Scandit Express runs as a no-code scanning application on the sender device. -- For Device Pairing to work, the **receiver application must integrate a lightweight SDK module** to enable data reception. - -:::note -Apps that cannot be modified are **not supported** for pairing. -::: - -Only the receiving side needs code-level integration. Scandit Express remains a no-code scanning app. - -## Try It Now - -[Online Connection Web Demo](https://barcode-link.demos.scandit.com/) diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/online-connection.md b/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/online-connection.md deleted file mode 100644 index 0174c755..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/device-pairing/online-connection.md +++ /dev/null @@ -1,299 +0,0 @@ ---- -description: "Guide to integrating and configuring online device pairing using the Scandit Express app." -framework: express -keywords: - - express ---- - -# Device Pairing for Web Apps - -## Prerequisites - -- A valid **Scandit License Key** -- Access to the **Scandit Express** app on the sender device (iOS or Android) -- A web application (receiver) where scanned data will be received -- Node.js and npm installed on your development machine - -## Installation - -Install the SDK via npm: - -```bash -npm install @scandit/web-barcode-link -``` - -## Implementation - -1. Import the SDK - -```javascript -import { - BarcodeLink, - BarcodeLinkMode, - BarcodeLinkUiFlow -} from '@scandit/web-barcode-link'; -``` - -2. Initialize BarcodeLink - -```javascript -const barcodeLink = BarcodeLink.forLicenseKey('YOUR_SCANDIT_LICENSE_KEY'); -``` - -3. Set the Scanning Mode - -```javascript -barcodeLink.setBarcodeLinkMode(BarcodeLinkMode.ContinuousScanning); -``` - -4. Configure Symbologies (Optional) - -```javascript -barcodeLink.setSymbologies({ - ean13Upca: { enabled: true }, - code128: { enabled: true }, - qr: { enabled: true } -}); -``` - -5. Add Event Listeners - -```javascript -barcodeLink.addListener({ - onCapture: (barcodes) => { - barcodes.forEach((barcode) => { - console.log('Scanned:', barcode.data); - // Handle the scanned data here - }); - } -}); -``` - -6. Start the UI Flow - -```javascript -await barcodeLink.initialize(new BarcodeLinkUiFlow()); -``` - -## Terminate the Session - -```javascript -await barcodeLink.dispose(); -``` - -## API Reference - -The `BarcodeLink` class is used to configure and initialize your Barcode Link instance. - -### Creating an Instance - -```ts -const barcodeLink = BarcodeLink.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --"); -``` - -Use `forLicenseKey(licenseKey: string): BarcodeLink` to create a new `BarcodeLink` instance with your Scandit license key. - -### Configuration Methods - -#### `setBarcodeLinkMode(barcodeLinkMode: BarcodeLinkMode): BarcodeLink` - -```ts -barcodeLink.setBarcodeLinkMode(BarcodeLinkMode.ContinuousListBuilding); -``` - -Sets the scanning mode. - -**Available values:** - -| Value | Description | -|-------------------------|------------------------------------------------------------| -| `SingleScanning` | (Default) Scan one barcode and close the session | -| `ContinuousScanning` | Send barcodes in real-time and manually close the session | -| `SingleListBuilding` | Send a list of barcodes and close the session | -| `ContinuousListBuilding`| Send multiple lists and manually close the session | - -#### `setListBehavior(listBehavior: BarcodeLinkListBehavior): BarcodeLink` - -```ts -barcodeLink.setListBehavior(BarcodeLinkListBehavior.Count); -``` - -Sets the behavior for how barcodes are listed. - -**Available values:** - -| Value | Description | -|---------|-----------------------------------------------------| -| `Unique`| (Default) Each barcode appears only once per list | -| `Count` | Tracks how many times a barcode was scanned | - -:::note -Only used in `SingleListBuilding` and `ContinuousListBuilding` modes. -::: - -#### `setPlatform(platform: BarcodeLinkPlatform): BarcodeLink` - -```ts -barcodeLink.setPlatform(BarcodeLinkPlatform.Web); -``` - -Sets the platform used for scanning. - -**Available values:** - -| Value | Description | -|-----------|-----------------------------------------------------------| -| `Express` | (Default) Launches the Scandit Express app | -| `Web` | Opens a browser tab using the Scandit Web SDK | - -#### `setBarcodeRegexValidation(barcodeRegexValidation: RegExp): BarcodeLink` - -```ts -barcodeLink.setBarcodeRegexValidation(/\d+/); -``` - -Defines a regex to validate barcodes. Only matching barcodes are processed. -By default no validation is applied. - -#### `setBarcodeTransformations(barcodeTransformations: unknown): BarcodeLink` - -```ts -barcodeLink.setBarcodeTransformations({ ... }); -``` - -Sets barcode transformation logic. Only used when `platform` is `BarcodeLinkPlatform.Express`. - -#### `setSymbologies(symbologies: BarcodeLinkConfiguration['symbologies']): BarcodeLink` - -```ts -barcodeLink.setSymbologies({ - ean13upca: { - enabled: true, - }, -}); -``` - -Enables specific symbologies for scanning. - -**[See all supported symbologies](https://docs.scandit.com/barcode-symbologies/)** - -### Event Listeners - -#### `addListener(listener: BarcodeLinkListener): BarcodeLink` - -```ts -barcodeLink.addListener({ - onCapture(barcodes) { - console.log("Scanned:", barcodes); - }, -}); -``` - -Adds a listener for session events. - -**Available callbacks:** - -##### `onCancel` - -```ts -barcodeLink.addListener({ - onCancel() { - console.log("Session closed."); - }, -}); -``` - -Called when the desktop closes the scanning session. Only available in `BarcodeLinkUiFlow`. - -##### `onCapture` - -```ts -barcodeLink.addListener({ - onCapture(barcodes: BarcodeLinkBarcode[], finished: boolean) { - // Handle captured barcodes - }, -}); -``` - -Called when the remote device sends barcodes. -- `finished`: Indicates if scanning has finished (used in continuous modes). - -##### `onConnectionStateChanged` - -```ts -barcodeLink.addListener({ - onConnectionStateChanged(connectionState: BarcodeLinkConnectionState) { - switch (connectionState) { - // Handle state changes - } - }, -}); -``` - -Tracks connection state changes. Only available in `BarcodeLinkUilessFlow`. - -**Available connection states:** - -| Value | Description | -|-----------------------------|------------------------------------------------| -| `MainDeviceDisconnected` | Desktop disconnected from session | -| `MainDeviceReconnected` | Desktop reconnected to session | -| `MainDeviceConnectionFailed`| Reconnection failed repeatedly | -| `RemoteDeviceConnected` | Smartphone connected to session | -| `RemoteDeviceDisconnected` | Smartphone disconnected from session | - -#### `removeListener(listener: BarcodeLinkListener): BarcodeLink` - -```ts -barcodeLink.removeListener(myListener); -``` - -Removes a previously added listener. - -### Initialization - -#### `initialize(flow: BarcodeLinkFlow): Promise` - -```ts -await barcodeLink.initialize(new BarcodeLinkUiFlow()); -``` - -Initializes Barcode Link using a specific flow. - -**Flow types:** - -##### `BarcodeLinkUiFlow` - -- Initializes with a pre-built UI. -- Shows a QR code for smartphone connection. - -##### `BarcodeLinkUilessFlow` - -- Initializes a headless session. -- Requires custom UI. -- Provides a QR code object for manual rendering. - -Example: - -```ts -const qrcode = await barcodeLink.initialize(new BarcodeLinkUilessFlow()); - -const img = document.createElement("img"); -img.src = qrcode.src; - -const a = document.createElement("a"); -a.href = qrcode.href; -a.append(img); - -document.body.append(a); -``` - -### Disposing - -#### `dispose(): void` - -```ts -await barcodeLink.dispose(); -``` - -Closes the Barcode Link session, useful when unmounting components or ending a session manually. diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/express-find.md b/versioned_docs/version-8.1.1/hosted/express/configuration/express-find.md deleted file mode 100644 index 3b4c9d50..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/express-find.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -description: "Powered by , a feature available in the Scandit Smart Data Capture SDK, this mode enables you to speed up finding and picking workflows by scanning multiple items at once and highlighting the correct item(s) in real-time using an AR overlay. " - -framework: express -keywords: - - express ---- - -# Find Items - -Powered by [MatrixScan Find](https://www.scandit.com/products/matrixscan-find/), a feature available in the Scandit Smart Data Capture SDK, this mode enables you to speed up finding and picking workflows by scanning multiple items at once and highlighting the correct item(s) in real-time using an AR overlay. - -## Create the Find List - -Using the Find mode in Scandit Express requires providing a list of barcodes to be found to the end-user. There are multiple ways to create this list, detailed below. - -### Online Find List Generator - -We recommend that you start with creating a list with the barcodes to find (Find List) using our [Find List generator](https://express.scandit.com/find/list/generator/). Here is how it works: - -![Find List Generator](/img/express/find-list-generator.png) - -### Spreadsheet Find List - -You can also provide the Find List to your end-users as a spreadsheet. - -### On Device - -A Find List can also be created on the device by scanning the barcodes to be found, for example by using a reference sheet. - -Select **Create List & Find** in the Scandit Express app and scan the barcodes to be found. The app will then create a Find List based on the scanned barcodes. - -## Share the Find List - -Once the Find List is created, it can be shared with the end-users by either sharing a link (via text, Slack, email, etc.) or by integrating into your app. - -### Share a Link - -You can also generate a URL in the format shown below and send it to the end-user. When the link is opened on the device, Scandit Express starts, the list of barcodes is shown and the user can start finding the barcodes with one click. - -The link to your Find List must be in the following format: - -```http -https://express.scandit.com/find/list?listName=&data= -``` - -Note the two query parameters that must be set in the URL: - -| Parameter | Description | -| --- | --- | -| `listName` | The name of the Find List. | -| `data` | The list of barcodes to find, separated by commas. | - - -Remember to use URL encoding for the list name and the list of barcodes: - -- For Excel, [ENCODEURL](https://support.microsoft.com/en-au/office/encodeurl-function-07c7fb90-7c60-4bff-8687-fac50fe33d0e) can be used. -- For Google Sheets, [ENCODEURL](https://support.google.com/docs/answer/9199778?hl=en) can be used. -- For JavaScript, [encodeURI()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI) can be used. -- For Python, [urllib.parse.urlencode](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode) can be used. - -### Integrate into Your App - -You can also integrate the links for your Find List(s) (with the barcodes to find embedded in them) in your own application. Follow the instructions above to create your list, and then display the link in your app or your website. If a user clicks on the link it will start Scandit Express and show the list of codes that need to be found. - - To integrate specific barcodes to find, you need to: - -1. Generate a JSON string. - - We encode your barcode values into a JSON object as shown below. The JSON object is directly encoded as a string into a QR-code to create the “Find Code”. - - ```json - { - - "type":"findList", - - "listName": "Pick list 230523", - - "part": 1, - - "partsTotal": 1, - - "data": ["050755164998737161267150050464","267904872997493075660232174005","003599442103692589922600168806","794304938682592584917910934794","067998913805565298544505960433","429412684815666169331665683721","629486918747410911816814820923","918501883962214718784809774935","771678071143373996836361503435","535726211992040548851819865224"] - - } - ``` - - The space in QR codes is limited, so if you have more codes that can fit into a single QR code you can create multiple codes. A good rule of thumb is to limit to 2000 barcode characters for a single QR code. Simply adjust the “partsTotal” field (`"partsTotal": 2`) and number each code using the `"part"` field accordingly (`"part": 1` and `"part": 2`). - -2. Generate a QR code from the JSON string and display it to the user. - - Take the JSON created and generate a QR code from it. As an example you can check the implementation in our [spreadsheet template](https://docs.google.com/spreadsheets/d/1Aj0lDEaS6Kh3-8rWlxPOdnuoYcpzXH5OH4SsmvGIyaE/edit#gid=1367552303) (look at the hidden fields in column D-K). You can then display the QR in your app or website. - - From Scandit Express, the user can scan the QR with **Load List & Find** and start finding the barcodes. \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/id-check.md b/versioned_docs/version-8.1.1/hosted/express/configuration/id-check.md deleted file mode 100644 index 03d71f89..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/id-check.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -description: 'Configuration options for the ID Check workflow in Scandit Express.' -sidebar_label: 'ID Check' -displayed_sidebar: expressSidebar -keywords: - - express ---- - -# ID Check - -The **ID Check** feature in Scandit Express enables scanning and verification of identity documents directly from the Scandit Express home screen. It is designed for use cases where verifying the **age** or **validity** of an ID is required, such as retail, hospitality, and regulated goods sales. - -This mode combines **ID validation**, **age verification**, and **export of scanned IDs** into a streamlined workflow that runs fully on-device. - -## Getting Started - -From the Scandit Express **Home Screen**, select **ID Check** to launch the workflow. - -- The camera opens immediately in **ID Capture mode**. -- Users scan the front of the ID document (back of document scanning is optional depending on configuration). -- Validation and age verification checks are performed automatically. -- A result screen confirms whether the ID passed or failed the configured checks. -- The user can scan additional IDs or finish the session at any time. - -:::tip -The camera stream pauses automatically after 30 seconds of inactivity to save battery. -::: - -## Features - -- **ID Validation**: Detects whether an ID is valid, expired, or forged. -- **Age Verification**: Compares the document’s date of birth against a configurable age limit. -- **Configurable Document Types**: Supports a wide range of IDs (Driver Licenses, Passports, National IDs, Military IDs, etc.). See [Supported Documents](docs/sdks/android/id-capture/supported-documents.md). -- **Persistence**: Optionally keep scanned IDs available across app sessions until cleared or exported. -- **Export to CSV**: Scanned IDs can be exported as a CSV file with customizable columns. - -## Configuration - -:::tip -For configuration of the ID Check functionality, contact [Scandit Support](mailto:support@scandit.com). -::: - -ID Check is configured via the **Advanced** section of the Scandit Express settings. Configuration options include: - -| Configuration Key | Values | Behavior | -|-----------------|-----------------|----------| -| **enabled** | `true`, `false` | Whether ID Check is enabled and selected from the main menu or not. | -| **idScanningMode** | `front and back`, `MRZ`, `PDF417`, `VIZ` | Specifies the scanning mode to use for ID documents and the area(s) of the documents to focus on. | -| **supportedDocuments** | See [Supported Documents](docs/sdks/android/id-capture/supported-documents.md). | List of supported documents which can be scanned. By default all documents are enabled. | -| **scanToFile** | See [Captured ID](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/captured-id.html) for a full list of all the possible fields. | | If this field is present it will be used to customize the output of this mode, i.e. `tableType` can be `custom` (choose which columns to export) or `full` (returns all fields). | -| **enabledRejections** | See [ID Capture Settings](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectedDocuments) for more information. | Specifies any documents that should be automatically rejected, for example enforcing age limits or regional restrictions. | -| **scannedBarcodePersistenceEnabled** | `true`, `false` | If true, save scanned ID(s) when exiting the mode. Next time the user is shown a dialog asking whether to continue with persisted IDs or start fresh. Clear persisted data after every successful export or when the app is closed. | - -### Example Configuration - -```json -"idCheck": { - "enabled": true, - "idScanningMode": "front and back" | "MRZ" | "PDF417" | "VIZ", // defaults to "front and back" - "supportedDocuments": [ // list of supported documents, default to all documents - { - "type": "ID_CARD", - "region": "ITALY" - }, - { - "type": "DRIVER_LICENSE", - "region": "TRINIDAD_AND_TOBAGO" - } - ... - ], - "scanToFile": { // if not specified, the default is the full export - "format": "csv", // optional, default csv - "tableType": "full", // optional, default full. Values: full, custom - "timestampOptions": { // Default date format for all dates, optional - "format": "yyyy-MM-dd'T'HH:mm:ss'Z'" // default value - }, - "enabledRejections": { // if not specified, the default is "rejectExpiredIds": true - "rejectExpiredIds": true, - "rejectHolderBelowAge": 21, - "rejectForgedAamvaBarcodes": true, - "rejectIdsExpiringIn": { - "days": 2, - "months": 3, - "years": 0 - } - }, - "scannedBarcodePersistenceEnabled": true // default is false -} -``` diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/index.md b/versioned_docs/version-8.1.1/hosted/express/configuration/index.md deleted file mode 100644 index f048caa2..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -description: "There are many configuration options and functionalities available in Scandit Express. This section provides an overview of the different configuration options and how to set them up. " - -toc_max_heading_level: 4 -framework: express -keywords: - - express ---- - -# Available Configurations - -There are many configuration options and functionalities available in Scandit Express. This section provides an overview of the different configuration options and how to set them up. - -## Configuration Options - -### Recognized Symbologies - -You can configure which [barcode symbologies](../../../barcode-symbologies) Scandit Express should recognize. By default, all symbologies are enabled. You can disable symbologies that are not needed to improve scanning performance. - -1. Login to your [Scandit Dashboard](https://ssl.scandit.com/). -2. Click on the Project card you want to configure. -3. For each symbology, you can enable or disable it via the corresponding toggle. - ![Symbology Configuration](/img/express/enabled_symbology.png) -4. [Reload the configuration](/hosted/express/getting-started/rollout.md#updating-configuration) in your app to apply the changes. - -If you want to further restrict what barcodes are accepted by Scandit Express, you can define a specific match as a regular expression. Only barcode data matching the specified regular expression will be accepted. - -The corresponding field is in the `barcodeRegexValidation` section. - -![Barcode Regex Validation](/img/express/regex_validation.png) - -### Keystroke Injection - -You can configure Scandit Express to inject additional keystrokes after a barcode is scanned. This is useful if you want to automate the process of entering data into a form or application. - -1. Login to your [Scandit Dashboard](https://ssl.scandit.com/). -2. Click ont the Project card you want to configure. -3. Using the `appendKeyPress` section, you can define the keypresses that should be injected after a barcode is scanned. - * `null` means no keypresses will be injected. - * `enter` will inject an Enter keypress. - * `\n` for Return Carriage. - * `tab` for Tab. -4. [Reload the configuration](/hosted/express/getting-started/rollout.md#updating-configuration) in your app to apply the changes. - -### Scanning Options - -Scandit Express supports different scanning options to optimize the scanning experience for different use cases. There are two options available by default: Accuracy and Speed. Two additional options, Batch and List, are available if you have purchased MatrixScan. - -#### Accuracy - -Use this mode to select one barcode out of many. This mode detects all barcodes available, then gives visual feedback on the screen (an augmented-reality overlay) so the user can select the target barcode. This mode scans one barcode at a time. - -#### Speed - -Use this mode to scan barcodes consecutively at high speed. This mode scans successive items at high speed without the need to keep tapping on the screen. - -Speed Mode - -#### Batch - -Use this mode to scan a batch of barcodes all at once. This mode scans all visible barcodes instantly. It’s perfect when all barcodes are visible and the volume is high. - -Batch Mode - -#### List - -The list mode icon allows the user to see the list of barcodes that have been scanned. List mode, when activated, works for barcodes scanned in any mode (basic speed scanning, accuracy, and batch). - -### Activate via Hardware Button - -This feature is only supported for Android devices, and must be enabled by the Scandit Support team on your account. Contact us using this [webform](https://support.scandit.com/hc/en-us/requests/new) and include the following information: - -* Your Scandit account email address. -* The project name you want to enable the feature for. -* The device model(s) you want to enable the feature for. -* The key code(s) you want to use to trigger the barcode scanner. - -:::tip -You can identify the key code with key code identifier apps available in the Play Store, such as [KeyEvent Display](https://play.google.com/store/apps/details?id=aws.apps.keyeventdisplay). -::: - -### Parse and Sort Data - -Scandit Express gives you several options to parse the scanned data for such formats as: - -* Health Industry Barcodes (HIBC) -* GS1 Application Identifiers -* VIN Numbers -* Swiss QR Codes - -You can parse and sort the scanned data either directly from Scandit Express, using the **Scan barcodes** tile in the **Scan and Export** section, or through keyboard injection. All scanning modes will return parsed data. - -Please contact [Scandit Support](mailto:support@scandit.com) if you would like to have parser capabilities enabled in your account and we will support you with the necessary details for your specific use case. \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/inventory-count.md b/versioned_docs/version-8.1.1/hosted/express/configuration/inventory-count.md deleted file mode 100644 index 1af82194..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/inventory-count.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -description: "Learn how to use the Inventory Count feature in Scandit Express." -framework: express -keywords: - - express ---- - -# Inventory Count - -Scandit Express an **Inventory Count** mode designed for fast, -robust, and flexible item counting. This mode leverages **MatrixScan Count** and **SparkScan** to support real-world inventory, stock management, and audit scenarios. - -It can be launched directly from the home screen of Scandit Express. - -

- Express Menu -

- -**Inventory Count** provides: - -- **Two scanning modes**: **MatrixScan Count** for batch scanning with progress tracking, and **SparkScan** for fast single-item scanning. -- **Persistent scanned item list**: The scanned list remains available across sessions and workflows until explicitly cleared. -- **List-based workflows**: Validate scanned items against a preloaded list of up to 120 barcodes. -- **Flexible list loading**: Load lists via deep-link URLs or QR codes, including support for multiple QR codes for large lists. -- **Duplicate handling**: Configure whether duplicates are allowed or restricted. -- **Export to CSV**: Export results with full customization options. -- **Status overlays**: Mark items as `Expired`, `Close to Expire`, or `Not Found`. -- **Progress bar**: Shows scanning progress when working against a list. - -## Getting Started - -On start, you will have two options: - -* **Count without List** which will allow you to start scanning products and then export a list of them. -* **Load Order List** which allows you to load a predefined list of barcodes and then scan products to see if they are on the list. Lists can be loaded: - - From a **deep-link URL** (e.g. `https://express.scandit.com/count/list?listName=myList&data=123,456,789`) - - From a **QR code** encoding the same URL - - From **multiple QR codes** (for very large lists) - -

- Express Menu -

- -### Scanning Modes - -There are two scanning modes available in Inventory Count, toggleable in the UI: - -- **MatrixScan Count**: Batch scanning with progress tracking. -- **SparkScan**: Fast, single-item scanning. - -The scanned item list is **persistent across sessions and workflows**. -Switching between modes or leaving the app does not clear it. - -:::tip -If you need to customize the behavior of the Inventory Count feature, please contact [Scandit Support](mailto:support@scandit.com). -::: \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/configuration/scan-labels.md b/versioned_docs/version-8.1.1/hosted/express/configuration/scan-labels.md deleted file mode 100644 index 746356bf..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/configuration/scan-labels.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: "Powered by Smart Label Capture, a feature available in the Scandit Smart Data Capture SDK, this mode enables the simultaneous scanning of multiple barcodes and printed text on labels, streamlining data entry and reducing errors." -framework: express -keywords: - - express ---- - -# Scan Labels - -Powered by [Smart Label Capture](/sdks/android/label-capture/intro/), a feature available in the Scandit Smart Data Capture SDK, this mode enables the simultaneous scanning of multiple barcodes and printed text on labels, streamlining data entry and reducing errors. - -By combining barcode recognition with OCR and built-in intelligence, it can understand the context of the data and extract only the relevant fields for your application. - -It is available via the **Scan Labels** option in the Express menu. - -When finished scanning, you can export the list of scanned details. - -

- Express Menu -

- -## Configuration - -Label scanning can be enabled and configured in your [Scandit Dashboard](https://ssl.scandit.com/dashboard/) by navigating to the **Modes > Label Scanning** section: - -

- Label Scanning -

- -Once enabled, you can select from a the following pre-defined label types, and the respective fields will be automatically detected when scanning: - -* **Smart Device**: Captures the UPC/EAN, IMEI1 and IMEI2, and Serial Number from mobile device labels. -* **Price Weight**: This factory method is designed for price checking scenarios where both barcode and price text need to be captured from product labels. Returns `SKU` and `priceText` fields. -* **VIN**: Captures the Vehicle Identification Number (VIN) from vehicle labels. - -:::tip -If you need to customize the behavior of the Smart Label Capture feature, please contact [Scandit Support](mailto:support@scandit.com). -::: \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/getting-started/installation.md b/versioned_docs/version-8.1.1/hosted/express/getting-started/installation.md deleted file mode 100644 index 7c32b28d..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/getting-started/installation.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -description: "Follow the steps below to get started with Scandit Express." -sidebar_label: 'Installation' -displayed_sidebar: expressSidebar -sidebar_position: 1 -framework: express -keywords: - - express ---- - -# Installation - -Follow the steps below to get started with Scandit Express. - -:::note -To use Scandit Express, you need to have a Scandit account. If you don't have one, you can [sign up for a free trial](https://ssl.scandit.com/dashboard/sign-up?p=express-trial). -::: - - - - - 1. Sign up or Log in via the [Scandit Dashboard](https://ssl.scandit.com/) and select you project card. - 2. Scan the QR code of the project using your smart device. You will be forwarded to the AppStore. - 3. Install Scandit Express from there and your application will automatically be configured with the project of the scanned QR code. - 4. Once installed, iOS will ask you to grant Scandit Express camera access. Camera access is required for barcode scanning. - 5. Scandit Express will now be present whenever the keyboard is open. Click on the globe icon of the keyboard to switch between keyboards. - - - - - - 1. Sign up or Log in via the [Scandit Dashboard](https://ssl.scandit.com/) and select you project card. - 2. Scan the QR code of the project using your smart device. You will be forwarded to the Play Store. - 3. Install Scandit Express from there and your application will automatically be configured with the project of the scanned QR code. - 4. Once installed, Android will ask you to grant Scandit Express camera access. Camera access is required for barcode scanning. - 5. Scandit Express will now be present whenever the keyboard is open. Click on the globe icon of the keyboard to switch between keyboards. - - - diff --git a/versioned_docs/version-8.1.1/hosted/express/getting-started/rollout.md b/versioned_docs/version-8.1.1/hosted/express/getting-started/rollout.md deleted file mode 100644 index a3176bbd..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/getting-started/rollout.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -description: "For production use, Scandit Express is typically distributed via a mobile device management (MDM) or enterprise mobility management (EMM) system. This page will guide you rolling out Scandit Express using such a system for either Android or iOS. " - -sidebar_label: 'Rollout via MDM/EMM' -displayed_sidebar: expressSidebar -sidebar_position: 2 -framework: express -keywords: - - express ---- - -# Production Rollout - -For production use, Scandit Express is typically distributed via a mobile device management (MDM) or enterprise mobility management (EMM) system. This page will guide you rolling out Scandit Express using such a system for either Android or iOS. - -This involves adding Scandit Express to your MDM/EMM solution's app catalog, and setting the project code to synchronize the Scandit Express configuration automatically to all devices. - -:::note -The screenshots in this guide are from MobileIron Cloud. However, these instructions apply to MDM/EMM solutions from most vendors. -::: - -## iOS - -You can distribute Scandit Express directly from the Apple App Store. Search for "Scandit Express" in the admin console of your EMM/MDM solution and add it to your app catalog. - -![Add Express to App Catalog](/img/express/rollout_ios_1.png) - -### Set the Project Code - -To automatically synchronize your Scandit Express configuration with Scandit, you need to set the project code in the management console of your MDM/EMM solution. Once set, your users won't have to manually activate Scandit Express via QR code. Configuration changes are also automatically distributed to all devices. - -1. Login to your [Scandit Dashboard](https://ssl.scandit.com/). - -2. Click on your project card. - -3. From the Project dashboard, click the **Copy Project Code** link. - -4. In your MDM system, paste this value in the **iOS Managed App Configuration** section. - -![Add Project Code](/img/express/rollout_ios_2.png) - -:::note -If your MDM system requires an AppConfig configuration, you can generate one [here](https://appconfig.jamfresearch.com/generator) by selecting Scandit Express as: `com.scandit.KeyboardWedge2/current`. -::: - -### 3rd-Party Instructions - -This section provides links to the relevant sections of the documentation for popular MDM/EMM solutions: - -| Solution | Links | -|:---------|:------| -| MobileIron Cloud | [App Catalog](http://mi.extendedhelp.mobileiron.com/45/all/en/desktop/App_Catalog.htm), [App Configuration](http://mi.extendedhelp.mobileiron.com/45/all/en/desktop/App_Configuration.htm) | -| VMWare Airwatch | [Add Public Applications from an App Store](https://docs.vmware.com/en/VMware-AirWatch/9.1/vmware-airwatch-guides-91/GUID-AW91-Config_Public_Apps_WS1.html) | - -## Android - -Scandit Express for Android supports MDM/EMM deployment via [Android Managed Configurations](https://developer.android.com/work/managed-configurations). - -:::warning -Please note that Scandit Express might not be compatible with some Android for Work configurations (e.g. 3rd-party keyboards such as Scandit Express can typically not be installed in a work profile). - -Scandit recommends setting Android devices as either ["fully managed"](https://support.google.com/work/android/answer/9562029?hl=en&ref_topic=9563482&sjid=2353681360583047853-EU) and ["dedicated devices"](https://support.google.com/work/android/answer/9560920?hl=en&ref_topic=9563482&sjid=2353681360583047853-EU). -::: - -You can distribute Scandit Express directly from the Google Play Store. Search for "Scandit Express" in the admin console for your EMM/MDM solution and add it to your app catalog. - -![Add Express to App Catalog](/img/express/rollout_android_1.png) - -### Set the Project Code - -To automatically synchronize your Scandit Express configuration with Scandit, you need to set the project code in the management console of your MDM/EMM solution. Once set, your users won't have to manually activate Scandit Express via QR code. Configuration changes are also automatically distributed to all devices. - -1. Login to your [Scandit Dashboard](https://ssl.scandit.com/). - -2. Click on your project card. - -3. The Android Scandit Express App specifies the following Application Restriction: - ```java - - ``` - -4. The `deploymentCode` value needs to be set by the admin of the Managed Configuration to the project code, which can be obtained on the Scandit Express Dashboard by clicking the **Copy Project Code** link. - -5. In your MDM system, paste this value in the **Manage Configurations** section. - -![Add Project Code](/img/express/rollout_android_2.png) - -### 3rd-Party Instructions - -This section provides links to the relevant sections of the documentation for popular MDM/EMM solutions: - -| Solution | Links | -|:---------|:------| -| MobileIron Cloud | [App Catalog](http://mi.extendedhelp.mobileiron.com/45/all/en/desktop/App_Catalog.htm), [App Configuration](http://mi.extendedhelp.mobileiron.com/45/all/en/desktop/App_Configuration.htm) | -| VMWare Airwatch | [Add Public Applications from an App Store](https://docs.vmware.com/en/VMware-AirWatch/9.1/vmware-airwatch-guides-91/GUID-AW91-Config_Public_Apps_WS1.html) | -| IMB MaaS 360 | [Adding a Google Play App to the App Catalog](https://www.ibm.com/support/knowledgecenter/en/SS8H2S/com.ibm.mc.doc/pag_source/tasks/pag_apps_add_google_play.htm) | -| SOTI MobiControl | [Adding an Google Play Store Application to an Application Catalog Rule](http://www.soti.net/mc/help/v13/en/Content/Web/Rules/Plus/Plus_Web_ApplicationCatalog.htm#Play_Store_Apps) | - -## Updating Configuration - -To update the configuration of Scandit Express on all devices, simply change the configuration in the Scandit Dashboard. The new configuration will be automatically distributed to all devices. - -Scandit Express automatically updates the license and configuration when restarted, but if you need to force a reload: - -1. Open the user menu in the top right corner of the Scandit Express app. - -![Open User Menu](/img/express/user_menu.png) - -2. Tap on **Refresh Project**. - -![Refresh Project](/img/express/refresh_project.png) \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/getting-started/safari-extension.md b/versioned_docs/version-8.1.1/hosted/express/getting-started/safari-extension.md deleted file mode 100644 index d9f24ab1..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/getting-started/safari-extension.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -description: 'Integrate barcode scanning directly into Safari on iOS with the Scandit Express extension.' -sidebar_label: 'Safari Extension' -displayed_sidebar: expressSidebar -keywords: - - express ---- - -# Safari Browser Extension - -The **Safari Browser Extension** is an alternative to the Scandit Express Keyboard. It allows barcode data to be scanned and injected directly into web applications running inside Safari on iOS devices. - -Instead of typing from the Express Keyboard, users can trigger the scanner via a button next to text fields in a webpage. This is especially useful for workflows where scanning should be initiated directly from the application interface. - -## Installation - -The Safari Browser Extension is bundled with the **Scandit Express** app as an extension (`.appex`). - -- When the Scandit Express app is installed, the Safari extension is also installed but must be enabled by the user. - -By default, Safari will ask for permission to run the extension on websites and users can choose: -- **Allow Once** -- **Always Allow** -- **Deny** - -Once enabled, the extension is visible in the Safari toolbar. - -:::tip -Both the extension icon and the pop-up UI can be customized. -::: - -## How It Works - -When enabled, the extension automatically adds a **Scan** button next to input fields in Safari webpages. - -1. The user taps the **Scan** button next to a text field. -2. Safari opens a deep link to the Scandit Express app. -3. The Express scanner is launched, and the scanned barcode is stored in shared storage. -4. Safari is brought back into focus. -5. The extension retrieves the scan result and inserts it into the selected input field. - -## Configuration - -The Safari extension can be configured via the Scandit Dashboard from the **General > Browser Extension** section. - -

- Safari Extension Dashboard -

- -### Default Behavior - -By default, the extension attaches a scan button next to every `` field on the page. - -### Restricting Buttons to Specific Fields - -Developers can limit the scan button to appear only for specific fields by providing CSS selectors. diff --git a/versioned_docs/version-8.1.1/hosted/express/overview.md b/versioned_docs/version-8.1.1/hosted/express/overview.md deleted file mode 100644 index a9201d00..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/overview.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: "Scandit Express is an application that enables you to instantly add barcode scanning to any existing app or software tool on a smart device.It requires no software changes or coding effort, and is compatible with any app or system, even those that cannot be modified. By adding a keyboard that has a scan button above the standard keys (a keyboard wedge), it allows users to scan barcodes directly into any input field. " - -sidebar_position: 1 -sidebar_label: 'Overview' -title: 'Scandit Express' -displayed_sidebar: expressSidebar -framework: express -keywords: - - express ---- - -Scandit Express is an application that enables you to instantly add barcode scanning to any existing app or software tool on a smart device.It requires no software changes or coding effort, and is compatible with any app or system, even those that cannot be modified. By adding a keyboard that has a scan button above the standard keys (a keyboard wedge), it allows users to scan barcodes directly into any input field. - - -Scandit Express is built for enterprise use and supports distribution through mobile device management (MDM) and enterprise mobility management (EMM) systems. - -## Minimum Requirements - -| Platform | Minimum Version | Camera | -|----------|------------------|--------| -| Android | 9.0 | 720p, Autofocus and fixed-focus | -| iOS | 12.0 | 720p, Autofocus and fixed-focus | - -## UI/UX - -The Scandit Express user interface (UI) is designed to resemble a smartphone camera. It also includes features to reduce user workload and frustration, such as aiming assist, batch scanning, and visual, sound, and haptic feedback. There is also an advanced _Find_ mode that helps frontline workers and customers instantly locate items using an augmented-reality (AR) interface. - -![Scandit Express](/img/express/express_ui.png) - -Depending on the mode selected, the user has a choice of scanning barcodes one by one or batch scanning many codes simultaneously. For batch scanning, users can scan as many barcodes as they want and verify them in a list, before inputting them into the desired field. - -### Scanning Modes - -Scandit Express offers multiple scanning modes: - -* **Accuracy**: Scans one barcode out of many in the camera’s field of view. It detects all barcodes available and provides an AR overlay to help the user select one target barcode. -* **Speed**: Scans multiple barcodes in quick succession. It removes the need to tap the screen repeatedly. -* **Batch**: Scans all visible barcodes and stores them in a list. - -## Security and Compliance - -Scandit Express follows the same [security and compliance standards](https://www.scandit.com/company/security/) as all other Scandit products. - -Your data belongs to you, and we will never collect it unless authorized by you. No keystrokes are recorded, no images captured for barcode decoding are stored on the device after the scan is complete, and no images are transmitted. Scandit Express is fully functional without network access. - -* Devices register with Scandit’s servers to track the total number of devices on which Scandit Express is used. -* No personally identifiable information stored on the device (such as name, phone number, email address, or device ID) is ever processed or transmitted by Scandit Express. -* All communication is encrypted. -* No connectivity into your network and no access to your IT system is required. \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/workflows/markdown.md b/versioned_docs/version-8.1.1/hosted/express/workflows/markdown.md deleted file mode 100644 index 76f5a9f8..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/workflows/markdown.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -description: 'Configuration options for the Markdown workflow in Scandit Express.' -sidebar_label: 'Markdown Configuration' -displayed_sidebar: expressSidebar -keywords: - - express ---- - -# Configuring the Markdown Workflow - -Configure the Markdown workflow in the Scandit Express dashboard to help users efficiently manage tasks related to product recalls. - -The configuration can only be done via the Code Editor in the **Advanced** section of the dashboard: - -

- Code Editor -

- -## Configuration Options - -The Markdown workflow can be configured using the following options: - -| Option | Description | Example Value | -|----------------------|---------------------------------------------------------------------------------------------------|------------------------------| -| `type` | The type of workflow. This should always be set to `markdown`. | `markdown` | -| `labelCaptureSettings` | Settings for label capture, including the fields to capture and their validation rules. | JSON, see example below | -| `daysUntilExpiry` | Integer value representing the number of days until the item expires. | `3` | -| `expiryDateField` | Object that contains name and other properties for the item. | `ExpiryDateField` | - -Each `expiryDateField` object must include the following properties: - -- `name`: The name of the field to capture (This should find a match the `labelCaptureSettings.labelDefinitions.fields[i].name`). -- `expiredValue`: Message to be shown when item is expired. -- `actionNeededValue`: Message to be shown when item is going to expire. -- `noActionNeededValue`: Message to be shown when item is not close to expiry. - -### Example Configuration - -```json -{ - "integration": { - "integrations": [ - { - "name": "Markdown", - "scenario": { - "type": "markdown", - "labelCaptureSettings": { - "labelDefinitions": [ - { - "caching": true, - "fields": [ - { - "fieldType": "customBarcode", - "name": "Barcode", - "patterns": [ - "^2.*", - "^02.*" - ], - "symbologies": [ - "ean13Upca", - "code128", - "code39", - "interleavedTwoOfFive", - "ean8", - "upce" - ] - }, - { - "fieldType": "expiryDateText", - "name": "Expiry Date", - "labelDateFormat": { - "componentFormat": "MDY" - } - } - ], - "name": "text_semantics_label" - } - ] - }, - "daysUntilExpiry": 3, - "expiryDateField": { - "name": "Expiry Date", - "expiredValue": "Remove from shelf!\nItem EXPIRED", - "actionNeededValue": "50% off", - "noActionNeededValue": "No action needed" - } - }, - "inputs": [], - "outputs": [] - } - ] - } -} -``` \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/express/workflows/overview.md b/versioned_docs/version-8.1.1/hosted/express/workflows/overview.md deleted file mode 100644 index cdc84936..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/workflows/overview.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -description: 'An overview of Scandit Express’s built-in workflows.' -sidebar_label: 'Overview' -displayed_sidebar: expressSidebar -keywords: - - express ---- - -# Built-in Workflows - -Scandit Express’s built-in workflows are configurable, ready-to-deploy modes designed to accomplish a specific task. They provide actionable insights to the user through prompts or AR-guidance. - -There are four built-in workflows available in Scandit Express: - -## Task Management - -Task Management is a workflow designed to help users efficiently manage tasks related to product recalls. It provides a streamlined process for capturing and acting on important product information. - -The user enters the recalled lot number(s) into Scandit Express. They then scan the item's barcode, lot number, and (optionally) the expiry date. Scandit Express analyzes the data and displays an on-screen prompt with the appropriate next steps. - -See [Task Management Configuration](./task-management.md) for details on how to configure this workflow. - -## Markdown - -The Markdown workflow in Scandit Express is designed to streamline the process of marking down fresh items approaching their expiry dates. - -This workflow allows users to quickly and accurately capture the necessary information, reducing the time spent on manual checks. - -No integration is required — the markdown logic can be configured directly in the Scandit Express dashboard. Once set up, users hover the camera over an item’s barcode and expiry date and Scandit Express captures and interprets the data based on the configured logic. An AR overlay is then displayed, guiding the user on the appropriate action to take. - -See [Markdown Configuration](./markdown.md) for details on how to configure this workflow. - -## Track and Trace - -Track and Trace is a workflow designed to enhance the visibility and management of pharmaceutical products throughout the supply chain. - -This workflow allows users to complete two workflows at once by verifying drug expiration with AR overlays while receiving or taking stock. Expired items are highlighted with a distinctive AR overlay and enable users to take immediate action. - -:::warning -This workflow only works for items which have the expiry date encoded in the barcode. -::: - -## Age Check - -Scandit Express's Age Check workflow allows users to verify age and ID authenticity. - -This helps ensure compliance with age-restricted regulations, such as alcohol sales or vehicle rentals, using Scandit's powerful ID Scanning and Validation technology. - -Users can scan the front and/or back of IDs, and they receive immediate feedback including verification of authenticity, expiry, and age. All scanned IDs can be exported at the end if needed. diff --git a/versioned_docs/version-8.1.1/hosted/express/workflows/task-management.md b/versioned_docs/version-8.1.1/hosted/express/workflows/task-management.md deleted file mode 100644 index 36964f06..00000000 --- a/versioned_docs/version-8.1.1/hosted/express/workflows/task-management.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -description: 'Configuration options for the Task Management workflow in Scandit Express.' -sidebar_label: 'Task Management Configuration' -displayed_sidebar: expressSidebar -keywords: - - express ---- - -# Configuring the Task Management Workflow - -Configure the Task Management workflow in the Scandit Express dashboard to help users efficiently manage tasks related to product recalls. - -The configuration can only be done via the Code Editor in the **Advanced** section of the dashboard: - -

- Code Editor -

- -## Configuration Options - -The Task Management workflow can be configured using the following options: - -| Option | Description | Example Value | -|----------------------|---------------------------------------------------------------------------------------------------|------------------------------| -| `type` | The type of workflow. This should always be set to `taskManagement`. | `taskManagement` | -| `labelCaptureSettings` | Settings for label capture, including the fields to capture and their validation rules. | JSON, see example below | -| `taskGenericKeys` | An array of generic keys that can be used in task prompts. | `["key1", "key2"]` | -| `taskField` | The field you want to consider for taking decisions about leaving on the shelf or not. | `taskField` | - -Each `taskField` object must include the following properties: - -- `name`: The name of the field to capture (This should find a match the `labelCaptureSettings.labelDefinitions.fields[i].name`). -- `inListValue`: String to be shown if the scanned label is in the expected list. -- `notInListValue`: String to be shown if the scanned label is not in the expected list. - -## Example Configuration - -```json -{ - "integration": { - "integrations": [ - { - "name": "TaskManagement", - "scenario": { - "type": "taskManagement", - "labelCaptureSettings": { - "labelDefinitions": [ - { - "caching": true, - "fields": [ - { - "fieldType": "customBarcode", - "name": "Barcode", - "symbologies": [ - "ean13Upca", - "code128", - "code39", - "interleavedTwoOfFive", - "ean8", - "upce" - ] - }, - { - "fieldType": "unitPriceText", - "name": "Unit Price", - "optional": true - }, - { - "fieldType": "weightText", - "name": "Weight", - "optional": true - }, - { - "fieldType": "totalPriceText", - "name": "Total Price", - "optional": true - }, - { - "fieldType": "packingDateText", - "name": "Packing Date", - "optional": true - }, - { - "fieldType": "expiryDateText", - "name": "Expiry Date", - "optional": true - }, - { - "fieldType": "customText", - "name": "Lot Number", - "anchorRegexes": [ - "Lot" - ], - "valueRegexes": [ - "\\d{5,15}" - ], - "optional": true - } - ], - "name": "text_semantics_label" - } - ] - }, - "taskGenericKeys": ["Column", "Column2", "Column3"], - "taskField": { - "name": "Lot Number", - "inListValue": "Recalled Item!\nRemove from shelf!", - "notInListValue": "Keep item on shelf" - } - }, - "inputs": [ - { - "type": "userSession", - "fields": [ - { - "type": "generic", - "key": "Column" - }, - { - "type": "generic", - "key": "Column2" - } - ] - }, - { - "type": "standard", - "target": { - "type": "googleSheets", - "spreadSheetId": "10ewpiR5wWkBUGCvf5YooiZcrkh74VUQivEB3l3RU3jk", - "sheetId": 640733273 - }, - "fields": [ - { - "type": "generic", - "key": "Column3" - } - ] - } - ], - "outputs": [] - } - ] - } -} -``` \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/advanced.md b/versioned_docs/version-8.1.1/hosted/id-bolt/advanced.md deleted file mode 100644 index 74005748..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/advanced.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -description: "This page covers advanced features and options for ID Bolt that help optimize performance and handle specific use cases. " - -sidebar_label: 'Advanced Options' -title: 'Advanced Options' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - advanced - - options ---- - -# Advanced Options - -This page covers advanced features and options for ID Bolt that help optimize performance and handle specific use cases. - -## Keep Alive - -When running ID Bolt multiple times in sequence (such as scanning multiple passports in a batch), you can improve performance by keeping resources alive between sessions: - -```ts -// first scan -let idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - keepAliveForNextSession: true -}); - -// second scan - -idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - keepAliveForNextSession: true -}); - -// more scans... - -// When finished with all scans -IdBoltSession.terminate(); -``` - -### Benefits - -- Faster loading times for subsequent scans -- No need to request camera permissions again -- Reduced resource initialization overhead - -### Important Notes - -- Always call `IdBoltSession.terminate()` when done with all scans to release resources -- This feature is most beneficial when scanning multiple IDs in quick succession - -## Browser Navigation Control - -By default, ID Bolt closes when users press the browser's back button. You can disable this behavior: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - disableCloseOnBrowserBack: true -}); -``` - -### When to Use - -- When you have custom navigation logic in your application, that interferes with this feature - -### Default Behavior - -When `disableCloseOnBrowserBack` is `false` (default), pressing the back button closes the ID Bolt pop-up and triggers the `onCancellation` callback with `CancellationReason.UserClosed`. - -## Transaction Tracking - -You can associate ID Bolt sessions with your internal tracking identifiers for analytics and debugging: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - externalTransactionId: "booking-12345" // your booking, order, or transaction ID -}); -``` - -### Benefits - -- Correlate ID Bolt sessions with your business transactions -- Better analytics and reporting capabilities - -### Example Use Cases - -- E-commerce: Order IDs -- Booking systems: Reservation Numbers diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/api-overview.md b/versioned_docs/version-8.1.1/hosted/id-bolt/api-overview.md deleted file mode 100644 index 806363d2..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/api-overview.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -description: "ID Bolt is built around the concept of a **session** - a complete user journey from starting the ID scanning process to either successful completion or cancellation. The main class `IdBoltSession` represents this session and manages the entire workflow. " - -sidebar_label: 'API Overview' -title: 'API Overview' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt ---- - -# ID Bolt API Overview - -ID Bolt is built around the concept of a **session** - a complete user journey from starting the ID scanning process to either successful completion or cancellation. The main class `IdBoltSession` represents this session and manages the entire workflow. - - -## Quick Start Example - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - licenseKey: LICENSE_KEY, - documentSelection: DocumentSelection.create({ - accepted: [new Passport(Region.Any)] - }), - returnDataMode: ReturnDataMode.Full, - validation: [Validators.notExpired()], - onCompletion: (result) => { - console.log("Successfully completed workflow", result); - }, - onCancellation: (reason) => { - console.log("Scanning cancelled", reason); - } -}); -await idBoltSession.start(); -``` - -## Session Methods - -### Creating a Session - -```ts -IdBoltSession.create(serviceUrl: string, options: IdBoltCreateSessionOptions): IdBoltSession -``` - -Creates a new ID Bolt session with your configuration. The session is not started until you call `start()`. - -**Parameters:** -- `serviceUrl`: Your ID Bolt service URL from the Scandit dashboard -- `options`: [Configuration object defining the session behavior](#configuration-options) - -:::note -The default value `app.id-scanning.com` is an alias that points to Scandit's servers. In a production environment it can be changed to your own domain name pointing to Scandit's servers. This will require you to configure a CNAME record in the DNS settings of your domain. Contact your Scandit account manager for more information. -::: - -### Starting a Session - -```ts -async session.start(): Promise -``` - -Launches the ID Bolt user interface and begins the scanning workflow. Returns a unique session ID for tracking. - -### Resource Management - -```ts -IdBoltSession.terminate(): void -``` -When the `keepAliveForNextSession` (default: false) option is selected, this method can be used to clean up resources after the last session ended. If this option is not selected, there is no need to call this method. - -## Configuration Options - -The following options can be configured when creating an ID Bolt session: - -| Option | Type | Required | Description | Details | -|--------|------|----------|-------------|---------| -| `licenseKey` | `string` | Yes | Your Scandit license key | | -| `documentSelection` | `DocumentSelection` | Yes | Defines acceptable documents | [Document Selection](../document-selection) | -| `returnDataMode` | `ReturnDataMode` | Yes | Controls what data is returned | [Data Handling](../data-handling) | -| `anonymizationMode` | `AnonymizationMode` | No | Controls data anonymization | [Data Handling](../data-handling) | -| `scanner` | `Scanner` | No | Customizes scanner behavior | [Workflow Options](../workflow) | -| `validation` | `Validators[]` | No | Validators to verify ID | [Validators](../validators) | -| `locale` | `string` | No | Interface language | [Supported Locales](#supported-locales) | -| `workflow` | `WorkflowOptions` | No | Customizes workflow UI | [Workflow Options](../workflow) | -| `theme` | `Theme` | No | Customizes visual appearance | [Theming](../theming) | -| `textOverrides` | `TextOverrides` | No | Customizes displayed text | [Text Overrides](../text-overrides) | -| `keepAliveForNextSession` | `boolean` | No | Keeps resources for multiple sessions | [Advanced Options](../advanced) | -| `disableCloseOnBrowserBack` | `boolean` | No | Prevents closing on browser back | [Advanced Options](../advanced) | -| `externalTransactionId` | `string` | No | Your tracking ID for analytics | [Advanced Options](../advanced) | -| `learnMore` | `LearnMore` | No | Customize the "learn more" section | | -| `onCompletion` | `Function` | Yes | Completion callback | [Callbacks](../callbacks) | -| `onCancellation` | `Function` | No | Cancellation callback | [Callbacks](../callbacks) | - - -## Supported Locales - -The following languages are supported: - -- `en-US` (English, United States - default) -- `de-DE` (German, Germany) -- `de-CH` (German, Switzerland) -- `es-ES` (Spanish, Spain) -- `fr-FR` (French, France) -- `it-IT` (Italian, Italy) -- `nl-NL` (Dutch, Netherlands) -- `pl-PL` (Polish, Poland) -- `pt-PT` (Portuguese, Portugal) -- `da-DK` (Danish, Denmark) \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/callbacks.md b/versioned_docs/version-8.1.1/hosted/id-bolt/callbacks.md deleted file mode 100644 index 8991aacf..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/callbacks.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -description: "ID Bolt provides callbacks to handle session completion and cancellation, allowing your application to respond appropriately to user actions and scan results. " - -sidebar_label: 'Callbacks' -title: 'Callbacks' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - callbacks - - events ---- - -# Callbacks - -ID Bolt provides callbacks to handle session completion and cancellation, allowing your application to respond appropriately to user actions and scan results. - -## Completion Callback - -The `onCompletion` callback is invoked when the user has successfully scanned their ID and passed all validations. This is where you'll receive the extracted data. - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - onCompletion: (result) => { - if (result.capturedId) { - console.log('Document type:', result.capturedId.documentType); - console.log('Full name:', result.capturedId.fullName); - console.log('Document number:', result.capturedId.documentNumber); - // Process the scanned ID data - } - } -}); -``` - -### CompletionResult Object - -The `onCompletion` callback receives a `CompletionResult` object containing: - -| Property | Type | Description | -|----------|------|-------------| -| `capturedId` | `CapturedId` | The scanned document data. Will be `null` if no data was returned based on the `returnDataMode`. | - -## Cancellation Callback - -The `onCancellation` callback is invoked when the user closes the ID Bolt pop-up without completing the scanning process or when the service fails to start. - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - onCancellation: (reason) => { - switch (reason) { - case CancellationReason.UserClosed: - console.log("User closed the scanning window"); - // Handle user cancellation - break; - case CancellationReason.ServiceStartFailure: - console.log("ID Bolt service failed to start"); - // Handle service failure - break; - } - } -}); -``` - -### CancellationReason Enum - -The `onCancellation` callback receives a `CancellationReason` enum value: - -| Value | Description | -|-------|-------------| -| `CancellationReason.UserClosed` | The user closed the ID Bolt pop-up before completing the scanning process | -| `CancellationReason.ServiceStartFailure` | The ID Bolt service failed to start | - -## Captured ID Data - -The `CapturedId` object contains the extracted data from the scanned document. The available data depends on the document type and quality of the scan. - -### CapturedId Properties - -| Property | Type | Description | -|----------|------|-------------| -| `firstName` | `string` | First name of the document holder | -| `lastName` | `string` | Last name of the document holder | -| `fullName` | `string` | Full name of the document holder | -| `sex` | `string` | Sex/gender of the document holder | -| `nationality` | `string` | Nationality of the document holder | -| `address` | `string` | Address of the document holder | -| `issuingCountry` | `Region` | The ISO (Alpha-3 code) abbreviation of the issuing country | -| `documentNumber` | `string` | Unique identifier assigned to the document | -| `documentAdditionalNumber` | `string` | Secondary identification number if present | -| `personalIdNumber` | `string` | Personal identification number of the document holder | -| `dateOfBirth` | `DateResult` | Date of birth of the document holder | -| `age` | `number` | Calculated age based on date of birth | -| `dateOfExpiry` | `DateResult` | Expiration date of the document | -| `isExpired` | `boolean` | Whether the document is expired | -| `dateOfIssue` | `DateResult` | Date when the document was issued | -| `documentType` | `DocumentType` | Type of document (e.g. `"Passport"`, `"IdCard"`, `"DriverLicense"`, `"VisaIcao"`, `"ResidencePermit"`, `"HealthInsuranceCard"`, `"RegionSpecific"`) | -| `documentSubtype` | `string \| null` | Subtype of the document, if applicable | -| `capturedResultTypes` | `string[]` | Types of data that were captured | -| `nationalityISO` | `string \| null` | ISO code of the nationality | -| `isCitizenPassport` | `boolean` | Whether the document is a citizen passport | -| `images` | `object \| null` | Object containing base64 encoded images (if requested) | -| `mrzResult` | `MrzResult \| null` | Raw extracted data from Machine Readable Zone (MRZ) | -| `vizResult` | `VizResult \| null` | Raw extracted data from Visual Inspection Zone (VIZ) | -| `barcodeResult` | `BarcodeResult \| null` | Raw extracted data from barcode | - -### DateResult Object - -Date values are represented as `DateResult` objects: - -| Property | Type | Description | -|----------|------|-------------| -| `day` | `number` | Day of the month (1-31) | -| `month` | `number` | Month (1-12) | -| `year` | `number` | Four-digit year | - -### Images Object - -If you've used `ReturnDataMode.FullWithImages`, the `images` property will contain front and back image sets: - -```ts -images: { - front: ImageSet; - back: ImageSet; -} | null -``` - -Each `ImageSet` contains: - -| Property | Type | Description | -|----------|------|-------------| -| `face` | `string \| null` | Cropped face image extracted from the document (base64 encoded) | -| `croppedDocument` | `string \| null` | Cropped image of the document, only available when the visual inspection zone is scanned (base64 encoded) | -| `frame` | `string \| null` | Full frame image of the captured document (base64 encoded) | - -## Example: Complete Callback Usage - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - licenseKey: LICENSE_KEY, - documentSelection: DocumentSelection.create({ - accepted: [new Passport(Region.Any)] - }), - returnDataMode: ReturnDataMode.FullWithImages, - onCompletion: (result) => { - if (result.capturedId) { - // Extract basic information - const { fullName, documentNumber, documentType, issuingCountry } = result.capturedId; - console.log("Full Name:", fullName); - console.log("Document Number:", documentNumber); - console.log("Document Type:", documentType); - console.log("Issuing Country:", issuingCountry); - } - }, - onCancellation: (reason) => { - switch (reason) { - case CancellationReason.UserClosed: { - console.log("User cancelled the scanning process"); - // Show alternative flow - return; - } - case CancellationReason.ServiceStartFailure: { - console.log("Service failed to start"); - // Show alternative flow - return; - } - default: { - console.log("Other cancellation reason"); - // Reserved for future cancellation reasons - } - } - } -}); -``` \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/data-handling.md b/versioned_docs/version-8.1.1/hosted/id-bolt/data-handling.md deleted file mode 100644 index 0dad2f4a..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/data-handling.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -description: "ID Bolt provides options to control what data is returned from scanned documents and how sensitive information is handled, allowing you to balance functionality with privacy requirements. " - -sidebar_label: 'Data Handling' -title: 'Data Handling' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - data handling - - anonymization - - privacy ---- - -# Data Handling - -ID Bolt provides options to control what data is returned from scanned documents and how sensitive information is handled, allowing you to balance functionality with privacy requirements. - -## Return Data Mode - -The `returnDataMode` option controls the extent of data returned by the `onCompletion()` callback: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - returnDataMode: ReturnDataMode.Full -}); -``` - -### Available Modes - -| Value | Description | -| ----- | ----------- | -| `ReturnDataMode.Full` | All extracted data is returned, but images are excluded | -| `ReturnDataMode.FullWithImages` | All extracted data is returned, including images of the scanned ID | - -### Choosing the Right Mode - -- Use `ReturnDataMode.Full` when you need the extracted data but don't require images -- Use `ReturnDataMode.FullWithImages` when you need visual verification or need to store images for compliance purposes - -When using `FullWithImages`, be aware that the response will be larger due to the base64-encoded image data. - -## Anonymization Mode - -Some countries have specific requirements for the anonymization of documents. ID Bolt can be configured to protect sensitive fields and obscure them in result images: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - anonymizationMode: AnonymizationMode.FieldsOnly -}); -``` - -### Available Modes - -| Value | Description | -| ----- | ----------- | -| `AnonymizationMode.None` | No anonymization is applied (default) | -| `AnonymizationMode.FieldsOnly` | Only fields (data) are anonymized | -| `AnonymizationMode.ImagesOnly` | Only images are anonymized | -| `AnonymizationMode.FieldsAndImages` | Both fields and images are anonymized | - -### Effects of Anonymization - -- **Fields Anonymization**: Sensitive fields are not extracted from documents -- **Image Anonymization**: Black boxes cover sensitive data in result images - -When image anonymization is enabled (`ImagesOnly` or `FieldsAndImages`), and `ReturnDataMode.FullWithImages` is used, full-frame images will not be returned. Cropped images will still be available but with sensitive areas obscured. diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/document-selection.md b/versioned_docs/version-8.1.1/hosted/id-bolt/document-selection.md deleted file mode 100644 index d6574be5..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/document-selection.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -description: "ID Bolt allows you to specify which types of documents are acceptable for scanning. Documents are selected using the `DocumentSelection` class. " - -sidebar_label: 'Document Selection' -title: 'Document Selection' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - document selection ---- - -# Document Selection - -ID Bolt allows you to specify which types of documents are acceptable for scanning. Documents are selected using the `DocumentSelection` class. - -## Creating a Document Selection - -Use `DocumentSelection.create()` to define which types of documents the ID Bolt will accept: - -```ts -const documentSelection = DocumentSelection.create({ - accepted: [ - new Passport(Region.Any), - new IdCard(Region.FRA), - new DriverLicense(Region.France) - ], - rejected: [ - // You can explicitly reject certain documents that would otherwise be included - new Passport(Region.Switzerland) - ], -}); -``` - -Documents not on the list may trigger the scanner, but will not be accepted. - -## Standard Document Types - -### Passport - -Includes all passports. - -```ts -new Passport(Region.USA) // US passports only -new Passport(Region.Any) // Any passport -``` - -### ID Card - -Includes national identity cards. - -```ts -new IdCard(Region.Germany) // German identity cards only -new IdCard(Region.Any) // Identity cards from any country -``` - -### Driver License - -Includes driver licenses. - -```ts -new DriverLicense(Region.France) // French driver licenses only -new DriverLicense(Region.Any) // Driver licenses from any country -``` - -### Visa (ICAO) - -Includes visas that comply with International Civil Aviation Organization (ICAO) standards. - -```ts -new VisaIcao(Region.USA) // US ICAO-compliant visas -new VisaIcao(Region.Any) // Any ICAO-compliant visa -``` - -### Residence Permit - -Includes residence permits. - -```ts -new ResidencePermit(Region.USA) // US residence permits -new ResidencePermit(Region.Any) // Residence permits from any country -``` - -### Health Insurance Card - -Includes health insurance cards. - -```ts -new HealthInsuranceCard(Region.Germany) // German health insurance cards -new HealthInsuranceCard(Region.Any) // Health insurance cards from any country -``` - -## Region Specific Documents - -For specialized document types that are specific to certain regions, use the `RegionSpecific` class with a `RegionSpecificSubtype` argument: - -```ts -new RegionSpecific(RegionSpecificSubtype.BelgiumMinorsId) // Belgian minors ID -new RegionSpecific(RegionSpecificSubtype.MexicoTaxId) // Mexican tax ID -``` - -### Supported Region Specific Documents - -The following region-specific document types are supported: - -#### United States - -* `UsBorderCrossingCard` -* `UsGlobalEntryCard` -* `UsNexusCard` -* `UsCommonAccessCard` -* `UsUniformedServicesId` -* `UsVeteranId` -* `UsWorkPermit` -* `UsSocialSecurityCard` -* `UsTwicCard` -* `UsWeaponPermit` -* `UsMedicalMarijuanaCard` -* `UsMunicipalId` - -#### Asia - -* `ChinaExitEntryPermit` -* `ChinaMainlandTravelPermitTaiwan` -* `ChinaMainlandTravelPermitHongKongMacau` -* `ChinaOneWayPermit` -* `PakistanAfghanCitizenCard` -* `PakistanProofOfRegistration` -* `PakistanConsularId` -* `SingaporeFinCard` -* `SingaporeWorkPermit` -* `SingaporeEmploymentPass` -* `SingaporeSPass` -* `IndiaPanCard` -* `MalaysiaIkad` -* `MalaysiaMykad` -* `MalaysiaMypr` -* `MalaysiaMykas` -* `MalaysiaMykid` -* `MalaysiaMytentera` -* `MalaysiaRefugeeId` -* `MalaysiaMypolis` -* `PhilippinesMultipurposeId` -* `PhilippinesWorkPermit` -* `PhilippinesSocialSecurityCard` -* `PhilippinesNbiClearance` -* `PhilippinesPostalId` -* `PhilippinesTaxId` - -#### Europe - -* `GermanyEid` -* `BelgiumMinorsId` -* `HungaryAddressCard` -* `UkAsylumRequest` -* `UkMilitaryId` -* `SwedenSocialSecurityCard` -* `SwedenSisId` -* `IrelandPublicServicesCard` - -#### Americas - -* `MexicoConsularVoterId` -* `MexicoProfessionalId` -* `MexicoConsularId` -* `MexicoTaxId` -* `CanadaTribalId` -* `CanadaSocialSecurityCard` -* `CanadaCitizenshipCertificate` -* `CanadaMinorsPublicServicesCard` -* `CanadaWeaponPermit` -* `CanadaPublicServicesCard` -* `ColombiaMinorsId` -* `ColombiaTemporaryProtectionPermit` -* `PeruMinorsId` -* `BoliviaMinorsId` -* `GuatemalaConsularId` - -#### Other - -* `ApecBusinessTravelCard` -* `AustraliaAsicCard` -* `UaeVehicleRegistrationCard` -* `UaeEsaadCard` - -## Working with Regions - -Regions are used to define the geographic scope of a document. They can be specified using the `Region` enum, which contains both ISO codes and region names. - -```ts -// These are equivalent -Region.FRA; -Region.France; -"FRA"; - -// For any region -Region.Any; -``` - -### Two-letter ISO Codes - -If you have a two-letter ISO code, you can convert it to a region: - -```ts -const region = Region.fromShortCode("FR"); // == Region.France == "FRA" -const shortCode = Region.toShortCode(Region.FRA); // == "FR" -``` - -If the provided short code is invalid, the methods will throw an exception. \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/getting-started.md b/versioned_docs/version-8.1.1/hosted/id-bolt/getting-started.md deleted file mode 100644 index f0e4ec91..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/getting-started.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -description: "ID Bolt can be integrated into your existing application or website with minimal time and effort, often ready to test in your staging environment in just one hour. " - -sidebar_label: 'Getting Started' -title: 'Getting Started' -hide_title: false -displayed_sidebar: boltSidebar -framework: bolt -keywords: - - bolt ---- - -ID Bolt can be integrated into your existing application or website with minimal time and effort, often ready to test in your staging environment in just one hour. - -ID Bolt is available as an [npm package](https://www.npmjs.com/package/@scandit/web-id-bolt) and can be installed using `npm` or `yarn`. - - - -```bash -npm install @scandit/web-id-bolt -``` - - -```bash -yarn add @scandit/web-id-bolt -``` - - - -## Content Security Policy (CSP) - -If you have `Content-Security-Policy` headers (CSP) which prevent loading iframes on your page, you need to adapt the value like so: - -``` -frame-src 'self' https://app.id-scanning.com https://id-service.scandit.com -``` - -This allows ID Bolt to load the necessary iframe components for the scanning interface. - -## Basic Integration - -Once you have installed the package as a dependency, you can import the ID Bolt module and start scanning IDs. - -:::note -A valid license key is required for ID Bolt. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=id-bolt). -::: - -Your specific application needs and design define when the ID Bolt pop-up should opened. In this example, we open it after a click on a button present on the page: - -```javascript -import { - DocumentSelection, - IdBoltSession, - Region, - Passport, - ReturnDataMode, - Validators, -} from "@scandit/web-id-bolt"; - -const ID_BOLT_URL = "https://app.id-scanning.com"; - -const LICENSE_KEY = "-- YOUR LICENSE KEY HERE --"; - -async function startIdBolt() { - // define which documents are allowed to be scanned. More complex rules can be added. - const documentSelection = DocumentSelection.create({ - accepted: [new Passport(Region.Any)], - }); - // initialization of the ID Bolt session - const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - licenseKey: LICENSE_KEY, - documentSelection, - // define what data you expect in the onCompletion callback - returnDataMode: ReturnDataMode.Full, - // add validation rules on the scanned document - validation: [Validators.notExpired()], - locale: "en-US", - onCompletion: (result) => { - // the ID has been captured and validation was successful. - }, - onCancellation: (reason) => { - // the ID Bolt pop-up has been closed by the user without finishing the scan process. - }, - }); - // open the pop-up - await idBoltSession.start(); -} - -// open ID Bolt when some button is clicked -const someButton = document.getElementById("someButton") as HTMLButtonElement; -someButton.addEventListener("click", startIdBolt); -``` - -For completeness this is the HTML you will need for the example: - -```html - -``` - -The above code snippet is a simple example of how to integrate ID Bolt into your application. It opens the ID Bolt pop-up when a button is clicked and listens for the completion of the scanning process. diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/overview.md b/versioned_docs/version-8.1.1/hosted/id-bolt/overview.md deleted file mode 100644 index 87ff146f..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/overview.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -description: "ID Bolt is a cloud-based identity scanning solution that enables you to provide customers a fast, foolproof ID scanning in just 1 second, leading to an improved customer experience as well as compliance. It works on-device, via desktop and mobile in a unified solution, ensuring no identity information is collected by third-party servers and reduces latency for quick scanning performance. " - -sidebar_position: 1 -sidebar_label: 'Overview' -title: 'ID Bolt' -displayed_sidebar: boltSidebar -framework: bolt -keywords: - - bolt ---- - -ID Bolt is a cloud-based identity scanning solution that enables you to provide customers a fast, foolproof ID scanning in just 1 second, leading to an improved customer experience as well as compliance. It works on-device, via desktop and mobile in a unified solution, ensuring no identity information is collected by third-party servers and reduces latency for quick scanning performance. - -:::tip -In addition to ID Bolt, Scandit provides an [ID Capture SDK for the Web](/sdks/web/id-capture/intro.md) that allows full flexibility around the user interface and user flow. -::: - -## Features - -ID Bolt offers the following features: - -* **Fast Scanning**: ID Bolt scans an ID in just 1 second, ensuring a quick and seamless customer experience. Scans are performed from video streams for the fastest possible scanning. -* **On-Device Scanning/Processing**: ID Bolt scans IDs on-device, ensuring no identity information is collected by third-party servers, and handling all processing on the device for improved performance. -* **Device Handover**: ID Bolt works on both desktop and mobile devices, providing a unified solution. Desktop/laptop users can scan IDs using their mobile device camera. -* **Industry Leading UX**: ID Bolt provides a seamless user experience with a simple and intuitive interface, designed based on the millions of scans performed by Scandit customers each year. -* **Compliance**: ID Bolt ensures compliance with data protection regulations, such as GDPR, by processing all data on-device and not collecting any identity information on third-party servers. -* **White-Label Solution**: ID Bolt can be placed behind your own domain, allowing you to maintain brand consistency and provide a seamless, integrated experience to your customers while leveraging Scandit's powerful ID scanning capabilities. diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/release-notes.md b/versioned_docs/version-8.1.1/hosted/id-bolt/release-notes.md deleted file mode 100644 index 193b01c4..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/release-notes.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -description: "Release notes and updates for ID Bolt." -toc_max_heading_level: 3 -displayed_sidebar: boltSidebar -framework: bolt -keywords: - - bolt -hide_title: true -title: Release Notes ---- - -## 2.1.0 - -**Released**: January 21, 2026 - -### New Features - -* Allow scanning of the table on the back of EU driver licenses. -* Include the full decoded barcode result when scanning barcode on the back of US driver licenses. - - -## 2.0.0 - -**Released**: January 12, 2026 - -### New Features - -* Updated Scandit Data Capture SDK to 8.x. -* ID-Bolt SDK changes to align with Scandit Data Capture SDK 8.x. -* Learn-more feature: User customizable content and external link to provide more information about the scanning process. - -### Bug Fixes - -* Improved translation strings with more concise error and success messaging. - - -## 1.19.0 - -**Released**: November 11, 2025 - -### Bug Fixes - -* US RealID check now also checks RealID compliance for VIZ scan, before it would only check barcode. Requires update to ID-Bolt SDK 1.19.0. -* Other minor bug fixes. - - -## 1.18.0 - -**Released**: October 21, 2025 - -### New Features - -* New configurator to be included in the customer dashboard. - - -## 1.17.0 - -**Released**: October 6, 2025 - -### New Features - -* Add option to enforce VIZ being scanned when scanning passports. -* Support for UK Military ID and UAE ESAAD card. -* Support for supplying an external transaction ID to ID-Bolt, for better analytics and tracking. - -### Bug Fixes - -* Wrong help text being shown when scanning on mobile device with low resolution camera. -* Show personal id number instead of document number in result screen, when document number is not available. -* Fix incorrect caching issue during new version deployments of ID-Bolt service. - -## 1.16.0 - -**Released**: September 18, 2025 - -### New Features - -* Update of Scandit Data Capture Engine to 7.6. - -### Bug Fixes - -* Correctly differentiate between "unknown" and "unspecified" gender. -* Fixes case when user could end up with an infinite loading screen. -* Fixes issue with camera switch icon disappearing after changing pages. - -## 1.14.0 - -**Released**: August 11, 2025 - -### New Features - -* Add option to disable closing of ID-Bolt with the browser back button. - -## 1.13.0 - -**Released**: July 21, 2025 - -### New Features - -* Result from ID-Bolt now contains full MRZ and VIZ result sections. -* Update to Scandit Data Capture 7.4.0. - -### Bug Fixes - -* Fixed issue where camera would not be correctly stopped after a scan end. - -## 1.11.0 - -**Released**: July 4, 2025 - -### New Features - -* Issuing Authority exposed in the scan result. - -## 1.10.0 - -**Released**: June 17, 2025 - -### New Features - -* SDC updated to 7.3.0. - -### Bug Fixes - -* "Remote scan session expired" shows an improper error message. -* "ID scanned" image not showing when imaged disabled. -* Fix issues caused with very strict browser data security settings. - -## 1.9.0 - -**Released**: June 10, 2025 - -### New Features - -* CSS customization of buttons, links and titles is now available. - -### Bug Fixes - -* General bug fixes and improvements. - -## 1.8.0 - -**Released**: May 26, 2025 - -### New Features - -* Images in the flow can now be customized. -* Fonts used in the flow can now be customized. -* Reduction of images throughout the flow. -* New “connection status” indicator on the QR page. -* When scanning a rejected document, the flow stays in the scanner screen when using newest SDK. - -### Bug Fixes - -* Fixed an edge case in the SDK that could cause a page navigation in a callback to not execute. -* Document Type not properly extracted for residence permit and health insurance card. - -## 1.6.0 - -**Released**: April 15, 2025 - -### New Features - -* Large assets are now delivered compressed to speed up loading times. -* Comprehensive data analytics collection system. -* Raw MRZ data exposed in result. -* Browser history is reset to the original state when closing ID-Bolt modal. -* Error screen when loading of Scandit SDK fails. -* Ability to keep ID-Bolt “alive” after a successful session to retain camera permission and speed up subsequent sessions. -* Updated Scandit SDK to version 7.2. - -### Bug Fixes - -* Localization string improvements. -* Translations not properly applied in certain cases. - -## 1.4.0 - -**Released**: March 18, 2025 - -### New Features - -* Improved Accessibility functionality. -* Improved handling of connection issues during handover flow. -* Using the browser back button now properly closes ID Bolt. -* ID Bolt now provides a better indication of data transfer state during handover flow. -* Custom data validators can now be asynchronous. - -### Bug Fixes - -* Fixed an issue where Camera permission was asked twice on Firefox Mobile. -* Fixed an error when no license key provided. - -## 1.3.0 - -**Released**: February 18, 2025 - -### New Features - -* Optimized data transfer speeds in hand-over flow. -* Added `personalIdNumber` to result structure. - -### Bug Fixes - -* Fixed an issue where users can get stuck in mobile flow when the welcome screen is disabled. -* Removed non-functional close button in hand-over flow. -* Fixed an issue where mobile flows were reported as desktop in analytics dashboard. -* Disable auto-capitalization of headers. -* Excluded document text override not shown when no documents excluded. - -## 1.2.0 - -**Released**: February 5, 2025 - -### New Features - -* Added support for new document types from WebSDK 7.x. -* Support for 2-letter country codes. -* Added accessibility labels to all elements of ID Bolt service. -* Allow customers to provide their own translations (new languages or different strings). -* Updated WebSDK to latest 7.x. - -### Bug Fixes - -* Fixed vertical scroll bar issue in handover flow result screen. -* Fixed issue with US RealID validation settings. -* Fixed issue where scanner stops responding after scanning ID card/DL/Resident permit with full scanner type in handover flow. - -## 1.1.0 - -**Released**: October 11, 2024 - -### New Features - -* Added support for scanning ICAO Visas. -* Provide more language support out of the box. -* Configurability of colors of text, background and icons. -* Make start guidance and result display optional. -* Attribution page for OSS components. - -### Bug Fixes - -* Fixed issue where welcome screen is still flashed once before proceeding even when disabled. -* Fixed issue where welcome text is wrong when multiple same document types selected. diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/session.md b/versioned_docs/version-8.1.1/hosted/id-bolt/session.md deleted file mode 100644 index 0519ecba..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/session.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/text-overrides.md b/versioned_docs/version-8.1.1/hosted/id-bolt/text-overrides.md deleted file mode 100644 index 84865bcf..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/text-overrides.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -description: "ID Bolt allows you to customize the text displayed in the user interface to better match your application's tone, branding, or to provide more specific instructions to users. " - -sidebar_label: 'Text Overrides' -title: 'Text Overrides' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - customization - - text - - localization ---- - -# Text Overrides - -ID Bolt allows you to customize the text displayed in the user interface to better match your application's tone, branding, or to provide more specific instructions to users. - -## Using Text Overrides - -Text overrides are specified using the `textOverrides` option when creating an ID Bolt session: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - textOverrides: { - "titles.SCANNER_HEADER": "Scan your ID for verification", - "texts.HELP_SUPPORTED_DOCUMENTS_INCLUDE_LIST_BRIEF": "Please use a valid passport or driver's license" - } -}); -``` - -## Available Text Override Keys - -The following text keys can be overridden: - - -| Key | Default | Description | -|-----|---------|-------------| -| `titles.SCANNER_HEADER` | "Scan document" | The header of the scan screen on mobile | -| `titles.LOCAL_SCAN_HEADER` | "Scan document" | The header of the scan screen on desktop | -| `texts.HELP_SUPPORTED_DOCUMENTS_INCLUDE_LIST` | "Please scan a valid document. The following documents are accepted: [list of documents]" | The list of documents that are accepted, as displayed in the help screen | -| `texts.HELP_SUPPORTED_DOCUMENTS_INCLUDE_LIST_BRIEF` | "Please scan a valid document of type [list of documents]" | A brief description of the documents that are accepted, as displayed in the main screen | -| `texts.HELP_SUPPORTED_DOCUMENTS_EXCLUDE_LIST` | "The following documents are not accepted: [list of documents]" | The list of documents that are excluded, as displayed in the help screen. Only shown if there are excluded documents | - -## Examples - -### Customizing for Specific Use Cases - -#### Example: Travel Documentation - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - textOverrides: { - "titles.SCANNER_HEADER": "Scan travel document", - "titles.LOCAL_SCAN_HEADER": "Scan travel document", - "texts.HELP_SUPPORTED_DOCUMENTS_INCLUDE_LIST_BRIEF": "Scan passport or international ID", - } -}); -``` - - -### Combining with Localization - -Text overrides should be adapted depending on the provided `locale` option to provide a fully localized experience: - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // Set the base language - locale: "fr-FR", - - // Override specific text in that language - textOverrides: { - "texts.HELP_SUPPORTED_DOCUMENTS_INCLUDE_LIST_BRIEF": "Veuillez utiliser un passeport ou une carte d'identité valide" - }, - - // other options... -}); -``` \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/hosted/id-bolt/theming.md b/versioned_docs/version-8.1.1/hosted/id-bolt/theming.md deleted file mode 100644 index 62ed13ce..00000000 --- a/versioned_docs/version-8.1.1/hosted/id-bolt/theming.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -description: "ID Bolt allows comprehensive customization of its visual appearance to match your brand identity. Use the `theme` option when creating an ID Bolt session to customize colors, dimensions, and other visual elements. " - -sidebar_label: 'Theming' -title: 'Theming' -displayed_sidebar: boltSidebar -toc_max_heading_level: 4 -framework: bolt -keywords: - - bolt - - theming - - customization ---- - -# Theming - -ID Bolt allows comprehensive customization of its visual appearance to match your brand identity. Use the `theme` option when creating an ID Bolt session to customize colors, dimensions, and other visual elements. - -```ts -const idBoltSession = IdBoltSession.create(ID_BOLT_URL, { - // other options... - theme: { - colors: { - primary: "#0070f3", - background: "#ffffff" - }, - dimensions: { - radiusButton: "8px" - } - } -}); -``` - -## Color Customization - -The `colors` object allows you to define colors for various UI elements: - -| Property | Type | Description | -|----------|------|-------------| -| `primary` | `string` | Primary color used throughout the interface | -| `image` | `string` | Color used for image-related elements | -| `background` | `string` | Main popup background color | -| `backgroundSecondary` | `string` | Secondary background color for surfaces | -| `backgroundInverse` | `string` | Inverse background color | -| `backgroundScannerPlaceholder` | `string` | Background color for scanner placeholder | -| `textPrimary` | `string` | Primary text color | -| `textSecondary` | `string` | Secondary text color | -| `textTertiary` | `string` | Tertiary text color | -| `textInverse` | `string` | Inverse text color | -| `textScannerPlaceholder` | `string` | Text color for scanner placeholder | -| `success` | `string` | Color for success states | -| `error` | `string` | Color for error states | -| `warning` | `string` | Color for warning states | -| `info` | `string` | Color for informational states | -| `buttonBackground` | `string` | Background color for buttons | -| `buttonText` | `string` | Text color for buttons | -| `buttonBorder` | `string` | Border color for buttons | -| `buttonBackgroundDisabled` | `string` | Background color for disabled buttons | -| `buttonBorderDisabled` | `string` | Border color for disabled buttons | -| `buttonTextDisabled` | `string` | Text color for disabled buttons | -| `connectionStatusConnectingBackground` | `string` | Background color for connection status pills in connecting/waiting state | -| `connectionStatusConnectingText` | `string` | Text color for connection status pills in connecting/waiting state | -| `connectionStatusSuccessBackground` | `string` | Background color for connection status pills in success state | -| `connectionStatusSuccessText` | `string` | Text color for connection status pills in success state | -| `connectionStatusErrorBackground` | `string` | Background color for connection status pills in error/failed state | -| `connectionStatusErrorText` | `string` | Text color for connection status pills in error/failed state | -| `headerButtons` | `string` | Color for the header back and close buttons (when not in their white variant) | -| `divider` | `string` | Color for divider lines, such as the one on the QR code page | - -## Dimension Customization - -The `dimensions` object allows you to customize sizes and spacing: - -| Property | Type | Description | -|----------|------|-------------| -| `radiusPopup` | `string` | Border radius for the popup | -| `radiusButton` | `string` | Border radius for buttons | -| `radiusCard` | `string` | Border radius for cards | - -All values are string and must be valid CSS dimension expressions. E.g. "12px". - -## Image Customization - -The `images` object allows you to customize the images used in key screens: - -```ts -const theme = { - images: { - welcome: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...", - flowCompleted: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...", - acceptedId: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA..." - } -}; -``` - -### Image Properties - -| Property | Type | Description | -|----------|------|-------------| -| `welcome` | `string` | Image displayed on the welcome screen, both on Desktop as well as hand-over | -| `flowCompleted` | `string` | Image displayed on the completion screen in hand-over flow | -| `acceptedId` | `string` | Image displayed as a placeholder for an accepted image, when picture is not captured | - -### Image Requirements - -- Format: PNG, JPEG, SVG, or WebP (must be provided as data URLs with appropriate mime types) -- Maximum size: 50KB per image (size of the base64 data URL) -- Data URL format: Must start with one of the following prefixes: - - `data:image/png` - - `data:image/jpeg` - - `data:image/svg+xml` - - `data:image/webp` - -## Font Customization - -The `fonts` object allows you to customize the fonts used in the interface: - -```ts -const theme = { - fonts: { - primary: { - normal: "data:font/woff2;base64,d09GMgABAAAAAAT...", - semibold: "data:font/woff2;base64,d09GMgABAAAAAAU...", - bold: "data:font/woff2;base64,d09GMgABAAAAAAV..." - } - } -}; -``` - -### Font Properties - -| Property | Type | Description | -|----------|------|-------------| -| `primary.normal` | `string` | Regular font weight (400) | -| `primary.semibold` | `string` | Semi-bold font weight (600) | -| `primary.bold` | `string` | Bold font weight (700) | - -### Font Requirements - -- Format: WOFF2, WOFF, TTF, or OTF (must be provided as data URLs) -- Maximum size: 100KB per font file (size of the base64 data url) -- Data URL format: Must start with appropriate mime type prefixes (e.g., `data:font/woff2`, `data:font/woff`) - -## Style Overrides - -The `styleOverrides` object allows you to apply custom CSS to specific UI elements: - -```ts -const theme = { - styleOverrides: { - button: ` - .bolt-button { - display: block; - width: 100%; - padding: 12px 24px; - background-color: #fcb700; - color: #000000; - text-align: center; - font-weight: bold; - font-size: 16px; - line-height: 1.5; - text-decoration: none; - border: none; - cursor: pointer; - box-sizing: border-box; - border-radius: 0; - box-shadow: none; - transition: background-color 0.2s ease-in-out; - } - - .bolt-button:hover, - .bolt-button:focus { - background-color: #e0a800; - outline: none; - } - `, - link: ` - .bolt-link { - text-decoration: none; - border-bottom: 1px dotted currentColor; - } - .bolt-link:hover { - border-bottom: 1px solid currentColor; - } - `, - title: ` - .bolt-title { - text-transform: uppercase; - letter-spacing: 0.05em; - } - ` - } -}; -``` - -### Available Style Override Properties - -| Property | Type | Description | -|----------|------|-------------| -| `button` | `string` | CSS styles for buttons | -| `link` | `string` | CSS styles for links | -| `title` | `string` | CSS styles for titles | - -#### CSS class names - -Use the `.bolt-button`, `.bolt-link` and `.bolt-title` selectors for the styling rule. You can also create additional rules for pseudo-states like `.bolt-button:hover` etc. -When a style override is specified, the element is rendered in its own shadow-DOM, with the provided style sheet attached. - -The element will have many more CSS classes attached, but since it is rendered in a shadow DOM, these don't have an effect, unless you choose to use them in the style-override. - -#### Shadow DOM - -When a style override is specified, the component is rendered in a shadow DOM. This means that none of the default styles of ID-Bolt apply to the component anymore. Therefore, make sure to specify all relevant styles. - -#### Used HTML elements - -Not all buttons use the ` - - - -``` diff --git a/versioned_docs/version-8.1.1/sdks/web/release-notes.md b/versioned_docs/version-8.1.1/sdks/web/release-notes.md deleted file mode 100644 index 47b8305e..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/release-notes.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -description: "Release notes and updates for the Scandit Web SDK." -toc_max_heading_level: 3 -displayed_sidebar: webSidebar -hide_title: true -title: Release Notes -pagination_prev: null -framework: web -keywords: - - web ---- - -## 8.1.1 - -**Released**: February 5, 2026 - -### Performance Improvements - -#### Core - -* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes - -### Bug Fixes - -#### Barcode - -* Fixed an issue where the SparkScanView was not being disposed correctly - -#### Id - -* Removed the Centaurus dependency from the ID Capture package which was accidentally added in 8.1.0 but never actually used - -## 8.1.0 - -**Released**: December 17, 2025 - -### New Features - -#### Barcode - -* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience. -* Added SymbologySettings.ocrFallbackRegex, allowing you to filter or constrain results returned from OCR fallback. -* Extended Aztec codes reader to support scanning mirrored codes. -* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan. -* [SparkScan](/sdks/web/sparkscan/intro.md) now supports Smart Scan Selection. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Users might have to manually switch to a special, more precise scanning mode (Target Mode), which is inefficient. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience. -* Added `ScanditIconType.Delete` and `ScanditIconType.Slash` which can be used in `BarcodeArStatusIconAnnotationAnchor`. - -#### Id - -* Added NationalityISO property that maps results from Nationality field to country ISO code -* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections -* Added rejectionTimeoutSeconds to IdCaptureSettings allowing customers to use timeout other than default (6s). Minimum timeout is 1s. -* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL - -#### Core - -* Added Electronic Product Code (EPC) parser and GS1_DIGITAL_LINK parsers - -### Performance Improvements - -#### Barcode - -* Improved MicroQR detector tolerance to quiet zone violations -* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions) - -#### Id - -* Improved success rate when scanning using the ImageFrameSource or the SingleImageUploader as frame source - -#### Smart Label Capture - -* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture. - -### Behavioral Changes - -#### Barcode - -* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”) - -#### Smart Label Capture - -* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition - -### Bug Fixes - -#### Barcode - -* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance -* Fixed an issue that caused continuous scanning to stop working when rotating the device -* Fixed an issue where FrameData was not usable for tracking modes - -#### Core - -* Fixed a small memory leak that affected fresh install runs only -* Overcome orientation change limitation in iOS PWAs when display mode is fullscreen or standalone - -## 8.0.1 - -**Released**: January 14, 2026 - -### Bug Fixes - -#### Barcode - -* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance - -#### Core - -* Fixed a small memory leak that affected fresh install runs only - -## 8.0.0 - -**Released**: November 4, 2025 - -### New Features - -Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that: - -* Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent; -* Automate the capture of any data format, barcode clustering, task handling or camera settings; -* Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences. - -With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that: - -* Understands not just what is being scanned, but also what you want to scan and why you’re scanning it -* Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity. - -#### Core - -* The `Camera` API has been completely redesigned for this release. See the [API reference](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#camera) for complete details. -* The minimum Chrome version supported is now 85+. -* The `DataCaptureContext.create`, `createWithOptions` and `configure` methods have been removed in favor of `DataCaptureContext.forLicenseKey`. - -#### Barcode - -* Smart Scan Selection is now available in SparkScan for the Web SDK. -* Adapted `SparkScanView` to now be usable as a web component. Also added a `SparkScanReactSample` to demonstrate this usage. -* The following have been added to MatrixScan AR: - * `BarcodeArView.getHighlightForBarcode` - * `BarcodeAirView.getAnnotationForBarcode` - -#### Smart Label Capture - -* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`. - -#### ID - -* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields. -* ID Capture now supports full-frame anonymization. -* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`. -* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states. -* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows: - * CT - Taiwan Residents Mainland Travel Permit - * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao - * CD - Mainland Residents Entry-Exit Permit to and from Taiwan - -### Behavioral Changes - -#### Barcode - -* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`. -* Changed the default highlight brush in SparkScan and Barcode Capture. - -#### Label - -* The `LabelFieldDefinition` API has been updated with the following changes: - * Renamed property: `pattern` → `valueRegex`, `patterns` → `valueRegexes` - * Renamed property: `dataTypePattern` → `anchorRegex`, `dataTypePatterns` → `anchorRegexes` -* Receipt Scanning API has been updated with the following changes: - * `ReceiptScanningResult`: - * Removed properties: `storeNumber`, `storeStreet`, `storeZip`, `storeState`, `storePhone`, `paymentMethod`, and `paymentCurrency`. - * Added property: `storeAddress` - Full address of the store (Street Number, Street, City, State, NPA). - * Renamed property: `paymentSubtotal` → `paymentPreTaxTotal` - Total balance before taxes are applied. - * `ReceiptScanningLineItem`: - * Removed property: `category`. - * Renamed properties: `price` → `unitPrice` (Price for a single unit of the item), `total` → `totalPrice` (Total price for a specific product, quantity × unitPrice). - -#### ID - -* The configuration for the following documents has been changed as detailed below: - * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode. - * US Green Cards are now treated as residence permits. -* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead. -* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`. - -### Bug Fixes - -#### ID - -* Fixed a bug that could get the scanner stuck when scanning a US passport card. -* Fixed an issue where unavailable dates would not be properly set to `null` in an ID scan result. - -### Deprecations - -#### Core - -* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results. - -#### Barcode - -* All previously deprecated APIs have been removed in this release. -* `DataCaptureContext.create`, `createWithOptions` and `configure` have been removed in favor of the `forLicenseKey` method. - - -## 7.6.7 - -Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/web/release-notes) \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx deleted file mode 100644 index d517a134..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -description: "Composite Codes" -sidebar_label: 'Composite Codes' -title: 'Composite Codes' ---- - -import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx'; - - - diff --git a/versioned_docs/version-8.1.1/sdks/web/single-scanning.md b/versioned_docs/version-8.1.1/sdks/web/single-scanning.md deleted file mode 100644 index 10f0b751..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/single-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -description: "import SingleScanning from '../../partials/_single-scanning.mdx'; " - -toc_max_heading_level: 4 -pagination_prev: null -framework: web -keywords: - - web ---- - -# Single Scanning - -import SingleScanning from '../../partials/_single-scanning.mdx'; - - \ No newline at end of file diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md deleted file mode 100644 index 9e40a444..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. " - -sidebar_position: 3 -pagination_next: null -framework: web -keywords: - - web ---- - -# Advanced Configurations - -SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. - -## Advanced Capabilities - -### Trigger Error State - -You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user. You will be able to customize: - -- The text message -- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button - - :::tip - A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned. - ::: - -- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and you can control the color via [SparkScanBarcodeFeedback](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-barcode-feedback.html#sparkscan-barcode-feedback). - -An error example is here reported: - -To emit an error, you have to implement a [`SparkScanFeedbackDelegate`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-feedback-delegate.html#interface-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate) and set it to the `SparkScanView`: - -```js -sparkScanView.feedbackDelegate = sparkScanFeedbackDelegate; -``` - -In the [`SparkScanFeedbackDelegate.getFeedbackForBarcode()`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-feedback-delegate.html#method-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode) you can then return an error or a success feedback: - -```js -const sparkScanFeedbackDelegate = { - feedbackForBarcode: (barcode: Barcode) => { - if (isValidBarcode(barcode)) { - return new SparkScanBarcodeSuccessFeedback(); - } else { - return new SparkScanBarcodeErrorFeedback( - 'This code should not have been scanned', - 60 * 1000, - Color.fromHex('#FF0000'), - new Brush(Color.fromHex('#FF0000'), Color.fromHex('#FF0000'), 1), - ); - } - }, -}; -``` - -You can have different error states triggered by different logic conditions. These errors can show different colors and have different timeouts. For example: - -

- Wrong scan error

This error state for a code that should not have been scanned. -

- -

- Duplicate scan error

This error state for a code that has been scanned more than once. -

- -### Reject Barcodes - -To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [`SparkScanBarcodeErrorFeedback.resumeCapturingDelay`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to 0 allows the user to continue scanning immediately without pausing on rejected codes. - -## UI Customization - -:::tip -Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters. -::: - -import Customization from '../../../partials/advanced/_sparkscan-customization.mdx'; - - - -## Workflow Options - -This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option). - -Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode ([`SparkScanViewSettings.defaultScanningMode`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.DefaultScanningMode)). This combination allows for flexible configurations to suit different scanning needs. - -### Scanning Mode - -The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning. - -| Mode | Description | -| ----------- | --------------------------------------------------- | -| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. | -| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. | - -:::tip -Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time. -::: - -### Scanning Behavior - -The scanning behavior determines how barcodes are scanned - one at a time or continuously. - -| Behavior | Description | -| ------------------- | ---------------------------------------------------------- | -| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. | -| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. | - -:::tip -Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)). -::: - -### Preview Behavior - -The preview behavior determines how the camera preview behaves when the scanner is not actively scanning. - -| Behavior | Description | -| -------------- | -------------------------- | -| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. | -| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. | diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md deleted file mode 100644 index db9b6533..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md +++ /dev/null @@ -1,239 +0,0 @@ ---- -description: "In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are: " - -sidebar_position: 2 -framework: web -keywords: - - web ---- - -# Get Started - -In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are: - -1. Create a new Data Capture Context instance. -2. Configure the Spark Scan Mode. -3. Create the SparkScanView with the desired settings and bind it to the application’s lifecycle. -4. Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs. - -## Prerequisites - -- The latest stable version of [Node.js and npm](https://nodejs.org/en/download/) (required only if including and building the SDK as part of an app, instead of just including it as an external resource from a CDN in HTML). -- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation). -- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project - -:::note -Devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease. -::: - -## Create a New Data Capture Context Instance - -The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction. - -```js -import { DataCaptureContext } from "@scandit/web-datacapture-core"; -import { - barcodeCaptureLoader, - SparkScanSettings, - SparkScan, - SparkScanViewSettings, -} from "@scandit/web-datacapture-barcode"; - -const dataCaptureContext = await DataCaptureContext.forLicenseKey( - "-- ENTER YOUR SCANDIT LICENSE KEY HERE --", - { - libraryLocation: new URL( - "sdc-lib-self-hosted-path", - document.baseURI - ).toString(), - // or use the cdn https://cdn.jsdelivr.net/npm/@scandit/web-datacapture-barcode@latest/sdc-lib/ - moduleLoaders: [barcodeCaptureLoader()], - } -); -``` - -## Configure the SparkScan Mode - -The SparkScan Mode is configured through [`SparkScanSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-settings.html#class-scandit.datacapture.barcode.spark.SparkScanSettings) and allows you to register one or more listeners that are informed whenever a new barcode is scanned. - -For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…). - -```js -const sparkScanSettings = new SparkScanSettings(); -sparkScanSettings.enableSymbologies([Symbology.EAN13UPCA]); -``` - -Next, create a SparkScan instance with the settings initialized in the previous step: - -```js -const sparkScan = SparkScan.forSettings(this.sparkScanSettings); -``` - -## Setup the Spark Scan View - -The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process. - -The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings). - -```js -const sparkScanViewSettings = new SparkScanViewSettings(); -// setup the desired appearance settings by updating the fields in the object above -``` - -See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information. - -By adding a `SparkScanView`, the scanning interface (camera preview and scanning UI elements) will be added automatically to your application. - -Add a `SparkScanView` to your view hierarchy. Construct a new SparkScan view. The `SparkScanView` is automatically added to the provided `parentView`: - -```js -const sparkScanView = SparkScanView.forElement( - document.body, - dataCaptureContext, - sparkScan, - sparkScanViewSettings -); - -// setup any desired view properties by updating the fields in the object above -``` - -Optionally you may set a feedback delegate on the SparkScanView, if you wish to validate barcodes and emit a success or error feedback based on certain conditions: - -```js -sparkScanView.feedbackDelegate = { - getFeedbackForBarcode: (barcode) => { - // Replace the line below with your own validation logic - if (isInvalidBarcode(barcode)) { - // Return an error feedback for invalid barcodes - return new SparkScanBarcodeErrorFeedback( - "Invalid barcode.", - 60_000 // How many ms to wait for scanning to be resumed - ); - } - - // Return a success feedback for valid barcodes - return new SparkScanBarcodeSuccessFeedback(); - }, -}; -``` - -Once your app is ready to mount the SparkScanView, make sure to call [SparkScanView.prepareScanning()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.PrepareScanning): - -```js -async connectedCallback() { - await sparkScanView.prepareScanning(); -} -``` - -Additionally, make sure to call [SparkScanView.stopScanning()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) when your app is unmounting. You have to call this for disposing the [SparkScanView](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView). - -```js -async disconnectedCallback() { - await sparkScanView.stopScanning(); -} -``` - -## Register the Listener - -To keep track of the barcodes that have been scanned, implement the -[SparkScanListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode. - -```js -// Register a listener object to monitor the spark scan session. -const listener = { - didScan: (sparkScan, session, frameData) => { - // Gather the recognized barcode - const barcode = session.newlyRecognizedBarcode; - - if (barcode != null) { - // Handle the barcode - } - }, -}; - -sparkScan.addListener(listener); -``` - -[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved by using the -[SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode) property on the session object. - -## Complete SparkScan example - -```js -import { - SparkScan, - SparkScanBarcodeErrorFeedback, - SparkScanBarcodeSuccessFeedback, - SparkScanSettings, - SparkScanView, - SparkScanViewSettings, - Symbology, -} from "@scandit/web-datacapture-barcode"; -import { DataCaptureContext } from "@scandit/web-datacapture-core"; - -const context = await DataCaptureContext.forLicenseKey( - "-- ENTER YOUR SCANDIT LICENSE KEY HERE --", - { - libraryLocation: "/self-hosted-sdc-lib/", - moduleLoaders: [barcodeCaptureLoader()], - } -); - -const settings = new SparkScanSettings(); -settings.enableSymbologies([ - Symbology.EAN13UPCA, - Symbology.Code128, - Symbology.QR, -]); - -const sparkScan = SparkScan.forSettings(settings); - -sparkScan.addListener({ - didScan: (sparkScan, session) => { - const barcode = session.newlyRecognizedBarcode; - - if (barcode) { - console.log("Scanned", barcode.symbology, barcode.data); - } - }, -}); - -const viewSettings = new SparkScanViewSettings(); - -const view = SparkScanView.forElement( - document.body, - context, - sparkScan, - viewSettings -); - -view.feedbackDelegate = { - getFeedbackForBarcode: (barcode) => { - if (barcode.data === "5901234123457") { - return new SparkScanBarcodeErrorFeedback("Invalid barcode.", 60_000); - } else { - return new SparkScanBarcodeSuccessFeedback(); - } - }, -}; - -async function mount() { - await view.prepareScanning(); -} - -async function unmount() { - await view.stopScanning(); -} - -mount().catch(async (error) => { - console.error(error); - await unmount(); -}); -``` - -A more complete example can be found [here on StackBlitz](https://stackblitz.com/github/Scandit/datacapture-web-samples/tree/master/01_Single_Scanning_Samples/01_Barcode_Scanning_with_Pre-built_UI/ListBuildingSample). - -## Scan Some Barcodes - -Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can -print out. diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md deleted file mode 100644 index a11a6533..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. " - -sidebar_position: 1 -pagination_prev: null -framework: web -keywords: - - web ---- - -# About SparkScan - -SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. - -SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs. - -## UI Overview - -The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience. - -Two main elements compose the UI: - -![SparkScan UI](/img/sparkscan/features_web.png) - -- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc). -- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space. - -There are additional UI elements available for displaying advanced scanning mode, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section. - -## Workflow Description - -When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use. -To start scanning, the user can simply tap on it. - -When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app). - -In the default configuration: -- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away. -- Tapping on the trigger button or the mini preview will restart immediately the scanner. - -Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state. - -If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released. - -

- SparkScan Workflow

List building use case using SparkScan. -

- -The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field. - -But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more. - -## Supported Symbologies - -SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx). - -## AI-Powered Features - -SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide. diff --git a/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx deleted file mode 100644 index 56b87782..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -description: "Symbology Properties" -sidebar_label: 'Symbology Properties' -title: 'Symbology Properties' ---- - -import SymbologyProperties from '../../partials/_symbology-properties.mdx'; - - - diff --git a/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx deleted file mode 100644 index 1ae4f584..00000000 --- a/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -description: "System Requirements" -sidebar_label: 'System Requirements' -title: 'System Requirements' ---- - -import SystemRequirements from '../../partials/_system-requirements.mdx'; - - - diff --git a/versioned_docs/version-8.1.1/symbology-properties.mdx b/versioned_docs/version-8.1.1/symbology-properties.mdx deleted file mode 100644 index 7d5ed633..00000000 --- a/versioned_docs/version-8.1.1/symbology-properties.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: symbology-properties -title: Symbology Properties -sidebar_label: Symbology Properties ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_docs/version-8.1.1/system-requirements.mdx b/versioned_docs/version-8.1.1/system-requirements.mdx deleted file mode 100644 index edbc6b94..00000000 --- a/versioned_docs/version-8.1.1/system-requirements.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: system-requirements -title: System Requirements -sidebar_label: System Requirements ---- - -import {Redirect} from '@docusaurus/router'; - - diff --git a/versioned_sidebars/version-8.1.1-sidebars.json b/versioned_sidebars/version-8.1.1-sidebars.json deleted file mode 100644 index 3f850c04..00000000 --- a/versioned_sidebars/version-8.1.1-sidebars.json +++ /dev/null @@ -1,2467 +0,0 @@ -{ - "sdcSidebar": [ - { - "type": "category", - "label": "Scandit Smart Data Capture", - "items": [ - "core-concepts", - "features-by-framework", - "system-requirements", - { - "type": "category", - "label": "Supported Symbologies and IDs", - "collapsed": false, - "items": [ - "barcode-symbologies", - "symbology-properties", - "extension-codes", - "scanning-composite-codes", - "id-documents" - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": false, - "items": [ - "migrate-7-to-8", - "migrate-6-to-7", - "migrate-5-to-6" - ] - } - ] - } - ], - "expressSidebar": [ - { - "type": "category", - "label": "Scandit Express", - "items": [ - "hosted/express/overview", - { - "type": "category", - "label": "Getting Started", - "items": [ - "hosted/express/getting-started/installation", - "hosted/express/getting-started/rollout" - ] - }, - { - "type": "category", - "label": "Configuring Express", - "items": [ - "hosted/express/configuration/index", - "hosted/express/configuration/express-find", - "hosted/express/configuration/inventory-count", - "hosted/express/configuration/scan-labels", - "hosted/express/configuration/id-check", - "hosted/express/getting-started/safari-extension", - { - "type": "category", - "label": "Device Pairing", - "collapsed": false, - "items": [ - "hosted/express/configuration/device-pairing/device-pairing", - "hosted/express/configuration/device-pairing/bluetooth-pairing", - "hosted/express/configuration/device-pairing/online-connection" - ] - }, - { - "type": "category", - "label": "Custom Data Transfer", - "collapsed": false, - "items": [ - "hosted/express/configuration/custom-data-transfer/overview", - "hosted/express/configuration/custom-data-transfer/input-configuration", - "hosted/express/configuration/custom-data-transfer/output-configuration" - ] - } - ] - }, - { - "type": "category", - "label": "Built-in Workflows", - "items": [ - "hosted/express/workflows/overview", - "hosted/express/workflows/task-management", - "hosted/express/workflows/markdown" - ] - } - ] - } - ], - "boltSidebar": [ - { - "type": "category", - "label": "ID Bolt", - "items": [ - "hosted/id-bolt/overview", - "hosted/id-bolt/getting-started", - { - "type": "category", - "label": "API Reference", - "items": [ - "hosted/id-bolt/api-overview", - "hosted/id-bolt/document-selection", - "hosted/id-bolt/validators", - "hosted/id-bolt/data-handling", - "hosted/id-bolt/callbacks", - "hosted/id-bolt/workflow", - "hosted/id-bolt/theming", - "hosted/id-bolt/text-overrides", - "hosted/id-bolt/advanced" - ] - }, - "hosted/id-bolt/release-notes", - { - "type": "link", - "label": "Try the Demo", - "href": "https://id-travel.demos.scandit.com/" - } - ] - } - ], - "iosSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for iOS", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/ios/core-concepts", - "sdks/ios/features-by-framework", - "sdks/ios/system-requirements" - ] - }, - { - "type": "link", - "label": "FAQs", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/ios/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-ios-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/ios/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/ios/sparkscan/intro", - "sdks/ios/sparkscan/get-started", - "sdks/ios/sparkscan/get-started-with-swift-ui", - "sdks/ios/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/ios/barcode-capture/get-started", - "sdks/ios/barcode-capture/get-started-with-swift-ui" - ] - }, - "sdks/ios/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/ios/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/ios/matrixscan/intro", - "sdks/ios/matrixscan/get-started", - "sdks/ios/matrixscan/get-started-with-swift-ui", - "sdks/ios/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/ios/matrixscan-ar/intro", - "sdks/ios/matrixscan-ar/get-started", - "sdks/ios/matrixscan-ar/get-started-with-swift-ui" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/ios/matrixscan-count/intro", - "sdks/ios/matrixscan-count/get-started", - "sdks/ios/matrixscan-count/get-started-with-swift-ui", - "sdks/ios/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/ios/matrixscan-find/intro", - "sdks/ios/matrixscan-find/get-started", - "sdks/ios/matrixscan-find/get-started-with-swift-ui", - "sdks/ios/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/ios/matrixscan-pick/intro", - "sdks/ios/matrixscan-pick/get-started", - "sdks/ios/matrixscan-pick/get-started-with-swift-ui", - "sdks/ios/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/ios/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/ios/label-capture/intro", - "sdks/ios/label-capture/get-started", - "sdks/ios/label-capture/get-started-with-swift-ui", - "sdks/ios/label-capture/label-definitions", - "sdks/ios/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/ios/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Generator", - "items": [ - "sdks/ios/barcode-generator" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/ios/barcode-selection/intro", - "sdks/ios/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/ios/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/ios/symbology-properties", - "sdks/ios/extension-codes", - "sdks/ios/scanning-composite-codes", - "sdks/ios/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/ios/id-capture/intro", - "sdks/ios/id-capture/get-started", - "sdks/ios/id-capture/supported-documents", - "sdks/ios/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/ios/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/ios/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/ios/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/ios/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/ios/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/ios/migrate-7-to-8", - "sdks/ios/migrate-6-to-7", - "sdks/ios/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/ios/release-notes" - } - ], - "androidSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Android", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/android/core-concepts", - "sdks/android/features-by-framework", - "sdks/android/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/android/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-android-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/android/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/android/sparkscan/intro", - "sdks/android/sparkscan/get-started", - "sdks/android/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/android/barcode-capture/get-started" - ] - }, - "sdks/android/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/android/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/android/matrixscan/intro", - "sdks/android/matrixscan/get-started", - "sdks/android/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/android/matrixscan-ar/intro", - "sdks/android/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/android/matrixscan-count/intro", - "sdks/android/matrixscan-count/get-started", - "sdks/android/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/android/matrixscan-find/intro", - "sdks/android/matrixscan-find/get-started", - "sdks/android/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/android/matrixscan-pick/intro", - "sdks/android/matrixscan-pick/get-started", - "sdks/android/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/android/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/android/label-capture/intro", - "sdks/android/label-capture/get-started", - "sdks/android/label-capture/label-definitions", - "sdks/android/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/android/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Generator", - "items": [ - "sdks/android/barcode-generator" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/android/barcode-selection/intro", - "sdks/android/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/android/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/android/symbology-properties", - "sdks/android/extension-codes", - "sdks/android/scanning-composite-codes", - "sdks/android/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Scanning and Validation", - "collapsed": false, - "items": [ - "sdks/android/id-capture/intro", - "sdks/android/id-capture/get-started", - "sdks/android/id-capture/supported-documents", - "sdks/android/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/android/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/android/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/android/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/android/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/android/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/android/migrate-7-to-8", - "sdks/android/migrate-6-to-7", - "sdks/android/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/android/release-notes" - } - ], - "webSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Web", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/web/core-concepts", - "sdks/web/features-by-framework", - "sdks/web/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/web/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-web-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/web/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/web/sparkscan/intro", - "sdks/web/sparkscan/get-started", - "sdks/web/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/web/barcode-capture/get-started" - ] - }, - "sdks/web/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/web/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/web/matrixscan/intro", - "sdks/web/matrixscan/get-started", - "sdks/web/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/web/matrixscan-ar/intro", - "sdks/web/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/web/matrixscan-find/intro", - "sdks/web/matrixscan-find/get-started", - "sdks/web/matrixscan-find/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/web/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/web/label-capture/intro", - "sdks/web/label-capture/get-started", - "sdks/web/label-capture/label-definitions", - "sdks/web/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/web/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/web/barcode-selection/intro", - "sdks/web/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/web/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/web/symbology-properties", - "sdks/web/extension-codes", - "sdks/web/scanning-composite-codes", - "sdks/web/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/web/id-capture/intro", - "sdks/web/id-capture/get-started", - "sdks/web/id-capture/supported-documents", - "sdks/web/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/web/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/web/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/web/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/web/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/web/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/web/migrate-7-to-8", - "sdks/web/migrate-6-to-7", - "sdks/web/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/web/release-notes" - } - ], - "cordovaSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Cordova", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/cordova/core-concepts", - "sdks/cordova/features-by-framework", - "sdks/cordova/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/cordova/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-cordova-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/cordova/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/cordova/sparkscan/intro", - "sdks/cordova/sparkscan/get-started", - "sdks/cordova/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/cordova/barcode-capture/get-started" - ] - }, - "sdks/cordova/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/cordova/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/cordova/matrixscan/intro", - "sdks/cordova/matrixscan/get-started", - "sdks/cordova/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/cordova/matrixscan-count/intro", - "sdks/cordova/matrixscan-count/get-started", - "sdks/cordova/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/cordova/matrixscan-find/intro", - "sdks/cordova/matrixscan-find/get-started", - "sdks/cordova/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/cordova/matrixscan-pick/intro", - "sdks/cordova/matrixscan-pick/get-started", - "sdks/cordova/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/cordova/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Generator", - "items": [ - "sdks/cordova/barcode-generator" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/cordova/barcode-selection/intro", - "sdks/cordova/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/cordova/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/cordova/symbology-properties", - "sdks/cordova/extension-codes", - "sdks/cordova/scanning-composite-codes", - "sdks/cordova/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/cordova/id-capture/intro", - "sdks/cordova/id-capture/get-started", - "sdks/cordova/id-capture/supported-documents", - "sdks/cordova/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/cordova/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/cordova/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/cordova/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/cordova/migrate-7-to-8", - "sdks/cordova/migrate-6-to-7", - "sdks/cordova/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/cordova/release-notes" - } - ], - "reactnativeSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for React Native", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/react-native/core-concepts", - "sdks/react-native/features-by-framework", - "sdks/react-native/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/react-native/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-react-native-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/react-native/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/react-native/sparkscan/intro", - "sdks/react-native/sparkscan/get-started", - "sdks/react-native/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/react-native/barcode-capture/get-started" - ] - }, - "sdks/react-native/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/react-native/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/react-native/matrixscan/intro", - "sdks/react-native/matrixscan/get-started", - "sdks/react-native/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/react-native/matrixscan-ar/intro", - "sdks/react-native/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/react-native/matrixscan-count/intro", - "sdks/react-native/matrixscan-count/get-started", - "sdks/react-native/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/react-native/matrixscan-find/intro", - "sdks/react-native/matrixscan-find/get-started", - "sdks/react-native/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/react-native/matrixscan-pick/intro", - "sdks/react-native/matrixscan-pick/get-started", - "sdks/react-native/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/react-native/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/react-native/label-capture/intro", - "sdks/react-native/label-capture/get-started", - "sdks/react-native/label-capture/label-definitions", - "sdks/react-native/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/react-native/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Generator", - "items": [ - "sdks/react-native/barcode-generator" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/react-native/barcode-selection/intro", - "sdks/react-native/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/cordova/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/cordova/symbology-properties", - "sdks/cordova/extension-codes", - "sdks/cordova/scanning-composite-codes", - "sdks/react-native/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/react-native/id-capture/intro", - "sdks/react-native/id-capture/get-started", - "sdks/react-native/id-capture/supported-documents", - "sdks/react-native/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/react-native/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/react-native/migrate-7-to-8", - "sdks/react-native/migrate-6-to-7", - "sdks/react-native/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/react-native/release-notes" - } - ], - "flutterSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Flutter", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/flutter/core-concepts", - "sdks/flutter/features-by-framework", - "sdks/flutter/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/flutter/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-flutter-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/flutter/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/flutter/sparkscan/intro", - "sdks/flutter/sparkscan/get-started", - "sdks/flutter/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/flutter/barcode-capture/get-started" - ] - }, - "sdks/flutter/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/flutter/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/flutter/matrixscan/intro", - "sdks/flutter/matrixscan/get-started", - "sdks/flutter/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/flutter/matrixscan-ar/intro", - "sdks/flutter/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/flutter/matrixscan-count/intro", - "sdks/flutter/matrixscan-count/get-started", - "sdks/flutter/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/flutter/matrixscan-find/intro", - "sdks/flutter/matrixscan-find/get-started", - "sdks/flutter/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/flutter/matrixscan-pick/intro", - "sdks/flutter/matrixscan-pick/get-started", - "sdks/flutter/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/flutter/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/flutter/label-capture/intro", - "sdks/flutter/label-capture/get-started", - "sdks/flutter/label-capture/label-definitions", - "sdks/flutter/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/flutter/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/flutter/barcode-selection/intro", - "sdks/flutter/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/react-native/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/react-native/symbology-properties", - "sdks/react-native/extension-codes", - "sdks/react-native/scanning-composite-codes", - "sdks/flutter/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/flutter/id-capture/intro", - "sdks/flutter/id-capture/get-started", - "sdks/flutter/id-capture/supported-documents", - "sdks/flutter/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/flutter/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/flutter/migrate-7-to-8", - "sdks/flutter/migrate-6-to-7", - "sdks/flutter/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/flutter/release-notes" - } - ], - "capacitorSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Capacitor", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/capacitor/core-concepts", - "sdks/capacitor/features-by-framework", - "sdks/capacitor/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/capacitor/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-capacitor-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/capacitor/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/capacitor/sparkscan/intro", - "sdks/capacitor/sparkscan/get-started", - "sdks/capacitor/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/capacitor/barcode-capture/get-started" - ] - }, - "sdks/capacitor/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/capacitor/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/capacitor/matrixscan/intro", - "sdks/capacitor/matrixscan/get-started", - "sdks/capacitor/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/capacitor/matrixscan-count/intro", - "sdks/capacitor/matrixscan-count/get-started", - "sdks/capacitor/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/capacitor/matrixscan-find/intro", - "sdks/capacitor/matrixscan-find/get-started", - "sdks/capacitor/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/capacitor/matrixscan-pick/intro", - "sdks/capacitor/matrixscan-pick/get-started", - "sdks/capacitor/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/capacitor/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/capacitor/label-capture/intro", - "sdks/capacitor/label-capture/get-started", - "sdks/capacitor/label-capture/label-definitions", - "sdks/capacitor/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/capacitor/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Generator", - "items": [ - "sdks/capacitor/barcode-generator" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/capacitor/barcode-selection/intro", - "sdks/capacitor/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/flutter/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/flutter/symbology-properties", - "sdks/flutter/extension-codes", - "sdks/flutter/scanning-composite-codes", - "sdks/capacitor/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/capacitor/id-capture/intro", - "sdks/capacitor/id-capture/get-started", - "sdks/capacitor/id-capture/supported-documents", - "sdks/capacitor/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/capacitor/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/capacitor/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/capacitor/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/capacitor/migrate-7-to-8", - "sdks/capacitor/migrate-6-to-7", - "sdks/capacitor/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/capacitor/release-notes" - } - ], - "titaniumSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for Titanium", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/titanium/core-concepts", - "sdks/titanium/features-by-framework", - "sdks/titanium/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/titanium/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-titanium-samples" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/titanium/barcode-capture/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/titanium/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/titanium/symbology-properties", - "sdks/titanium/extension-codes", - "sdks/titanium/scanning-composite-codes", - "sdks/titanium/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/titanium/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/titanium/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/titanium/migrate-7-to-8", - "sdks/titanium/migrate-6-to-7", - "sdks/titanium/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/titanium/release-notes" - } - ], - "netIosSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for .NET iOS", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/net/ios/core-concepts", - "sdks/net/ios/features-by-framework", - "sdks/net/ios/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/net/ios/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-dotnet-samples/tree/master" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/net/ios/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/net/ios/sparkscan/intro", - "sdks/net/ios/sparkscan/get-started", - "sdks/net/ios/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/net/ios/barcode-capture/get-started" - ] - }, - "sdks/net/ios/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/net/ios/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/net/ios/matrixscan/intro", - "sdks/net/ios/matrixscan/get-started", - "sdks/net/ios/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/net/ios/matrixscan-ar/intro", - "sdks/net/ios/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/net/ios/matrixscan-count/intro", - "sdks/net/ios/matrixscan-count/get-started", - "sdks/net/ios/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/net/ios/matrixscan-find/intro", - "sdks/net/ios/matrixscan-find/get-started", - "sdks/net/ios/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/net/ios/matrixscan-pick/intro", - "sdks/net/ios/matrixscan-pick/get-started", - "sdks/net/ios/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/net/ios/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/net/ios/barcode-selection/intro", - "sdks/net/ios/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/net/ios/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/net/ios/symbology-properties", - "sdks/net/ios/extension-codes", - "sdks/net/ios/scanning-composite-codes", - "sdks/net/ios/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/net/ios/id-capture/intro", - "sdks/net/ios/id-capture/get-started", - "sdks/net/ios/id-capture/supported-documents", - "sdks/net/ios/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/net/ios/migrate-7-to-8", - "sdks/net/ios/migrate-6-to-7", - "sdks/net/ios/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/net/ios/release-notes" - } - ], - "netAndroidSidebar": [ - { - "type": "category", - "label": "Data Capture SDK for .NET Android", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Data Capture Basics", - "collapsed": true, - "items": [ - "sdks/net/android/core-concepts", - "sdks/net/android/features-by-framework", - "sdks/net/android/system-requirements" - ] - }, - { - "type": "link", - "label": "Frequently Asked Questions", - "href": "https://support.scandit.com/hc/en-us" - }, - "sdks/net/android/add-sdk", - { - "type": "link", - "label": "Samples", - "href": "https://github.com/Scandit/datacapture-dotnet-samples/tree/master" - } - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - { - "type": "category", - "label": "Single Scanning", - "link": { - "type": "doc", - "id": "sdks/net/android/single-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "SparkScan", - "items": [ - "sdks/net/android/sparkscan/intro", - "sdks/net/android/sparkscan/get-started", - "sdks/net/android/sparkscan/advanced" - ] - }, - { - "type": "category", - "label": "Barcode Capture API", - "items": [ - "sdks/net/android/barcode-capture/get-started" - ] - }, - "sdks/net/android/ai-powered-barcode-scanning" - ] - }, - { - "type": "category", - "label": "Batch Scanning", - "link": { - "type": "doc", - "id": "sdks/net/android/batch-scanning" - }, - "collapsed": true, - "items": [ - { - "type": "category", - "label": "MatrixScan Batch", - "items": [ - "sdks/net/android/matrixscan/intro", - "sdks/net/android/matrixscan/get-started", - "sdks/net/android/matrixscan/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan AR", - "items": [ - "sdks/net/android/matrixscan-ar/intro", - "sdks/net/android/matrixscan-ar/get-started" - ] - }, - { - "type": "category", - "label": "MatrixScan Count", - "items": [ - "sdks/net/android/matrixscan-count/intro", - "sdks/net/android/matrixscan-count/get-started", - "sdks/net/android/matrixscan-count/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Find", - "items": [ - "sdks/net/android/matrixscan-find/intro", - "sdks/net/android/matrixscan-find/get-started", - "sdks/net/android/matrixscan-find/advanced" - ] - }, - { - "type": "category", - "label": "MatrixScan Pick", - "items": [ - "sdks/net/android/matrixscan-pick/intro", - "sdks/net/android/matrixscan-pick/get-started", - "sdks/net/android/matrixscan-pick/advanced" - ] - } - ] - }, - { - "type": "category", - "label": "Label Scanning", - "link": { - "type": "doc", - "id": "sdks/net/android/label-scanning" - }, - "collapsed": true, - "items": [ - "sdks/net/android/label-capture/intro", - "sdks/net/android/label-capture/get-started", - "sdks/net/android/label-capture/label-definitions", - "sdks/net/android/label-capture/advanced" - ] - }, - { - "type": "category", - "label": "Additional Functionalities", - "collapsed": true, - "items": [ - { - "type": "category", - "label": "Parser", - "items": [ - "sdks/net/android/parser/get-started" - ] - }, - { - "type": "category", - "label": "Barcode Selection", - "items": [ - "sdks/net/android/barcode-selection/intro", - "sdks/net/android/barcode-selection/get-started" - ] - } - ] - }, - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/net/android/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/net/android/symbology-properties", - "sdks/net/android/extension-codes", - "sdks/net/android/scanning-composite-codes", - "sdks/net/android/barcode-capture/configure-barcode-symbologies" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "ID Capture and Validation", - "collapsed": false, - "items": [ - "sdks/net/android/id-capture/intro", - "sdks/net/android/id-capture/get-started", - "sdks/net/android/id-capture/supported-documents", - "sdks/net/android/id-capture/advanced", - { - "type": "link", - "label": "ID Bolt Documentation", - "href": "https://docs.scandit.com/hosted/id-bolt/overview/" - } - ] - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "link", - "label": "ScanditCaptureCore", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api.html" - }, - { - "type": "link", - "label": "ScanditBarcodeCapture", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api.html" - }, - { - "type": "link", - "label": "ScanditIdCapture", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api.html" - }, - { - "type": "link", - "label": "ScanditLabelCapture", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api.html" - }, - { - "type": "link", - "label": "ScanditParser", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/api.html" - }, - { - "type": "link", - "label": "Index", - "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/genindex.html" - } - ] - }, - { - "type": "category", - "label": "Migration Guides", - "collapsed": true, - "items": [ - "sdks/net/android/migrate-7-to-8", - "sdks/net/android/migrate-6-to-7", - "sdks/net/android/migrate-5-to-6" - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/net/android/release-notes" - } - ], - "linuxSidebar": [ - { - "type": "category", - "label": "Scandit SDK for C / Linux", - "collapsed": false, - "items": [ - "sdks/linux/overview", - "sdks/linux/add-sdk", - "sdks/linux/samples" - ] - }, - { - "type": "category", - "label": "Barcode Scanning", - "collapsed": false, - "items": [ - "sdks/linux/barcode-capture/configure-with-json", - { - "type": "category", - "label": "Barcode Symbologies", - "link": { - "type": "doc", - "id": "sdks/linux/barcode-symbologies" - }, - "collapsed": true, - "items": [ - "sdks/linux/symbology-properties", - "sdks/linux/extension-codes", - "sdks/linux/scanning-composite-codes", - "sdks/linux/barcode-capture/configure-barcode-symbologies", - "sdks/linux/barcode-capture/add-on-codes", - "sdks/linux/barcode-capture/composite-codes" - ] - }, - { - "type": "link", - "label": "Scandit Express Documentation", - "href": "https://docs.scandit.com/hosted/express/overview/" - } - ] - }, - { - "type": "category", - "label": "Barcode Generation", - "collapsed": false, - "items": [ - "sdks/linux/barcode-generator" - ] - }, - { - "type": "category", - "label": "Reference", - "items": [ - { - "type": "link", - "label": "Data Structures", - "href": "https://docs.scandit.com/stable/c_api/annotated.html" - }, - { - "type": "link", - "label": "Data Fields", - "href": "https://docs.scandit.com/stable/c_api/functions.html" - }, - { - "type": "link", - "label": "Files", - "href": "https://docs.scandit.com/stable/c_api/files.html" - } - ] - }, - { - "type": "doc", - "label": "Release Notes", - "id": "sdks/linux/release-notes" - } - ] -} diff --git a/versions.json b/versions.json index 02f8a5d3..0a5d389b 100644 --- a/versions.json +++ b/versions.json @@ -1,5 +1,4 @@ [ - "8.1.1", "7.6.7", "6.28.7" ]