IdCardScanService Class
Provides information about the ID card scanner device, allows to scan the document and listen to scan button pressed events.
Constructor
IdCardScanService
()
Item Index
Methods
Methods
acquireAsync
-
idCardScanSettings
-
scanSettings
Requests images' acquisition from ID card scanner with passed settings in silent mode.
Parameters:
-
idCardScanSettings
IdCardScanSettingsThe settings for ID card post-scan processing.
-
scanSettings
ScanSettings[scanSettings=undefined] The settings for image acquiring.
Returns:
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
Requests images' acquisition from ID card scanner with preview of scan settings dialog.
Parameters:
-
idCardScanSettings
IdCardScanSettingsThe settings for ID card post-scan processing.
Returns:
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
Adds listeners to AvailabilityChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of boolean type and does not return a value.
Returns:
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
Adds listeners to ScanButtonPressed event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has no parameters and does not return a value.
Returns:
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
Adds listeners to SelectedScannerChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of type Device and does not return a value.
Returns:
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
Allows to determine whether device is available.
Returns:
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.
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
Removes listeners from AvailabilityChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of boolean type and does not return a value.
Returns:
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
Removes listeners from ScanButtonPressed event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has no parameters and does not return a value.
Returns:
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
Removes listeners from SelectedScannerChanged event.
Parameters:
-
handler
FunctionA function that handles the event. The function that has a single parameter of type Device and does not return a value.
Returns:
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
Allows to show device settings in Connector app.
Returns:
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);