Чтение штрих-кода с помощью JavaScript - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть сканер штрих-кода, считывающий штрих-коды, конечно же, в поля ввода.На данный момент я могу прочитать штрих-код, но он возвращает каждую цифру отдельно.Мне нужно это как целая строка.Я разбил свой череп об этом.

Например, я прочитал штрих-код бутылки с водой, поле ввода правильно улавливает номер (то есть 688267022760).Когда я регистрирую его в консоли, я получаю независимые экземпляры для каждой цифры.

enter image description here

Мой шаблон (VueJS) запускает событие сканера на входе.Что я не совсем уверен, если это правильное событие.Я также попробовал keydown и keyup.Не совсем уверен, какой рекомендуемый приемник событий для сканера.Во всяком случае, это то, что у меня есть в моем шаблоне:

<input id="packageInput" type="text" @input="onBarcodeScanned" />

И в моем сценарии:

onBarcodeScanned(barcode) {
  let numbers = barcode.data; //data is the object property I need
  console.log(numbers); //this shows me values I need
  let newarr = []; //creating an emprty array where I assume I need to push data to

  // looping through the data and pushing it to the new array, which does not do what I want but it was my logic
  for (var i = 0; i < numbers; i++) {
    newarr.push(numbers);
  }
},

Желаемый эффект будет получить эти независимые значения в массиве, а затем объединить какстрока.

PS

Чтение свойства штрих-кода возвращает серию объектов с множеством обработчиков для нескольких функций.Интересное свойство data.Ниже приведен пример объектов со штрих-кодом enter image description here

Как это сделать?Я в тупике

PPS Я понимаю, что сам сканер поставляется с серией инструкций для его программирования.Некоторые из которых я не очень хорошо понимаю.Возможно, есть тип штрих-кода, который возвращает в виде строки вместо каждой цифры в качестве объекта?Я использую сканер Wasp CCDScanner WCS3900

1 Ответ

1 голос
/ 26 сентября 2019

onInput запускается каждый раз, когда значение изменяется.Большинство сканеров штрих-кода имитируют нажатия клавиш для ввода значений, которые они сканируют, поэтому, насколько известно вашему приложению, каждая цифра - это нажатие клавиши, которое изменяет значение, и поэтому оно сообщает о каждом из них как о событии ввода.Свойство data входного события - это только часть измененного ввода, поэтому вы получаете по одному за раз.

Вам нужен способ определить, когда ввод завершен, а не всякий раз, когда это происходит,Я полагаю, что большинство сканеров штрих-кода имитируют нажатие клавиши ENTER или TAB после завершения полного сканирования, так что это может быть тем, что вы хотите обнаружить, не с помощью события ввода, а с помощью нажатия клавиши или события нажатия клавиши.

...