Skip to main content

SDK Initialization | Cordova Document Scanner

License Key#

In order to run the Scanbot SDK functionality within your production app, you have to purchase and use a valid Scanbot SDK license.

Each license key is valid only for a given app bundle identifier. You will be unable to use any of the SDK features if the license key is corrupted, expired or invalid in any other way.

App Identifier#

Every app has a unique identifier (sometimes also known as "bundle identifier" or "application ID"). Your license will be bound to this identifier. To request a trial license or purchase a production license you have to provide us the bundle identifier of your app.

In a Cordova-based project this ID can typically be found in the config.xml file:

<?xml version='1.0' encoding='utf-8'?><widget id="my.awesome.app.id" ...>

Get a Trial License#

The Scanbot SDK will run without a license for one minute per session! To get an unrestricted, "no-strings-attached" 30-day trial license, please submit the Trial License Form on our website.

Please kindly note that a trial license can only be used in a development and staging environment. You are not allowed to publish your app to the App Store, Play Store or any 3rd party Android App Store with a trial license.

Purchase a Production License#

To get pricing information and purchase a production license for the Scanbot SDK please request a quote.

Initialize#

The Scanbot SDK must be properly initialized before calling any API methods or launching UI screens. Make sure to call the initialization after the deviceready Cordova event has been fired. In an Ionic based project use the platform.ready() promise event.

private SDK = ScanbotSdk.promisify();
platform.ready().then(() => {    initScanbotSdk();});
async initScanbotSdk(){    const config: ScanbotSDKConfiguration = {        loggingEnabled: true,        licenseKey: '',        // see further config parameters    };    try {        const result = await this.SDK.initializeSdk(config);        console.log(result);    } catch (e) {        console.error(e);    }}

It's recommended to implement the SDK initialization in a single place of your app. However, the SDK can be re-initialized multiple times during the app's runtime (e.g. in order to update the license key).

Config Parameters#

  • loggingEnabled: Optional boolean flag to enable logging. See the "Logging" section below.
  • licenseKey: Your license key for the Scanbot SDK. See the "License Key" section below.
  • storageImageQuality: Optional image quality value. It defines the quality factor of JPEG images. The value must be between 1 and 100, where 100 means maximum quality and largest file size. The recommended default value is 80 which is a good compromise between image file size and document legibility.
  • storageImageFormat: Optional image format, either 'JPG' or 'PNG'. The recommended default value is 'JPG'. Please note that 'PNG' will result in larger image files! Also, the storageImageQuality value does not apply for 'PNG'.
  • storageBaseDirectory: Optional directory as file URI to override the default storage base directory of the Scanbot SDK. Refer to the section "Storage" for more details.
  • documentDetectorMode: Optional mode for document detection.
    • 'ML_BASED' is the recommended mode, based on Machine Learning. Requires iOS 11.2+.
    • 'EDGE_BASED' legacy mode, based on classic Computer Vision algorithms.
  • fileEncryptionPassword: Optional file encryption password. Refer to the section "Storage Encryption" for more details.
  • fileEncryptionMode: Optional file encryption mode, 'AES128' or 'AES256'.

Logging#

When initializing the Scanbot SDK you can enable logging of the SDK. By default logging is disabled.

config.loggingEnabled = true;

On Android logs are printed into LogCat. The easiest way to check the log outputs on Android is to use the Android Studio or the Android Debug Bridge (adb) CLI. (e.g. $ adb logcat)

On iOS all logs are printed to the console. Please use Xcode to check the log outputs.

Please note: While it may be useful for development, consider switching logging OFF in production builds for security and performance reasons!

config.loggingEnabled = !environment.production;

Check License Status#

Use the API method getLicenseInfo() to check the current state of the license. The SDK must be initialized.

const result = await this.SDK.getLicenseInfo();if (result.info.isLicenseValid) {  // OK, we have a valid (trial) license and can now call other Scanbot SDK methods.  // E.g. launch the Document Scanner} else {  alert('Scanbot SDK license is not valid!');}

๐Ÿ‘‰ Please refer to the detailed section License Check in Production Apps to learn more about the license check and handling in production apps.

Next Steps#

It's recommended to get a trial license key or a full production license to continue with the next steps.