Initially, you'll see this instruction screen (unless this is turned off), guiding the user on best practices for good selfie capture, this will be followed by the selfie capture screen prompting the user to present their face and a review screen:
To turn off the instruction screen, add the hide-instructions attribute to the component
If the capture-id attribute is used, you will be presented with additional screens for document capture (front, back (optional by adding hide-back-of-id attribute), review):
Capture front of document only
<!-- Example: Capture front of document only -->
<document-capture-screens hide-back-of-id></document-capture-screens>
<!-- Example: Capture selfie and front of document only -->
<smart-camera-web capture-id hide-back-of-id></smart-camera-web>
Handle events
Handle the smart-camera-web.publish event:
When the user approves the captured image, a smart-camera-web.publish event is dispatched. The event returns a CustomEvent payload in e.detail.
Here's a script example to handle the event and send data to a backend endpoint:
To receive the images after they have been captured, you can listen to the custom event selfie-capture-screens.publish. The data posted to this event has the structure:
{
"detail": {
"images": [{ "image": "base64 image", "image_type_id": "" }],
"meta": {
"version": "version of the library in use"
}
}
}
Handling the publish event:
document
.querySelector("selfie-capture-screens")
.addEventListener("selfie-capture-screens.publish", function (event) {
console.log(event.detail);
});
Handling the cancel event
document
.querySelector("selfie-capture-screens")
.addEventListener("selfie-capture-screens.cancelled", function (event) {
console.log(event.detail);
});
Handling the back event
document
.querySelector("selfie-capture-screens")
.addEventListener("selfie-capture-screens.back", function (event) {
console.log(event.detail);
});
Document image
Capture events emit document-capture-screens.publish, providing captured images and metadata:
document
.querySelector("document-capture-screens")
.addEventListener("document-capture-screens.publish", function (event) {
console.log(event.detail);
});
Handling the cancel event
document
.querySelector("document-capture-screens")
.addEventListener("document-capture-screens.cancelled", function (event) {
console.log(event.detail);
});
Handling the back event
document
.querySelector("document-capture-screens")
.addEventListener("document-capture-screens.back", function (event) {
console.log(event.detail);
});
Compatibility
SmartCameraWeb is compatible with most JavaScript frameworks and libraries. For integration with ReactJS, refer to this tutorial due to React-WebComponents compatibility issues.
Support
Tested on the latest versions of Chrome, Edge, Firefox, and Safari. If compatibility issues arise on certain browsers, please notify us.