URL: https://linuxfr.org/forums/programmationweb/posts/probleme-etrange-instascan-js Title: Problème étrange (instascan - JS) Authors: ptitcois Date: 2017-10-27T12:06:06+02:00 License: CC by-sa Tags: Score: 1 Bonjour, je souhaite faire une petite application web pour tablette (iOS 11 et Android). Cette application doit utiliser un scanner de QR code (instascan: https://github.com/schmich/instascan). La démo (https://schmich.github.io/instascan/) fonctionne avec mes 3 terminaux (PC, Android et iOS). Mon application doit se faire via un Point d'accès Wifi local (déconnecté de l'Internet). Donc j'essaye de bidouiller la démo: - Je copie le HTML de la page - Je télécharge les fichiers javascript, css et png (en suivant les liens de la démo). - Dans la page Web, je change les liens des scripts, feuilles de styles et icône pour les mettre en relatif (js/*, css/*, et img/). Et la patatra ! Ca fonctionne pour le PC (la camera est affiché et les codes sont scannés). Toutes les requetes sont bien en local (aucune vers l’extérieur). Mais pour les tablettes aucune ne fonctionne en local, ni Android ni iOS. Aucune camera n'est détecté et **aucune autorisation n'est demandée** (pour le PC l'autorisation est demandée à chaque fois). Donc pour le même code (à l'exception de l'emplacement des ressources), ça fonctionne sur tablette sur le web mais pas en local. Avez vous une idée du problème ? Merci d'avance Voila le code html: > \ \ \Instascan – Demo \ \ \ \ \ \ \ \
\ \
\ \
\
\ \ \ et le code JS (js/app.js): var app = new Vue({ el: '#app', data: { scanner: null, activeCameraId: null, cameras: [], scans: [] }, mounted: function () { var self = this; self.scanner = new Instascan.Scanner({ video: document.getElementById('preview'), scanPeriod: 5 }); self.scanner.addListener('scan', function (content, image) { self.scans.unshift({ date: +(Date.now()), content: content }); }); Instascan.Camera.getCameras().then(function (cameras) { self.cameras = cameras; if (cameras.length > 0) { self.activeCameraId = cameras[0].id; self.scanner.start(cameras[0]); } else { console.error('No cameras found.'); } }).catch(function (e) { console.error(e); }); }, methods: { formatName: function (name) { return name || '(unknown)'; }, selectCamera: function (camera) { this.activeCameraId = camera.id; this.scanner.start(camera); } } });