Skip to main content

Cordova SDK

Build hybrid mobile applications using Apache Cordova and the Aila SDK. The SDK works with both iOS and Android platforms.

Installation​

Install the plugin using the Cordova CLI:

cordova plugin add cordova-plugin-aila-sdk

Or using npm:

npm install cordova-plugin-aila-sdk

Quick Start​

Import and initialize the SDK in your Cordova app:

// Access the plugin
const AilaSDK = cordova.plugins.AilaCordovaPlugin;

// Get constants for configuration
const constants = cordova.plugins.AilaSDKConstants;

// Initialize SDK
AilaSDK.init({
multiScanMode: constants.multiScanMode.AilaMultiScanModeOn,
duplicateFilter: constants.duplicateFilter.AilaDuplicateFilterOff,
beepMode: constants.beepMode.AilaBeepModeOff,
id1CardDetectionMode: constants.id1CardDetectionMode.AilaID1CardDetectionModeOn
}).then(() => {
console.log('SDK initialized successfully');

// Read license after successful initialization
return AilaSDK.readLicense('your-license-key-here');
}).then(() => {
console.log('License loaded successfully');
}).catch((error) => {
console.error('Initialization failed:', error);
});
tip

Initialize the SDK when your app starts, typically in the deviceready event handler.

Basic Usage​

Here's a complete example with scanning functionality:

document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady() {
const AilaSDK = cordova.plugins.AilaCordovaPlugin;
const constants = cordova.plugins.AilaSDKConstants;

// Initialize SDK
AilaSDK.init({
multiScanMode: constants.multiScanMode.AilaMultiScanModeOn,
duplicateFilter: constants.duplicateFilter.AilaDuplicateFilterOff,
beepMode: constants.beepMode.AilaBeepModeOff
}).then(() => {
return AilaSDK.readLicense('your-license-key-here');
}).then(() => {
console.log('SDK ready to scan');
});

// Listen for scan events
window.addEventListener('rawScanData', (event) => {
console.log('Scan Type:', event.scanType);
console.log('Scanned Data:', event.scanText);

// Process the scanned data
handleScanResult(event.scanText);

// Reset for next scan in multi-scan mode
AilaSDK.resetScan();
});

// Start scanning button
document.getElementById('startBtn').addEventListener('click', () => {
AilaSDK.scanStart().then(() => {
console.log('Scanning started');
});
});

// Stop scanning button
document.getElementById('stopBtn').addEventListener('click', () => {
AilaSDK.scanStop().then(() => {
console.log('Scanning stopped');
});
});
}

function handleScanResult(data) {
// Your business logic here
console.log('Processing scan:', data);
}

MRZ Scanning Example​

To enable MRZ (Machine Readable Zone) scanning with detection feedback:

const AilaSDK = cordova.plugins.AilaCordovaPlugin;
const constants = cordova.plugins.AilaSDKConstants;

// Configure for MRZ scanning
AilaSDK.init({
mrzMode: constants.mrzMode.AilaMRZModeOn,
mrzDetectionMode: constants.mrzDetectionMode.AilaMRZDetectionModeOn,
beepMode: constants.beepMode.AilaBeepModeOff
}).then(() => {
return AilaSDK.readLicense('your-license-key-here');
});

// Show MRZ scanning guides
AilaSDK.displayMRZGuides(true);

// Listen for scan events
window.addEventListener('rawScanData', (event) => {
if (event.scanType === 'MRZ') {
console.log('MRZ Data:', event.scanText);
// Parse MRZ JSON data
const mrzData = JSON.parse(event.scanText);
console.log('Passport Number:', mrzData.documentNumber);
console.log('Name:', mrzData.givenNames, mrzData.surname);
}
});

// Start scanning
AilaSDK.scanStart();

ID-1 Card Capture Example​

Capture images of ID-1 cards (credit card size) using the ID Tray:

const AilaSDK = cordova.plugins.AilaCordovaPlugin;
const constants = cordova.plugins.AilaSDKConstants;

// Enable ID-1 card detection
AilaSDK.setConfig({
id1CardDetectionMode: constants.id1CardDetectionMode.AilaID1CardDetectionModeOn
});

// Listen for image capture results
window.addEventListener('imageCaptured', (event) => {
if (event.success) {
console.log('Card image captured');
// event.image contains base64-encoded image
displayImage(event.image);
} else {
console.error('Capture failed:', event.error);
}
});

// Trigger card capture
document.getElementById('captureBtn').addEventListener('click', () => {
AilaSDK.captureImage().then(() => {
console.log('Capture initiated');
});
});

function displayImage(base64Image) {
const img = document.createElement('img');
img.src = 'data:image/jpeg;base64,' + base64Image;
document.getElementById('imageContainer').appendChild(img);
}

Next Steps​