Каковы различные способы доступа к устройствам на клиентском ПК - считыватель штрих-кодов, сканер и т. Д. - из браузера? Я понимаю, что моим пользователям может понадобиться плагин. Эти устройства могут иметь API, специфичный для их устройства; Я хотел бы использовать их API, если они доступны (возможно, Java, возможно, C, возможно, командной строки).Как получить доступ к устройствам на клиентском компьютере из браузера
ответ
A подписан Java-апплет может иметь независимый от платформы доступ ко всем вещам. Пользователь должен установить Java и должен разрешить запуск подписанного апплета.
Если вы напишете подключаемый модуль к NSAPI, как только они его установили, у вас будет доступ к практически всем, к чему пользователь может получить доступ. Конечно, они должны установить плагин.
Flash предлагает довольно большой доступ к устройствам.
Отличный ответ; Благодарю. – Upperstage
Это не тривиальная вещь, и для нее нет стандартизованного API (кроме, может быть, в области JScript/ActiveX, ограниченной только Internet Explorer).
Для доступа к сканерам через интерфейс TWAIN ознакомьтесь с this question для всех общедоступных опций, о которых я знаю.
Большинство других вещей будут доставлять заказным Active-X и другим плагинам. Я видел коммерческие плагины для штрих-кодов, обсуждаемые на SO, но не могу найти вопрос прямо сейчас.
NSAPI довольно стандартный. –
Хорошая ссылка, спасибо. – Upperstage
Многие считыватели штрих-кода могут быть вставлены между клавиатурой и ПК, поэтому отсканированные штрих-коды идут прямо в буфер клавиатуры. Другие устройства подключаются к последовательному порту или имеют драйверы, которые эмулируют последовательный порт. Следующий код python скопирует данные с реального или виртуального COM-порта в буфер клавиатуры активного окна. Номер COM-порта жестко закодирован, но его можно легко изменить.
import serial
import SendKeys
ser = serial.Serial(2)
print ser.portstr
while 1: # exit loop when ctrl/c pressed
line = ""
while 1:
char = ser.read()
if char == "\r": break
line = line + char
print line
SendKeys.SendKeys(line, 0)
ser.close()
В зависимости от того, что вы пытаетесь сделать, Silverlight и Adobe имеют ограниченную возможность на этой арене. Веб-камеры, печать в Silverlight 4.0 и т. Д. Однако это нетривиально. Silverlight 4.0 и Flash поддерживают сканирование штрих-кодов.
Каждый сканер штрих-кода, который я когда-либо видел, работает как клавиатура, поэтому он будет работать везде, где клавиатура будет без дополнительной настройки. –
Устройства больше похожи на сканер, чем на считыватель штрих-кода. – Upperstage