<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/assets/css/bulma.min.css"> <script src="/assets/js/html5-qrcode.min.js"></script> <title>Falcon Handset UI</title> </head> <body> <h1>Scanner de códigos de barras</h1> <div id="read-result"></div> <div style="display: flex; justify-content: center;"> <div id="my-qr-reader" style="width:500px;"></div> </div> <script> function domReady(fn) { if (document.readyState === "complete" || document.readyState === "interactive") { setTimeout(fn, 1); } else { document.addEventListener("DOMContentLoaded", fn); } } domReady(function () { var myqr = document.getElementById('read-result') var lastResult, countResults = 0; function checkText(decodeText) { const startsWith = ['940', '945']; if (!startsWith.includes(decodeText.substring(0, 3))) { return false; } if (decodeText.length !== 10) { return false; } return true; } function onScanSuccess(decodeText, decodeResult) { if (decodeText !== lastResult) { if (!checkText(decodeText)) { alert("El código de barras leído no es valido"); return } ++countResults; lastResult = decodeText; fetch('/barcode/' + decodeText) .then(response => { if (!response.ok) { throw new Error(`Respuesta no exitosa ${response.status}`); } return response.json(); }) .then(data => { console.log('data:', data); // Reemplaza por la forma en que deseas usar los datos }) .catch(error => { console.error('barcode error:', error); }); alert("codigo de barras: " + decodeText, decodeResult); myqr.innerHTML = ` ${countResults} : ${decodeText} `; } } var htmlscanner = new Html5QrcodeScanner( "my-qr-reader", { fps: 10, qrbox: 250 } ) htmlscanner.render(onScanSuccess); }) </script> </body> </html>