Внедрение штриховых кодов сканирования

Я делаю онлайн-приложение для сканирования только с HTML5 и JavaScript, используя Quagga.js.

Мне нужно, чтобы веб-камера работала для поиска штрих-кодов и импортированных quagga.js:

На веб-странице quagga вы найдете метод Quagga.init. инициализировать вид веб-камеры. Я ввел в теги скрипта этот код:

Quagga.init({
    inputStream : {
      name : "Live",
      type : "LiveStream"
    },
    decoder : {
      readers : ["code_128_reader"]
    }
  }, function() {
      console.log("Initialization finished. Ready to start");
      Quagga.start();
  });

Но ничего не случилось. Что мне нужно сделать, чтобы эта веб-камера работала? Какие-либо другие мнения, чтобы создать веб-приложение для сканирования штрих-кодов?

Спасибо за ответ!

5 ответов

Включают <div id="interactive" class="viewport"></div> в вашу разметку.

Это вопрос нескольких месяцев, но ответ Юджина не полный. Для того, чтобы заставить QuaggaJS работать, мне также пришлось добавить видео тег:

<div id="interactive" class="viewport">
    <video autoplay="true" preload="auto"></video>
</div>

Вы проверили свою консоль?

Использование "Livestream" (Доступ к камере) требует наличия SSL-сертифицированного веб-сайта.
Это означает дополнительные "s" в https://

Подробнее об этом можно прочитать здесь: https://support.google.com/adwords/answer/2580401?hl=sv

Вы также должны знать, что вы можете получить бесплатный сертификат SSL, но у вас должен быть доступ к вашему серверу. Большинство услуг хостинга могут помочь вам в этом.

Добавить в HTML

<div id="barcode-scanner" class="size"> </div>  

Добавить в JavaScript

 Quagga.init({           
        inputStream : {
            name : "Live",
            type : "LiveStream",
            target: document.querySelector('#barcode-scanner'), 
             constraints: {
                width: 520,
                height: 400,                  
                facingMode: "user"  //"environment" for back camera, "user" front camera
                }               
        },                         
        decoder : {
            readers : ["code_128_reader","code_39_reader"]
        }

    }, function(err) {
        if (err) {
            esto.error = err;
            console.log(err);
                return
        }

        Quagga.start();

        Quagga.onDetected(function(result) {                              
                var last_code = result.codeResult.code;                   
                    console.log("last_code "); 
             });
    });

У меня работает в Vue.

Добавьте элемент div в свою разметку следующим образом:

Затем включите цель в ваш поток ввода следующим образом: target: document.querySelector('#barcode_canvas')

          Quagga.init({
              inputStream : {
                name : 'Live',
                type : 'LiveStream',
                target: document.querySelector('#barcode_canvas')
              },
              decoder : {
                readers : ['ean_reader']
              }
            }, function(err) {
                if (err) {
                    console.log(err);
                    return
                }
                console.log('Initialization finished. Ready to start');
                Quagga.start();                     
            }); 
Другие вопросы по тегам