Como acessar dispositivos em um PC cliente de um navegador
-
24-09-2019 - |
Pergunta
Quais são as várias maneiras de acessar dispositivos no PC cliente - um leitor de código de barras, um scanner etc. - de um navegador? Sei que meus usuários podem precisar de um plug -in. Esses dispositivos podem ter uma API específica para o seu dispositivo; Eu gostaria de explorar a API deles, se disponível (talvez Java, talvez C, talvez a linha de comando).
Solução
UMA assinado O Applet Java pode ter acesso independente da plataforma à maioria das coisas. O usuário precisa instalar o Java e permitir que o applet assinado seja executado.
Se você escrever um plug-in para o NSAPI, depois de instalar, você terá acesso a essencialmente qualquer coisa que o usuário possa acessar. Obviamente, eles precisam instalar o plug-in.
O Flash oferece muito acesso a dispositivos.
Outras dicas
Isso não é uma coisa trivial, e não há API padronizada para ela (exceto talvez na área JScript/ActiveX confinada ao Internet Explorer).
Para acessar scanners através da interface Twain, consulte essa questão Para todas as opções geralmente disponíveis que conheço.
A maioria das outras coisas estará abaixada para o ativo-x programado personalizado e outros plug-ins. Eu vi plug-ins de scanner de código de barras comerciais discutidos sobre o SO, mas não consigo encontrar a pergunta agora.
Muitos leitores de código de barras podem ser inseridos entre o teclado e o PC, para que os códigos de barras digitalizados vão direto para o buffer do teclado. Outros dispositivos se conectam a uma porta serial ou têm drivers que emulam uma porta serial. O código Python a seguir copiará dados de uma porta COM real ou virtual para o buffer do teclado da janela ativa. O número da porta COM é codificado, mas isso pode ser facilmente alterado.
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()
Dependendo do que você está tentando fazer, Silverlight e Adobe têm uma capacidade limitada nesta arena. Webcams, impressão em Silverlight 4.0, etc. No entanto, não é trivial. Silverlight 4.0 e Flash suportam a digitalização de código de barras.