Conoce la API que te permitirá conectarte a tu USB desde la web

APIWebUSB

APIWebUSB

El bus serie universal (USB) es el estándar de facto para periféricos con cable. La mayoría de los dispositivos USB implementan una de aproximadamente una docena de “clases de dispositivos” estándar que especifican una forma para que el dispositivo anuncie las funciones que admite y los comandos y formatos de datos para usar esas características. Las clases de dispositivos estándar incluyen teclado, ratones, audio, video y dispositivos de almacenamiento.

Los sistemas operativos admiten dichos dispositivos utilizando el “controlador de clase” proporcionado por el proveedor del sistema operativo. Sin embargo, hay una larga cola de dispositivos que no encajan en una de las clases de dispositivos estandarizadas. Estos dispositivos requieren que los proveedores de hardware escriban controladores nativos y SDK para que los desarrolladores se aprovechen de ellos y este código nativo evita que estos dispositivos sean utilizados por la web.

La API WebUSB proporciona una forma de exponer con seguridad los servicios de dispositivos USB a la Web. Proporciona una API familiar a los desarrolladores que han utilizado bibliotecas USB nativas existentes y expone las interfaces de dispositivos definidas por las especificaciones existentes.

Con este API los fabricantes de hardware tendrán la capacidad de construir SDK de JavaScript de plataforma cruzada para sus dispositivos. Esto será bueno para la web porque, en lugar de esperar a que un nuevo tipo de dispositivo sea lo suficientemente popular como para que los navegadores proporcionen una API específica, se puede crear hardware nuevo e innovador para la Web desde el primer día.

La API WebUSB es una característica de gran alcance y tiene la posibilidad de exponer a los usuarios a una serie de nuevos riesgos de seguridad y privacidad. Estos riesgos se pueden dividir ampliamente en tres catagorias que se describirán en las siguientes secciones.

Los dispositivos periféricos pueden servir para varios propósitos. Pueden almacenar datos, al igual que una unidad flash. Pueden recopilar información sobre el mundo exterior como una cámara o un micrófono hace. Pueden manipular objetos en el mundo exterior como una impresora hace. Cada uno de los ejemplos anteriores tienen APIs de alto nivel en la plataforma web con características de seguridad que tienen como objetivo prevenir su abuso por parte de un sitio web malicioso.

El almacenamiento de datos hacia o desde una unidad externa requiere que el usuario seleccione el archivo manualmente. Al encender el micrófono o la cámara requiere permiso del usuario y puede activar un indicador para que el usuario sepa la recopilación de datos está en curso. Impresión de un documento requiere una acción explícita también.

Esta API proporciona un mecanismo genérico para conectarse a dispositivos que no están cubiertos por estas API de alto nivel existentes y por lo que requiere un mecanismo genérico de manera similar para evitar que una página maliciosa de abusar de un dispositivo.