| 
<!DOCTYPE html><html lang="pt-BR">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Leitura de QR Code</title>
 <!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"> -->
 <link rel="stylesheet" href="bootstrap.min.css">
 <!-- <script src="https://unpkg.com/html5-qrcode/html5-qrcode.min.js"></script> -->
 <script src="html5-qrcode.min.js"></script>
 <script src="https://kit.fontawesome.com/781b92b6d9.js" crossorigin="anonymous"></script>
 </head>
 <body>
 <div class="container mt-5">
 <h1 class="text-center">Bem Vindo!</h1>
 <div class="text-center mt-4">
 <a href="https://www.youtube.com/@marcelojtelles" target="_blank" class="btn btn-outline-primary btn-lg me-2">
 <i class="fa-brands fa-youtube"></i> YouTube
 </a>
 <a href="https://www.linkedin.com/in/marcelojtelles" target="_blank" class="btn btn-outline-primary btn-lg me-2">
 <i class="fa-brands fa-linkedin"></i> LinkedIn
 </a>
 <a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7098667513055461376" target="_blank" class="btn btn-outline-primary btn-lg me-2">
 <i class="fa-solid fa-envelope"></i> Newsletter LinkedIn
 </a>
 <a href="https://amzn.to/35VIp8l" target="_blank" class="btn btn-outline-primary btn-lg">
 <i class="fa-solid fa-book"></i> Meu Livro na Amazon
 </a>
 <a href="https://www.udemy.com/course/java-fundamentos-e-praticas/?referralCode=FB18C92B767E1B567D62" target="_blank" class="btn btn-outline-primary btn-lg">
 <i class="fa-solid fa-laptop-code"></i> Treinamento Java
 </a>
 </div>
 
 <hr class="my-5">
 
 <h2 class="text-center">Leitura de QR Code</h2>
 <p class="text-center">
 Utilize o botão abaixo para iniciar a leitura de QR codes usando a câmera do seu dispositivo.
 </p>
 <div class="text-center">
 <button id="startButton" class="btn btn-primary btn-lg">Iniciar Leitura de QR Code</button>
 </div>
 <div class="d-flex justify-content-center mt-4">
 <div id="qr-reader"  lass="border" style="width: 500px; height: 400px;" class="mt-3"></div>
 </div>
 
 <h2 class="text-center">Últimos qrcode lidos</h2>
 <div id="qr-result" class="text-center mt-3"></div>
 
 <hr class="my-5">
 
 <h2 class="text-center">Como Funciona a Leitura de QR Code</h2>
 <p class="text-justify">
 A leitura de QR codes é uma tecnologia que permite a decodificação de informações armazenadas em um padrão gráfico de duas dimensões, o QR code. Utilizando a câmera do dispositivo, é possível capturar a imagem do QR code e, através de algoritmos específicos, decodificar a informação que pode conter links, textos, informações de contato e muito mais.
 </p>
 <p class="text-justify">
 Nesta página, usamos a biblioteca <a href="https://github.com/mebjas/html5-qrcode" target="_blank">html5-qrcode</a> para realizar a leitura dos QR codes. Ao clicar no botão "Iniciar Leitura de QR Code", a câmera do dispositivo é ativada e o vídeo é exibido na área acima. Quando um QR code é detectado, seu conteúdo é mostrado abaixo do vídeo.
 </p>
 </div>
 
 <!-- Rodapé -->
 <footer class="bg-light text-center text-lg-start">
 <div class="container p-4">
 <div class="row">
 <div class="col-lg-6 col-md-12 mb-4 mb-md-0">
 <h5 class="text-uppercase">Sobre QR Codes</h5>
 <p>
 QR Codes são códigos de barras bidimensionais que podem armazenar informações como URLs, texto, números de telefone e mais. Eles são facilmente escaneados com a câmera do seu celular.
 </p>
 </div>
 <div class="col-lg-3 col-md-6 mb-4 mb-md-0">
 <h5 class="text-uppercase">Redes Sociais</h5>
 <ul class="list-unstyled">
 <li>
 <a href="https://www.youtube.com/@marcelojtelles" target="_blank" class="text-dark">
 <i class="fab fa-youtube"></i> YouTube
 </a>
 </li>
 <li>
 <a href="https://www.linkedin.com/in/marcelojtelles" target="_blank" class="text-dark">
 <i class="fab fa-linkedin"></i> LinkedIn
 </a>
 </li>
 <li>
 <a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7098667513055461376" target="_blank" class="text-dark">
 <i class="fas fa-newspaper"></i> Newsletter LinkedIn
 </a>
 </li>
 <li>
 <a href="https://amzn.to/35VIp8l" target="_blank" class="text-dark">
 <i class="fas fa-book"></i> Meu Livro na Amazon
 </a>
 </li>
 </ul>
 </div>
 <div class="col-lg-3 col-md-6 mb-4 mb-md-0">
 <h5 class="text-uppercase">Links Úteis</h5>
 <ul class="list-unstyled">
 <li>
 <a href="https://www.udemy.com/course/java-fundamentos-e-praticas/?referralCode=FB18C92B767E1B567D62" target="_blank" class="text-dark">Treinamento Java na Udemy</a>
 </li>
 <li>
 <a href="https://macelot.github.io/marcelot.github.io/index.html" target="_blank" class="text-dark">Site</a>
 </li>
 </ul>
 </div>
 </div>
 </div>
 <div class="text-center p-3 bg-dark text-white">
 © 2024 Meu Site. Todos os direitos reservados.
 </div>
 </footer>
 
 <script>
 document.addEventListener('DOMContentLoaded', () => {
 const startButton = document.getElementById('startButton');
 const qrResult = document.getElementById('qr-result');
 const qrReader = new Html5Qrcode("qr-reader");
 startButton.addEventListener('click', () => {
 Html5Qrcode.getCameras().then(devices => {
 if (devices && devices.length) {
 let cameraId = devices[0].id;
 qrReader.start(
 cameraId,
 {
 fps: 10,    // Frame rate
 qrbox: { width: 250, height: 250 }  // Scanning box size
 },
 (decodedText, decodedResult) => {
 qrReader.stop().then(() => {
 sendQrCodeToServer(decodedText);
 }).catch(err => console.error('Failed to stop scanning.', err));
 },
 errorMessage => {
 //console.warn(`QR error = ${errorMessage}`);
 })
 .catch(err => {
 console.error(`Unable to start scanning, error: ${err}`);
 });
 }
 }).catch(err => {
 console.error(`Error getting cameras: ${err}`);
 });
 });
 
 function sendQrCodeToServer(code) {
 fetch('qr_handler.php', {
 method: 'POST',
 headers: {
 'Content-Type': 'application/json'
 },
 body: JSON.stringify({ qrcode: code })
 })
 .then(response => response.json())
 .then(data => {
 qrResult.innerText = "";
 data['qrcode'].forEach((element, index) => {
 const div = document.createElement('div');
 if(index==0){
 div.style.fontWeight = 'bold';
 div.textContent = `Seu QrCode ${index + 1}: ${element}`;
 qrResult.appendChild(div);
 }else{
 div.textContent = `QrCode ${index + 1}: ${element}`;
 qrResult.appendChild(div);
 }
 });
 })
 .catch((error) => {
 console.error('Error:', error);
 });
 }
 });
 </script>
 </body>
 </html>
 
 |