JS - считыватель сканера штрих-кода ручной - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть считыватель штрих-кода, который имеет 3 режима для считывания штрих-кода через программное обеспечение, работающее в фоновом режиме:

Сканирование содержимого на курсоре: при выборе текстового поля он вставляет непосредственно штрих-код. Это самый быстрый способ считывания штрих-кода без задержки. Буфер обмена: копирует штрих-код в буфер обмена. Ввод с клавиатуры: он обрабатывает отсканированные символы штрих-кода как ASCII, как при использовании клавиатуры. У него задержка между символами.

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

Я проверил ввод с клавиатуры, и он отлично работает, я ловлю символы с помощью кодов ASCII: после префикса # он начинает записываться, а затем в конце в качестве суффикса идет Enter. Я ловлю их через Javascript, очевидно, однако, режим ввода с клавиатуры довольно медленно для чтения штрих-кода.

Я тестировал содержимое сканирования на курсоре, но он не отправляет ASCII-код, и я понятия не имею, как поймать эти символы в переменной. Единственный код ASCII, который он отправляет, это кнопка, которую я использую для запуска и завершения сканирования. (code = 120)

Теперь я тестирую функцию буфера обмена, которая выполняет то же самое для сканирования содержимого на курсоре, но с той разницей, что копирует штрих-код в буфер обмена. Я поместил код, который после отпускания кнопки 120 сканирования должен вставить скопированный код в текстовое поле (только для проверки), на рабочем столе chrome он работает, но не в браузере android chrome.


 let handleKeyUp = (e) =>
    {
        if (e.keyCode === 120)
        {         
            setTimeout(function () {              
                navigator.clipboard.readText().then(
                    clipText => document.getElementById("queryBolla").append(clipText));
            }, 2000);

        }
    }
 $(window).bind('keyup', handleKeyUp);

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

...