API Docs for: 1.0.0
Show:

IdCardScanService Class

Provides information about the ID card scanner device, allows to scan the document and listen to scan button pressed events.

Constructor

IdCardScanService

()

Methods

acquireAsync

(
  • idCardScanSettings
  • scanSettings
)
Promise | IdCardScanResult async

Requests images' acquisition from ID card scanner with passed settings in silent mode.

Parameters:

  • idCardScanSettings IdCardScanSettings

    The settings for ID card post-scan processing.

  • scanSettings ScanSettings

    [scanSettings=undefined] The settings for image acquiring.

Returns:

Promise | IdCardScanResult:

A promise of the result that returns a IdCardScanResult in case of success.

Example:

// Creates shortcuts to avoid using long references to FailureReason, IdCardScanSettings, FaceCropSettings, BarcodeParseSettings, ScanSettings and ColorMode below in code.
var FailureReason = buildingLink.connector.services.FailureReason;
var IdCardScanSettings = buildingLink.connector.services.idCardScanning.IdCardScanSettings;
var FaceCropSettings = buildingLink.connector.services.idCardScanning.FaceCropSettings;
var BarcodeParseSettings = buildingLink.connector.services.idCardScanning.BarcodeParseSettings;
var ScanSettings = buildingLink.connector.services.scanning.ScanSettings;
var ColorMode = buildingLink.connector.services.ColorMode;
var ScanStatus = buildingLink.connector.services.scanning.ScanStatus;
var FaceCropStatus = buildingLink.connector.services.idCardScanning.FaceCropStatus;

var connector = new buildingLink.Connector();

// Defines failure handler for operation with device.
var failureScanHandler = function(failureReason) {
    var failureMessage;
    switch (failureReason) {
        case FailureReason.ServiceNotAvailable:
            failureMessage = "No attached ID card scanners.";
            break;
        case FailureReason.InternalError:
            failureMessage = "Internal error occured.";
            break;
        default:
            throw new Error("failureReason");
    }
    alert(failureMessage);
};

// Prepares canvas with id "canvasId" to display image.
var createImageForCanvas = function(canvasId) {
    var canvas = document.getElementById(canvasId);
    var image = new Image();
    image.onload = function () {
        canvas.width = image.width;
        canvas.height = image.height;
        var context = canvas.getContext("2d");
        context.drawImage(image, 0, 0, canvas.width, canvas.height);
    };
    image.onerror = function (stuff) {
        addInfoMessage("Img Onerror:", stuff);
    };

    return image;
};

// Draws serialized image.
function drawImage(image, imageData) {
    image.src = "data:image/png;base64," + imageData;
};

// It is supposed that HTML contains the following elements: <canvas id="cnvFrontImage"></canvas>, <canvas id="cnvBackImage"></canvas>, <canvas id="cnvCropedFace"></canvas>
var idCardFrontImage = createImageForCanvas("cnvFrontImage");
var idCardBackImage = createImageForCanvas("cnvBackImage");
var idCardFaceImage = createImageForCanvas("cnvCropedFace");

// Defines scanning settings.
var idCardScanSettings = new IdCardScanSettings();
idCardScanSettings.shouldCropFace = true;
idCardScanSettings.faceCropSettings = new FaceCropSettings(90, 120);
idCardScanSettings.shouldReadBarcode = true;
idCardScanSettings.barcodeParseSettings = new BarcodeParseSettings(true, true, true);
var scanSettings = new ScanSettings(300, ColorMode.Grayscale, true);

