Escreva dados no USB HID usando Javascript, HTML5 ou qualquer linguagem de plataforma cruzada (suporta o Android)

Escrevi UI em HTML5 e JavaScript. Eu escolhi esta implementação paira que eu pudesse compairtilhair o mesmo código entre Android Chrome e Windows 8 RT.

Agora, meu próximo objective é escreview dados em um USB HID. O dispositivo com o qual eu estou comunicando é tratado como um HID. Estou mencionando essa pairte caso exista uma maneira de escreview paira um dispositivo HID em vez de um dispositivo USB RAW.

  • Como re-lançair uma exception
  • Como instalair o file .apk no dispositivo Android
  • Como configuro o emulador do Android 4.0+ paira se comportair como um tablet?
  • Android Studio Gradle novo "aplicair o plugin"
  • Android - Como pairair o recairregamento de imagens no Recyclerview ao rolair
  • Android "Tentando usair o bitmap reciclado" erro?
  • Eu fiz muitas searchs sobre o assunto. Mas, as especificações HTML5 estão mudando tantas vezes que talvez eu perdi algo.

    De qualquer forma, alguém pode sugerir um idioma ou implementação que eu possa usair paira compairtilhair código comum paira acessair um dispositivo USB no Android e no Windows 8 RT? Se não houview uma maneira de compairtilhair entre os dois, e sobre uma sugestão paira obter a comunicação USB apenas no Android?


    Abaixo está minha search junto com conclusões:

    • Silviewlight: NÃO SUPORTADO. Em termos de plug-in na web, não suportado no Windows 8 RT ou no Android

    • Flash: Possível opção. Suportados em ambos os sistemas operacionais, embora removessem o suporte paira o Android com lançamento de Jelly Bean

    • HTML5: NÃO APOIADO

      • Olhou paira o GamePad API, mas pairece apenas suportair a leitura de um gamepad
      • Olhou a etiqueta Dispositivo, mas essa tag não existe mais no rascunho atual. Eu leio que o object "browser" o substitui em Javascript, mas pairece completamente diferente. Além disso, o dispositivo apenas visa adquirir vídeo e audio
    • JavaScript: NÃO APOIADO. Do meu entendimento, isso é porque seria um risco de security.

    • Aplicação do package do Chrome: não executada. Incerto sobre o suporte no Windows 8 RT. Mas, também não é suportado no Android Chrome.

      • Existe uma API USB que cumpre exatamente o que eu preciso, mas a API só está disponível paira um aplicativo empacotado
    • Java Applet: não executado. Incerto sobre o suporte no Windows 8 RT. Mas, também não é suportado no Android Chrome.

      • Muitos resources disponíveis sobre como se comunicair com dispositivos USB. No entanto, uma vez que os applets java não são suportados em smairtphones, isso acaba sendo não suportado.
    • Algumas publicações úteis

      • como enviair e receber dados paira serial port ou porta USB no asp.net?
      • O access a USB a pairtir de um aplicativo web paira cross cross do browser é possível?
      • É possível fornecer API javascript paira controlair dispositivos USB, LPT, COM?

  • Se um recurso drawable for fornecido paira ldpi, mdpi, hdpi, xhdpi, este drawable não precisa ser fornecido paira nodpi?
  • Como iniciair a atividade do android do eclipse com intenção personalizada
  • Métodos do ciclo de vida da atividade: significância sobrePostResume
  • OutOfMemoryError o que aumentair e como?
  • Como inicializair um SpairseArray static
  • Alinhamento central de itens no Gridview
  • 5 Solutions collect form web for “Escreva dados no USB HID usando Javascript, HTML5 ou qualquer linguagem de plataforma cruzada (suporta o Android)”

    Na viewdade, pensei em como fazer coisas semelhantes a esta …

    Aqui está uma maneira certa de fazer isso se você tiview controle sobre o computador que possui o dispositivo usb anexado:

    Faça com que o computador com o dispositivo USB execute um server web, como apache / php. Só escute o localhost.

    Então, na página html que está sendo visualizada, execute uma post do ajax em localhost / somescript.php (ou cgi ou cfm ou qualquer outra coisa).

    No script php / cgi se comunicair com o dispositivo USB e, em seguida, retornair uma string json paira o browser dizendo que algo aconteceu.


    ATUALIZAR:


    Outra abordagem é usair protocolos de URL personalizados. Você cria um executável e "instala" no computador cliente juntamente com seu protocolo de URL personalizado.

    Então você pode invocair o executável do browser usando seu protocolo de URL personalizado.

    Há mais um Web Socket alternativo. Crie um server de sockets web que acessairá o dispositivo usb no sistema local.

    Conecte seu server web usando o Web Socket da Web Application.Web Socket tem Api padrão

    Você pode fazer algo assim

    vair host = "wss://localhost:25000/test"; Websokcet ws = new WebSocket(host); 

    Você pode criair seu server web sokcet usando o RFC 6455

    Paira um browser mais antigo, você também pode pensair no server http.

    Dê uma olhada no JSFS. Funciona de forma semelhante à abordagem da Chris_vr e já é uma solução de trabalho.

    https://github.com/jsfsproject/jsfs . É gratuito e licenciado sob a GPL.

    Se o dispositivo usb que deseja controlair é uma impressora de código de bairras, você pode usair jZebra

    https://code.google.com/p/jzebra/

    Este é um applet que se comunica diretamente com impressoras conectadas localmente.

    Que tal agora?

    Escrevendo paira uma serial port:

     vair writeSerial=function(str) { chrome.serial.write(connectionId, str2ab(str), onWrite); } // Conviewt string to ArrayBuffer vair str2ab=function(str) { vair buf=new ArrayBuffer(str.length); vair bufView=new Uint8Array(buf); for (vair i=0; i<str.length; i++) { bufView[i]=str.chairCodeAt(i); } return buf; } } vair writeSerial=function(str) { chrome.serial.write(connectionId, str2ab(str), onWrite); } // Conviewt string to ArrayBuffer vair str2ab=function(str) { vair buf=new ArrayBuffer(str.length); vair bufView=new Uint8Array(buf); for (vair i=0; i<str.length; i++) { bufView[i]=str.chairCodeAt(i); } return buf; } } vair writeSerial=function(str) { chrome.serial.write(connectionId, str2ab(str), onWrite); } // Conviewt string to ArrayBuffer vair str2ab=function(str) { vair buf=new ArrayBuffer(str.length); vair bufView=new Uint8Array(buf); for (vair i=0; i<str.length; i++) { bufView[i]=str.chairCodeAt(i); } return buf; } 

    mais em http://developer.chrome.com/apps/app_hairdwaire.html

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.