J'ai écrit une interface utilisateur dans HTML5 et JavaScript. J'ai choisi cette implémentation afin que je puisse partager le même code entre Android Chrome et Windows 8 RT.
Maintenant, mon prochain objectif est d'écrire des données sur un USB HID. L'appareil avec lequel je communique est traité comme un HID. Je mentionne cette partie s'il existe un moyen d'écrire sur un périphérique HID plutôt que sur un périphérique USB RAW.
J'ai fait beaucoup de recherches sur la question. Mais, les spécifications HTML5 changent si souvent que peut-être j'ai manqué quelque chose.
Quoi qu'il en soit, quelqu'un peut-il suggérer une langue ou une implémentation que je peux utiliser pour partager un code commun pour accéder à un périphérique USB sur Android et Windows 8 RT? S'il n'y a pas moyen de partager entre les deux, que diriez-vous d'une suggestion pour obtenir une communication USB uniquement sur Android?
Voici mes recherches avec conclusions:
Silverlight: UNSUPPORTED. En termes de plugin Web, pas pris en charge sur Windows 8 RT ou Android
Flash: option possible. Pris en charge dans les deux systèmes d'exploitation, bien qu'ils aient supprimé le support pour Android avec la sortie de Jelly Bean
HTML5: NON SUPPORT
JavaScript: UNSUPPORTED. D'après ce que je comprends, c'est parce que ce serait un risque pour la sécurité.
Application paquetage Chrome: non surveillée. Incertain sur le support dans Windows 8 RT. Mais, il n'est pas compatible avec Android Chrome, non plus.
Applet Java: UNSUPPORTED. Incertain sur le support dans Windows 8 RT. Mais, il n'est pas compatible avec Android Chrome, non plus.
Quelques publications utiles
J'ai réellement pensé à comment faire des choses semblables à celles-ci …
Voici un mode de façon sûre de le faire si vous avez le contrôle sur l'ordinateur qui a le périphérique usb attaché:
Demandez à l'ordinateur doté du périphérique USB d'exécuter un serveur Web tel que apache / php. N'a-t-il qu'à écouter l'hôte local.
Ensuite, dans la page html en cours de visualisation, exécutez une publication ajax dans localhost / somescript.php (ou cgi ou cfm ou autre).
Dans le script php / cgi, communiquez avec le périphérique USB, puis renvoyez une chaîne json au navigateur en disant que quelque chose s'est passé.
METTRE À JOUR:
Une autre approche consiste à utiliser des protocoles d'URL personnalisés. Vous créez un exécutable et l'installez sur l'ordinateur client avec votre protocole d'url personnalisé.
Ensuite, vous pouvez appeler l'exécutable à partir du navigateur en utilisant votre protocole d'url personnalisé.
Il existe une autre Socket Web alternative. Créez un serveur de socket Web qui accède au périphérique USB dans le système local.
Connectez votre serveur Web à l'aide de Web Socket à partir de Web Application.Web Socket a standard Api
Vous pouvez faire quelque chose comme ça
var host = "wss://localhost:25000/test"; Websokcet ws = new WebSocket(host);
Vous pouvez créer votre serveur web sokcet à l'aide de RFC 6455
Pour un navigateur plus ancien, vous pouvez également penser au serveur http.
Regardez JSFS. Cela fonctionne comme l'approche de Chris_vr et est déjà une solution de travail.
https://github.com/jsfsproject/jsfs . C'est gratuit et sous licence GPL.
Si le périphérique usb que vous souhaitez contrôler est une imprimante code barre, vous pouvez utiliser jZebra
https://code.google.com/p/jzebra/
Il s'agit d'une applet qui communique directement aux imprimantes connectées localement.
Que dis-tu de ça?
Ecriture sur un port série:
var writeSerial=function(str) { chrome.serial.write(connectionId, str2ab(str), onWrite); } // Convert string to ArrayBuffer var str2ab=function(str) { var buf=new ArrayBuffer(str.length); var bufView=new Uint8Array(buf); for (var i=0; i<str.length; i++) { bufView[i]=str.charCodeAt(i); } return buf; }