var connectionSuccededCallback = function() {
    // Scans ID card.
    connector.idCardScanService.acquireAsync(idCardScanSettings, scanSettings).then(function (idCardScanResult) {
        var alertMessage;
        if (idCardScanResult.scanResult.isSuccessful) {
            alertMessage = "ID card scan status: " + ScanStatus[idCardScanResult.scanResult.status];
            drawImage(idCardFrontImage, idCardScanResult.scanResult.frontScan.imageBase64);
            drawImage(idCardBackImage, idCardScanResult.scanResult.backScan.imageBase64);

            if (idCardScanResult.faceCropResult) {
                alertMessage += "\n" + "ID card face cropping status: " + FaceCropStatus[idCardScanResult.faceCropResult.status];
                if (idCardScanResult.faceCropResult.isSuccessful) {
                    drawImage(idCardFaceImage, idCardScanResult.faceCropResult.image.imageBase64);
                }
            }

            if (idCardScanResult.barcodeReadResult && idCardScanResult.barcodeReadResult.isSuccessful) {
                alertMessage += "\n" + "ID card barcode text: " + idCardScanResult.barcodeReadResult.barcodeText;
            }
        } else {
            alertMessage = "Failed to scan ID card.";
        }

        alert(alertMessage);
    }, failureScanHandler);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

acquireWithPreviewAsync

(
  • idCardScanSettings
)
Promise | IdCardScanResult async

Requests images' acquisition from ID card scanner with preview of scan settings dialog.

Parameters:

Returns:

Promise | IdCardScanResult:

A promise of the result that returns a IdCardScanResult in case of success.

Example:

// Creates shortcuts to avoid using long references to FailureReason, IdCardScanSettings, FaceCropSettings, BarcodeParseSettings, ScanSettings and ColorMode below in code.
var FailureReason = buildingLink.connector.services.FailureReason;
var IdCardScanSettings = buildingLink.connector.services.idCardScanning.IdCardScanSettings;
var FaceCropSettings = buildingLink.connector.services.idCardScanning.FaceCropSettings;
var BarcodeParseSettings = buildingLink.connector.services.idCardScanning.BarcodeParseSettings;
var ColorMode = buildingLink.connector.services.ColorMode;
var ScanStatus = buildingLink.connector.services.scanning.ScanStatus;
var FaceCropStatus = buildingLink.connector.services.idCardScanning.FaceCropStatus;

var connector = new buildingLink.Connector();

// Defines failure handler for operation with device.
var failureScanHandler = function(failureReason) {
    var failureMessage;
    switch (failureReason) {
        case FailureReason.ServiceNotAvailable:
            failureMessage = "No attached ID card scanners.";
            break;
        case FailureReason.InternalError:
            failureMessage = "Internal error occured.";
            break;
        default:
            throw new Error("failureReason");
    }
    alert(failureMessage);
};

// Prepares canvas with id "canvasId" to display image.
var createImageForCanvas = function(canvasId) {
    var canvas = document.getElementById(canvasId);
    var image = new Image();
    image.onload = function () {
        canvas.width = image.width;
        canvas.height = image.height;
        var context = canvas.getContext("2d");
        context.drawImage(image, 0, 0, canvas.width, canvas.height);
    };
    image.onerror = function (stuff) {
        addInfoMessage("Img Onerror:", stuff);
    };

    return image;
};

// Draws serialized image.
function drawImage(image, imageData) {
    image.src = "data:image/png;base64," + imageData;
};

// It is supposed that HTML contains the following elements: <canvas id="cnvFrontImage"></canvas>, <canvas id="cnvBackImage"></canvas>, <canvas id="cnvCropedFace"></canvas>
var idCardFrontImage = createImageForCanvas("cnvFrontImage");
var idCardBackImage = createImageForCanvas("cnvBackImage");
var idCardFaceImage = createImageForCanvas("cnvCropedFace");

// Defines scanning settings.
var idCardScanSettings = new IdCardScanSettings();
idCardScanSettings.shouldCropFace = true;
idCardScanSettings.faceCropSettings = new FaceCropSettings(90, 120);
idCardScanSettings.shouldReadBarcode = true;
idCardScanSettings.barcodeParseSettings = new BarcodeParseSettings(true, true, true);

var connectionSuccededCallback = function() {
    // Scans ID card with preview.
    connector.idCardScanService.acquireWithPreviewAsync(idCardScanSettings).then(function (idCardScanResult) {
        var alertMessage;
        if (idCardScanResult.scanResult.isSuccessful) {
            alertMessage = "ID card scan status: " + ScanStatus[idCardScanResult.scanResult.status];
            drawImage(idCardFrontImage, idCardScanResult.scanResult.frontScan.imageBase64);
            drawImage(idCardBackImage, idCardScanResult.scanResult.backScan.imageBase64);

            if (idCardScanResult.faceCropResult) {
                alertMessage += "\n" + "ID card face cropping status: " + FaceCropStatus[idCardScanResult.faceCropResult.status];
                if (idCardScanResult.faceCropResult.isSuccessful) {
                    drawImage(idCardFaceImage, idCardScanResult.faceCropResult.image.imageBase64);
                }
            }

            if (idCardScanResult.barcodeReadResult && idCardScanResult.barcodeReadResult.isSuccessful) {
                alertMessage += "\n" + "ID card barcode text: " + idCardScanResult.barcodeReadResult.barcodeText;
            }
        } else {
            alertMessage = "Failed to scan ID card.";
        }

        alert(alertMessage);
    }, failureScanHandler);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

addAvailabilityChangedListener

(
  • handler
)
Void

Inherited from DeviceService:

Adds listeners to AvailabilityChanged event.

Parameters:

  • handler Function

    A function that handles the event. The function that has a single parameter of boolean type and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles AvailabilityChanged event.
var onAvailabilityChanged = function(isAvailable) {
    alert("Service availability changed: " + isAvailable);
};

var connectionSuccededCallback = function() {
    // Adds listener to AvailabilityChanged event for any service: connector.barcodeScanService.addAvailabilityChangedListener(), connector.fingerprintReaderService.addAvailabilityChangedListener().
    connector.idCardScanService.addAvailabilityChangedListener(onAvailabilityChanged);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

addScanButtonPressedListener

(
  • handler
)
Void

Adds listeners to ScanButtonPressed event.

Parameters:

  • handler Function

    A function that handles the event. The function that has no parameters and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles ScanButtonPressed event.
var onScanButtonPressed = function() {
    alert("Scan button pressed.");
};

var connectionSuccededCallback = function() {
    // Adds listener to ScanButtonPressed event.
    connector.idCardScanService.addScanButtonPressedListener(onScanButtonPressed);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

addSelectedScannerChangedListener

(
  • handler
)
Void

Adds listeners to SelectedScannerChanged event.

Parameters:

  • handler Function

    A function that handles the event. The function that has a single parameter of type Device and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles SelectedScannerChanged event.
var onSelectedScannerChanged = function(idCardScanner) {
    var alertMessage;
    if (idCardScanner) {
        alertMessage = "Selected scanner changed. New scanner: " + idCardScanner.modelName;
    } else {
        alertMessage = "Selected scanner changed.";
    }
    alert(alertMessage);
};

var connectionSuccededCallback = function() {
    // Adds listener to SelectedScannerChanged event.
    connector.idCardScanService.addSelectedScannerChangedListener(onSelectedScannerChanged);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

getIsAvailableAsync

() Promise | Boolean async

Inherited from DeviceService:

Allows to determine whether device is available.

Returns:

Promise | Boolean:

A promise of the result that returns true if device is available or false otherwise in case of success.

Example:

var connector = new buildingLink.Connector();

var connectionSuccededCallback = function() {
    // Gets whether device service is available or no. This method is common for all services and can be used like: connector.autoDialerService.getIsAvailableAsync(), connector.fingerprintReaderService.getIsAvailableAsync(), etc.
    connector.webCameraService.getIsAvailableAsync().then(function (isAvailable) {
        if (isAvailable) {
            alert("Service is available.");
        } else {
            alert("Service is not available.");
        }
    });
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

getSelectedScannerAsync

() Promise | Device async

Gets selected ID card scanner device.

Returns:

Promise | Device:

A promise of the result that returns a device in case of success.

Example:

// Creates a shortcut to avoid using long references to FailureReason below in code.
var FailureReason = buildingLink.connector.services.FailureReason;

var connector = new buildingLink.Connector();

// Defines failure handler for operation with device.
var failureGetSelectedScannerHandler = function(failureReason) {
    var failureMessage;
    switch (failureReason) {
        case FailureReason.ServiceNotAvailable:
            failureMessage = "No attached ID card scanners.";
            break;
        case FailureReason.InternalError:
            failureMessage = "Internal error occured.";
            break;
        default:
            throw new Error("failureReason");
    }
    alert(failureMessage);
};

var connectionSuccededCallback = function() {
    // Gets selected ID card scanner device.
    connector.idCardScanService.getSelectedScannerAsync().then(function (idCardScanner) {
        alert("Scanner name: " + idCardScanner.name + "\n" + "Scanner model name: " + idCardScanner.modelName); // Shows ID card scanner name and model.
    }, failureGetSelectedScannerHandler);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

removeAvailabilityChangedListener

(
  • handler
)
Void

Inherited from DeviceService:

Removes listeners from AvailabilityChanged event.

Parameters:

  • handler Function

    A function that handles the event. The function that has a single parameter of boolean type and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles AvailabilityChanged event.
var onAvailabilityChanged = function(isAvailable) {
    alert("Service availability changed: " + isAvailable);
};

var connectionSuccededCallback = function() {
    // Adds listener to AvailabilityChanged event for any service: connector.signaturePadService.addAvailabilityChangedListener(), connector.autoDialerService.addAvailabilityChangedListener().
    connector.idCardScanService.addAvailabilityChangedListener(onAvailabilityChanged);

    // Removes AvailabilityChanged listener in 5 seconds for any service: connector.signaturePadService.removeAvailabilityChangedListener(), connector.autoDialerService.removeAvailabilityChangedListener().
    setTimeout(function (){
        connector.idCardScanService.removeAvailabilityChangedListener(onAvailabilityChanged);
        alert("AvailabilityChanged listener."); // Observe that notifications will be stopped after this alert.
    }, 5000);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

removeScanButtonPressedListener

(
  • handler
)
Void

Removes listeners from ScanButtonPressed event.

Parameters:

  • handler Function

    A function that handles the event. The function that has no parameters and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles ScanButtonPressed event.
var onScanButtonPressed = function() {
    alert("Scan button pressed.");
};

var connectionSuccededCallback = function() {
    // Adds listeners to ScanButtonPressed event.
    connector.idCardScanService.addScanButtonPressedListener(onScanButtonPressed);

    // Removes ScanButtonPressed listener in 5 seconds.
    setTimeout(function (){
        connector.idCardScanService.removeScanButtonPressedListener(onScanButtonPressed);
    }, 5000);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

removeSelectedScannerChangedListener

(
  • handler
)
Void

Removes listeners from SelectedScannerChanged event.

Parameters:

  • handler Function

    A function that handles the event. The function that has a single parameter of type Device and does not return a value.

Returns:

Void:

Example:

var connector = new buildingLink.Connector();

// Handles SelectedScannerChanged event.
var onSelectedScannerChanged = function(idCardScanner) {
    alert("Selected scanner changed.");
};

var connectionSuccededCallback = function() {
    // Adds listeners to SelectedScannerChanged event.
    connector.idCardScanService.addSelectedScannerChangedListener(onSelectedScannerChanged);

    // Removes SelectedScannerChanged listener in 5 seconds.
    setTimeout(function (){
        connector.idCardScanService.removeSelectedScannerChangedListener(onSelectedScannerChanged);
    }, 5000);
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);

showSettingsAsync

() Promise | Void async

Inherited from DeviceService:

Allows to show device settings in Connector app.

Returns:

Promise | Void:

A promise of the result.

Example:

var connector = new buildingLink.Connector();

var connectionSuccededCallback = function() {
    // Shows device settings for selected service. This method is common for all services and can be used: connector.idCardScanService.showSettingsAsync(), connector.barcodeScanService.showSettingsAsync(), etc.
    connector.printService.showSettingsAsync();
};

var connectionClosedCallback = function(connectionError) {
    alert("Connection failed."); // Shows connection failure message.
};

connector.activate(connectionSuccededCallback, connectionClosedCallback);