Ever wanted to scan qr and barcodes using your mobile but didn't want to write a full blown native app just to get camera access?
Use your mobile browser! Html5 now supports it.
Open the demo in your mobile browser - chrome, safari, firefox all worked for me!
Honestly, I couldn't believe how easy it was! Check out the code:
<script> import { Html5Qrcode } from 'html5-qrcode' import { onMount } from 'svelte' let scanning = false let html5Qrcode onMount(init) function init() { html5Qrcode = new Html5Qrcode('reader') } function start() { html5Qrcode.start( { facingMode: 'environment' }, { fps: 10, qrbox: { width: 250, height: 250 }, }, onScanSuccess, onScanFailure ) scanning = true } async function stop() { await html5Qrcode.stop() scanning = false } function onScanSuccess(decodedText, decodedResult) { alert(`Code matched = ${decodedText}`) console.log(decodedResult) } function onScanFailure(error) { console.warn(`Code scan error = ${error}`) } </script> <style> main { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; } reader { width: 100%; min-height: 500px; background-color: black; } </style> <main> <reader id="reader"/> {#if scanning} <button on:click={stop}>stop</button> {:else} <button on:click={start}>start</button> {/if} </main>
Special thanks to the author of the wonderful Html5Qrcode lib.
Honorable mention to quagga. No longer actively maintained, but there is an active fork quagga2.
asaf! thanks for reading🥰
[update]: the demo is not a pwa, but the scanner lib and camera access will work if you decide to make a pwa for your own project.
Top comments (4)
Thanks for saving my day, superhero!
Thanks for the thanks! :D
Some comments may only be visible to logged-in visitors. Sign in to view all comments.