Scanner
Lire un code à la caméra : le détecteur natif du navigateur, ou ZXing en WebAssembly. Composant BarcodeScanner.
Sur le terrain
Avant tout composant, trois choses qu’un écran tenu en main demande : savoir si le serveur est joignable, garder l’écran allumé, et des touches qui agissent. Le bandeau de connexion n’apparaît que hors ligne : coupez le réseau (mode avion, ou l’onglet Réseau des outils de développement en « Offline ») pour le voir.
Le réseau
navigator.onLine dit si une interface est active, pas si le serveur répond : useOnline le confirme par un HEAD de /version.json, et réessaie toutes les 30 s hors ligne.
L’écran
Le verrou d’écran est relâché par le navigateur quand l’onglet passe en arrière-plan ; useWakeLock le redemande au retour. Un choix du moment, rien n’est gardé.
Les touches
useHotkeys : touches de fonction, raccourcis, une lettre seule. Une lettre tapée dans le champ reste une lettre ; F1 et Échap passent quoi qu’il arrive.
- F1
- F2
- v
- ctrl+s
- Escape
appuyez sur une touche
Ouvrez cette page sur un téléphone et visez les codes de la page « QR et codes-barres » affichée sur un ordinateur — ou n’importe quel code-barres d’un emballage. La caméra demande HTTPS : le lab déployé l’est. Chaque lecture est normalisée : la même valeur quel que soit le moteur, et pour un GS1-128 ses identifiants (AI) découpés. ␝ marque un séparateur GS1.
Réglages
Codes lus
Aucun code lu pour l’instant.
La liste des scans
Un champ, et sous lui ce qu’il a lu : le dernier code en tête, un code déjà lu compte un de plus sur sa ligne (surlignée un instant) au lieu de s’ajouter. Balayez une ligne vers la gauche pour la retirer, ou utilisez ses boutons. Le nom derrière un code vient de la page (resolve) : la liste ne connaît aucun article.
Rien de scanné pour l’instant.
max={ 20 } : la vingt-et-unième ligne est refusée (bip d’erreur). Un code inconnu s’affiche tel quel, en mono.