Считыватель штрих-кодов HTML5/javascript на мобильных устройствах без ручного переключения разрешения

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

Я использую этот код для чтения штрих-кода: code by manuels, который работает нормально (Вы можете попробовать код считывателя штрих-кода здесь), если камера на мобильном телефоне настроена на очень низкое разрешение, но не на высокое. Этот метод с использованием HTML Media Capture не идеален, так как пользователю придется переключаться на низкое разрешение вручную. Я знаю, что можно установить разрешение, используя GetUserMedia но он не совместим со многими браузерами/версиями.

Я пытаюсь изменить размер захваченной фотографии с помощью холста на основе кода холста здесь (не написано мной)< /а>. Изменение размера работает, как и ожидалось. Затем я комбинирую код чтения штрих-кода, упомянутый выше, в функции изменения размера, как показано ниже, но часть чтения штрих-кода не работает.

... var interface = новый интерфейс('./bardecode-worker.js'); interface.on_stdout = function(x) { document.getElementById('штрих-код').appendChild(document.createTextNode('result: '+x)); }; ...

interface.addData(tempCanvas.toDataURL('image/jpeg'), '/barcode.jpg').then
(
    function()
    {
        interface.run('/barcode.jpg').then
        (
            function() { console.log(arguments); }
        );
    }
)

Это исходный код Мануэля ниже, и в приведенном выше коде я пытаюсь передать измененное изображение с холста в interface.js вместо FileReader:

document.getElementById('barcode_file').onchange = function(e) {
    var file = e.target.files[0];
    var reader = new FileReader();

    document.getElementById('barcode').appendChild(document.createTextNode('running...'));

    reader.onload = function(ev) {
        interface.addData(ev.target.result, '/barcode.jpg').then(function() {
             interface.run('/barcode.jpg').then(function() { console.log(arguments); });
        })
    };
    reader.readAsBinaryString(file);
};

Извините, я совсем новичок в javascript. Какие-либо предложения? Или есть лучшее решение?


person NaN    schedule 06.10.2014    source источник


Ответы (1)


Возможно, вам будет интересно посмотреть на эту программу, которая специализируется на упрощении доступа к оборудованию на мобильных телефонах.

http://bridgeit.mobi/

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

Они используют написанную ими библиотеку javascript, чтобы открыть приложение, а затем передать информацию обратно на вашу веб-страницу.

Библиотека также откроет страницу магазина программы, если она не установлена ​​при первом использовании пользователем.

person OrangeKing89    schedule 06.10.2014