this is the javascript for the scan qr code:
var camera = 'rear';//$parameters.Camera == 'back'? 'back' : 'front';
var addDrawsight = $parameters.DrawSight;
ZXing.TemplateBuilder.buildInterface(addDrawsight, document.getElementById($parameters.Canvas_WidgetId));
codeReader = new ZXing.BrowserMultiFormatReader();
/*
document.getElementById('close-button').addEventListener('click', function() {
codeReader.reset();
document.getElementById('plugin-overlay').style.display = 'none';
document.getElementById('video').pause();
$parameters.ErrorMessage = "Failure during scan. Scan was cancelled";
$parameters.Success = false;
}, true);
*/
var menuBackHandler = function() {
// $parameters.ErrorMessage = "Failure during scan. Scan was cancelled";
// $parameters.Success = true;
$parameters.IsBack = true;
history.back();
};
$public.Navigation.registerBackNavigationHandler(menuBackHandler);
var selectedDeviceId = null;
if(codeReader !== null){
if(!codeReader.canEnumerateDevices){
var divOverlay = document.getElementById('plugin-overlay');
var video = document.getElementById('video');
if (divOverlay !== null && video !== null) {
video.parentNode.removeChild(video);
divOverlay.parentNode.removeChild(divOverlay);
}
var input = document.createElement("input");
input.id = 'image-input'
input.type = "file";
input.accept = "image/* capture='camera'";
input.style.display = 'none';
document.body.appendChild(input);
var outImg = document.createElement("img");
outImg.id = 'outImage';
//outImg.style.display = 'none';
outImg.style.width = '320';
outImg.style.height = '320';
var cont = document.getElementById('reactContainer');
cont.appendChild(outImg);
input.click();
input.addEventListener("change", function (evt) {
var tgt = evt.target || window.event.srcElement,
files = tgt.files;
// FileReader support
if (FileReader && files && files.length) {
var fr = new FileReader();
fr.onload = function () {
var outImg = document.getElementById('outImage');
outImg.src = fr.result;
codeReader.decodeFromImageElement('outImage')
.then(function (result) {
$parameters.Value = result.text;
$parameters.Success = true;
$resolve();
})
.catch(function (err) {
$parameters.ErrorMessage = "Could not find a barcode. Please try with a different image";
.finally( function (){
var input = document.getElementById('image-input');
if (input !== null && outImage !== null) {
outImg.parentNode.removeChild(outImage);
input.parentNode.removeChild(input);
});
fr.readAsDataURL(files[0]);
return;
codeReader.getVideoInputDevices()
.then(function(videoInputDevices) {
var availableDevices = videoInputDevices.length;
if (availableDevices === 0) {
$parameters.ErrorMessage = "There are no available cameras. Verify your devices or permissions";
else if (availableDevices > 1){
for(var i=0; i
console.log("videoInput" + videoInputDevices[i].label);
$parameters.VideoInput += "-" + videoInputDevices[i].label;
if((videoInputDevices[i].label.toLowerCase()).includes(camera)) {
selectedDeviceId = videoInputDevices[i].deviceId;
break;
if(selectedDeviceId === null) {
console.log("videoInput2" + videoInputDevices[availableDevices-1].label);
selectedDeviceId = videoInputDevices[availableDevices-1].deviceId;
else {
console.log("videoInput3" + videoInputDevices[0].label);
selectedDeviceId = videoInputDevices[0].deviceId;
codeReader.decodeFromInputVideoDevice(selectedDeviceId, 'video')
$parameters.ErrorMessage = "Scan was cancelled";
.catch(function(err) {
$parameters.ErrorMessage = "Failure during scan.";
It seems like you have provided a JavaScript code snippet that handles QR code scanning using the ZXing library. However, I'm not sure what specific question or issue you are facing with this code. Could you please clarify your question or describe the problem you are encountering? That way, I can provide you with a more targeted answer or solution.