Как декодировать Qr / штрих-код непрерывно, используя zxing- cpp -emscripten - PullRequest
2 голосов
/ 28 января 2020

В настоящее время я работаю над проектами клиента, для которых требуется сканер QR / штрих-кода. Я нашел zxing- cpp -emscripten очень полезным и в соответствии с моим требованием. но одна проблема, с которой я сталкиваюсь, это сканирование только по функции щелчка, где я хочу, чтобы он сканировал непрерывно (рекурсивно для каждых 5 секунд). не нажимая на это. Вот учебник , где я нашел это.

Я пытался перезагрузить кнопку с помощью onclick каждые пять секунд. но иногда это застревает.

var btnautoclick = document.getElementById('go');
setInterval(function () { btnautoclick.click(); }, 5000);

Пожалуйста, кто-нибудь может подсказать мне, как я могу придумать это.

Примечание: я пытался вставить Js скрипку но он вообще не работает.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <h1>Pure JS Barcode Reader</h1>
  <div>Barcode result: <span id="dbr"></span></div>
  <div class="select">
    <label for="videoSource">Video source: </label><select id="videoSource"></select>
  </div>
  <button id="go">Read Barcode</button>
  <div>
    <video muted autoplay id="video" playsinline="true"></video>
    <canvas id="pcCanvas" width="640" height="480" style="display: none; float: bottom;"></canvas>
    <canvas id="mobileCanvas" width="240" height="320" style="display: none; float: bottom;"></canvas>
  </div>
<script async src="https://raw.githubusercontent.com/yushulx/zxing-cpp-emscripten/master/examples/js/zxing.js"></script>

1 Ответ

1 голос
/ 28 января 2020

вызовите функцию scanBarcode () вне кнопки при нажатии, она будет срабатывать при каждой загрузке страницы.

измените это значение на

// add button event
buttonGo.onclick = function () {
  if (isPC) {
    canvas.style.display = 'none';
  } else {
    mobileCanvas.style.display = 'none';
  }

  isPaused = false;
  scanBarcode();
  buttonGo.disabled = true;
};

это

// add button event
buttonGo.onclick = function () {
  if (isPC) {
    canvas.style.display = 'none';
  } else {
    mobileCanvas.style.display = 'none';
  }

  isPaused = false;
  buttonGo.disabled = true;
};

 scanBarcode();

, если вы хотите сканировать каждые пять секунд, затем вам нужно установить временной интервал

setInterval(function () {
 scanBarcode();
}, 5000);

Надеюсь, этот ответ будет вам полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...