Come accedere ai dispositivi su un PC client da un browser
-
24-09-2019 - |
Domanda
Quali sono i vari modi per accedere ai dispositivi sul PC client - un lettore di codici a barre, uno scanner, ecc. - da un browser? Mi rendo conto che i miei utenti potrebbero aver bisogno di un plug -in. Questi dispositivi possono avere un'API specifica per il loro dispositivo; Vorrei sfruttare la loro API se disponibile (forse Java, forse C, forse riga di comando).
Soluzione
UN firmato L'applet Java può avere accesso indipendente dalla piattaforma alla maggior parte delle cose. L'utente deve installare Java e deve consentire l'esecuzione dell'applet firmata.
Se scrivi un plug-in a NSAPI, una volta installato, avrai accesso a tutto ciò che l'utente può accedere. Naturalmente, devono installare il plug-in.
Flash offre molto accesso ai dispositivi.
Altri suggerimenti
Questa non è una cosa banale e non esiste API standardizzata (tranne forse nell'area JScript/ActiveX che è limitata a Internet Explorer).
Per accedere agli scanner tramite l'interfaccia twain, controlla questa domanda Per tutte le opzioni generalmente disponibili che conosco.
La maggior parte delle altre cose dipenderà da Active-X programmati personalizzati e altri plug-in. Ho visto i plug-in di scanner di codici a barre commerciali discussi su SO, ma non riesco a trovare la domanda in questo momento.
Molti lettori di codice a barre possono essere inseriti tra la tastiera e il PC, quindi i codici a barre scansionati vanno direttamente nel buffer della tastiera. Altri dispositivi si collegano a una porta seriale o hanno driver che emulano una porta seriale. Il seguente codice Python copierà i dati da una porta COM reale o virtuale al buffer della tastiera della finestra attiva. Il numero di porta COM è codificato, ma questo può essere facilmente modificato.
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()
A seconda di ciò che stai cercando di fare, Silverlight e Adobe hanno entrambi alcune capacità limitate in questa arena. Webcams, stampa in Silverlight 4.0, ecc. Tuttavia, non è banale. Silverlight 4.0 e flash supportano entrambi la scansione dei codici a barre.