Die APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene Plus de WebHID posibilita que los sitios web accedan a teclados auxiliares alternativos y gamepads exóticos.

La API de WebHID es parte del proyecto Capabilities y en este momento está en desarrollo. Esta publicación se actualizará a medida que avance la implementación.

Existe una larga lista de dispositivos de interfaz humana (HID), como teclados alternativos o gamepads exóticos, que son demasiado nuevos, demasiado antiguos o poco comunes para que los controladores de dispositivos de los sistemas puedan ingresar a ellos. La API WebHID resuelve esto proporcionando una forma de poner en práctica la lógica específica del dispositivo en JavaScriptJavaScript es un lenguaje de programación que funciona en el lado del cliente y con el que las webs pueden ser más funcionales. Incorporación en código HTML El código JavaScript puede ser incrustado en las páginas HTML, para que adquieran funcionalidad. Existen varias opciones. Puede estar entre las etiquetas <SCRIPT> y </SCRIPT>, puede estar contenido en un archivo externo, puede ser un parámetro de las etiquetas HTML, y puede estar Plus.

Vorgeschlagene Anwendungsfälle

Ein HID-Gerät nimmt Eingaben von Menschen entgegen oder liefert ihnen eine Ausgabe. Beispiele für Geräte sind Tastaturen, Zeigegeräte (Mäuse, Touchscreens usw.) und Gamepads. das HID-Protokoll hace viable ingresar a estos dispositivos en computadoras de escritorio usando controladores del sistema operativo. La plataforma web es compatible con dispositivos HID basándose en estos controladores.

La imposibilidad de ingresar a dispositivos HID poco comunes es concretamente dolorosa cuando consiste en teclados auxiliares alternativos (p. Ej. Elgato Stream Cover, Jabra Kopfhörer, X-Tasten) y soporte exótico para gamepad. Los gamepads diseñados para el escritorio a menudo utilizan HID para las entradas del gamepad (botones, joysticks, disparadores) y salidas (LED, rumble). Desafortunadamente, las entradas y salidas del gamepad no están bien estandarizadas y los BrowserConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet Plus web a menudo requieren una lógica personalizada para dispositivos específicos. Esto es insostenible y da como consecuencia un soporte deficiente para la larga cola de dispositivos más antiguos y poco comunes. Además hace que el BrowserUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los Plus dependa de peculiaridades en el comportamiento de dispositivos específicos.

Tatsächlicher Zustand

Terminologie

HID consta de dos conceptos fundamentales: informes y descriptores de informes. Los informes son los datos que se intercambian entre un dispositivo y un cliente de SoftwareConcepto de Software¿Qué es el Software y cuál es su función?Un Software es la parte lógica, o más bien el soporte lógico, de cualquier sistema de tipo informático. Sea un PC, un teléfono teléfono celular o inclusive una tablet, es todo aquel programa que se ejecuta en él gracias a la coordinación de la parte física, es decir, el hardware, para llevar adelante alguna tarea concretamente o un recopilatorio de Plus. El descriptor de reporte describe el formato y el significado de los datos que admite el dispositivo.

Un HID (Dispositivo de interfaz humana) es un tipo de dispositivo que recibe entradas de PersonenLas personas son personalidades imaginarias que representan a un determinado grupo objetivo. En el marketing online, las personas ayudan a entender mejor a los usuarios de un portal web o a los clientes de una tienda online. Concepto de personas Para que las personas puedan ejercer su efecto positivo, deben ser lo más detalladas viable. Esto conlleva un término exhaustiva de los grupos destinatarios para conseguir datos empíricos. La próxima Plus o proporciona salidas a ellas. Además se refiere al protocolo HID, un estándar para la comunicación bidireccional entre un host y un dispositivo que está diseñado para simplificar el proceso de instalación. El protocolo HID se desarrolló originalmente para dispositivos USB, pero desde entonces se ha implementado en muchos otros protocolos, incluido Bluetooth.

HID-Geräte und -Anwendungen tauschen Binärdaten über drei Arten von Berichten aus:

Tipo de reporte Beschreibung
Reporte de entrada Datos que se envían desde el dispositivo a la aplicación (a modo de ejemplo, se presiona un botón).
Reporte de salida Datos que se envían desde la aplicación al dispositivo (a modo de ejemplo, una solicitud para encender la luz de fondo del teclado).
Reporte de funciones Daten, die an eine beliebige Adresse gesendet werden können. Das Format ist gerätespezifisch.

Un descriptor de reporte describe el formato binario de los informes admitidos por el dispositivo. Su estructura es jerárquica y puede agrupar informes como colecciones distintas dentro de la colección de nivel superior. los Format Der Deskriptor wird durch die HID-Spezifikation definiert.

Un uso de HID es un valor numérico que se refiere a una entrada o salida estandarizada. Los valores de uso posibilitan que un dispositivo describa el uso previsto del dispositivo y el propósito de cada campo en sus informes. A modo de ejemplo, se establece uno para el botón izquierdo de un mouse. Los usos además se organizan en páginas de uso, que proporcionan una indicación de la categoría de alto nivel del dispositivo o reporte.

Utilizando la API de WebHID

Aktivierung über chrome: // flags

Um mit der WebHID-API lokal auf allen Desktop-Plattformen ohne Herkunftsnachweis-Token zu experimentieren, aktivieren Sie die Option #experimental-Web-Plattform-Funktionen Flagge an
chrome://flags.

Habilitar el apoyo durante la etapa de prueba de origen

La API de WebHID se encuentra disponible en todas las plataformas de escritorio (Chrome OS, Linux, macOS y Windows) como una prueba de origen en Chrome 86. Se espera que la prueba de origen finalice justo antes de que Chrome 89 se establezca en febrero de 2021. La API además puede habilitarse a través de una bandera.

Las pruebas de Origin le posibilitan probar nuevas funciones y otorgar comentarios sobre su usabilidad, practicidad y efectividad a la comunidad de estándares web. Para conseguir más información, consulte el Origin-Testhandbuch für Webentwickler. Um sich für diesen oder einen anderen Herkunftsnachweis anzumelden, besuchen Sie die Registrierungsseite.

Registrieren Sie sich für den Herkunftsnachweis

  1. Fordern Sie einen Token an von Ihrer Herkunft.
  2. Fügen Sie das Token Ihren Seiten hinzu. Es gibt zwei Möglichkeiten, dies zu tun:
    • Füge hinzu ein Ursprungsversuch Tag an die Kopfzeile jeder Seite an. Als Beispiel könnte dies so aussehen:
    • Si puede configurar su ServerLos servidores son ordenadores centrales y potentes dentro del campo de la tecnología de la información que procesan y proporcionan software y archivos en una red. Desde el punto de vista de un cliente, varios ordenadores en una red pueden ponerse en contacto con el servidor central para conseguir la información solicitada. En la arquitectura cliente-servidor, el servidor puede ser un software que proporciona un servicio y se ejecuta en Plus, además puede agregar el token utilizando un Origin-Trial Encabezado HTTPEl HTTP (Hyper Text Transfer Protocol) es un protocolo que se usa para transmitir datos en redes. HTTP es un estándar técnico generalmente aceptado que establece cómo un cliente web se comunica con un servidor para que los datos solicitados por el cliente puedan ser cargados y mostrados. Información general Junto con el URL y el HTML, HTTP es uno de los conceptos más importantes de Internet (www). Fue desarrollado Plus. El encabezado de respuesta resultante debería verse así:
      Origin-Trial: TOKEN_GOES_HERE

Funktionserkennung

Para chequear si la API de WebHID es compatible, utilice:

wenn ("hid" im Navigator) {
}

Öffnen Sie eine HID-Verbindung

La API de WebHID es asincrónica por diseño para evitar que la Benutzeroberfläche  Una interfaz de usuario es un medio por medio de del cual una persona puede controlar un software o hardware específico. Lo ideal es que las interfaces de usuario sean fáciles de utilizar para que la interacción sea lo más instintiva e intuitiva factible. En el caso de los programas informáticos, esto se denomina interfaz gráfica de usuario. Desarrollo y tipos de interfaces de usuario A diferencia de la Plus del portal web se bloquee cuando se espera una entrada. Esto es esencial debido a que los datos HID se pueden recibir en cualquier momento, lo que necesita una forma de escucharlos.

Um eine HID-Verbindung herzustellen, greifen Sie zuerst auf a zu HIDDevice objeto. Para esto, puede solicitar al usuario que seleccione un dispositivo llamando
navigator.hid.requestDevice ()oder wählen Sie eine von navigator.hid.getDevices ()
que devuelve una lista de dispositivos a los que el portal web tuvo acceso previamente.

das navigator.hid.requestDevice () La función toma un objeto obligatorio que establece FilterConcepto de Filtros¿Qué son los Filtros?Los Filtros son unos mecanismos que, sea en el campo de la informática o en el de las páginas web, se usan para establecer qué tipo de contenidos se deben visualizar o mostrar por pantalla, o cuáles no deben aparecer. Es algo que se emplea en numerosos lugares con fines muy distintos, pero que siempre tiene como objetivo perfilar la búsqueda para acertar mejor con Plus. Se usan para hacer coincidir cualquier dispositivo conectado con un identificador de proveedor USB (Hersteller-ID), eine USB-Produktkennung (Produkt ID), ein Nutzungsseitenwert (usagePage) und einen Gebrauchswert (Verwendung). Puedes conseguirlos de el repositorio de ID USB y el HID-Verwendungstabellen-Dokument.

Das Vielfache HIDDevice Los objetos devueltos por esta función representan diversos interfaces HID en el mismo dispositivo físico.


const filters = [
{
Hersteller-ID: 0x057e,
Produkt ID: 0x2006
},
{
Hersteller-ID: 0x057e,
Produkt ID: 0x2007
}
];


const [Gerät] = erwarten Navigator.hid.requestDevice({ filters });


const devices = erwarten Navigator.hid.getDevices();

webhid-prompt-3406008
Mensaje de usuario para elegir un Joy-Con de Nintendo Switch.

EIN HIDDevice Das Objekt enthält USB-Hersteller- und Produktkennungen zur Geräteidentifikation. Ihr Sammlungen Das AttributAtributo es una definición que se usa en varios campos de IT. Generalmente, un atributo se usa para describir un fichero o un campo de datos con más detalle. En la programación orientada a objetos, los atributos son una propiedad o característica que se puede asignar a un objeto (elemento). A través el uso de atributos se pueden asignar valores específicos a ciertos items. Áreas de aplicación Las tres áreas Plus se inicializa con una descripción jerárquica de los formatos de reporte del dispositivo.

zum (Lassen collection of Gerät.Sammlungen) {
console.Log(`Usage: ${collection.Verwendung}`);
console.Log(`Usage page: ${collection.usagePage}`);

zum (Lassen inputReport of collection.inputReports) {
console.Log(`Input report: ${inputReport.reportId}`);
}

zum (Lassen outputReport of collection.outputReports) {
console.Log(`Output report: ${outputReport.reportId}`);
}

zum (Lassen featureReport of collection.featureReports) {
console.Log(`Feature report: ${featureReport.reportId}`);
}


}

das HIDDevice los dispositivos se devuelven de manera predeterminada en un estado «cerrado» y deben abrirse llamando open () bevor Daten gesendet oder empfangen werden können.


erwarten Gerät.open();

Eingangsberichte erhalten

Sobald die HID-Verbindung hergestellt wurde, können Sie eingehende Berichte durch Abhören verarbeiten "Eingabebericht" Geräteereignisse. Diese Ereignisse enthalten die HID-Daten wie Datenansicht ObjektDaten), das HID-Gerät, zu dem es gehört (Gerät) y el ID de reporte de 8 bits asociado con el reporte de entrada (reportId).

joycon-switch-photo-9523996
Nintendo Switch Joy-Con-Geräte.

Wenn Sie mit dem vorherigen Beispiel fortfahren, zeigt Ihnen der folgende Code, wie Sie erkennen, welche Taste der Benutzer auf einem Joy-Con Right-Gerät gedrückt hat, damit Sie es hoffentlich zu Hause testen können.

device.addEventListener("inputreport", event => {
const { data, device, reportId } = event;


if (device.productId !== 0x2007 &ampConcepto de AMP¿Qué es el AMP o Accelerated Mobile Pages?El AMP, abreviatura de Accelerated Mobile Pages, es una propuesta que empezó a tomar forma en el año 2016 con la finalidad de mejorar la usabilidad, lectura y, en general, la experiencia de los usuarios de teléfono celular dentro de cualquier página web. Emprendida por Google con un aperturismo total (es de código abierto), lleva en activo desde entonces para facilitar más;& reportId !== 0x3f) return;

const value = data.getUint8(0);
if (value === 0) return;

const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
console.log(`User pressed button ${someButtons[value]}.`);
});

Ausgehende Berichte senden

Para enviar un reporte de salida a un dispositivo HID, pase el ID de reporte de 8 bits asociado con el reporte de salida (reportId) und Bytes wie BufferSource (Daten) bis
device.sendReport (). La promesa devuelta se resuelve una vez que se ha enviado el reporte. Si el dispositivo HID no usa ID de reporte, configure reportId bis 0.

Das folgende Beispiel gilt für ein Joy-Con-Gerät und zeigt Ihnen, wie Sie es mit den Ausgabeberichten vibrieren lassen.


const enableVibrationData = [1, 0, 1, 64, 64, 0, 1, 64, 64, 0x48, 0x01];
erwarten Gerät.sendReport(0x01, new Uint8Array(enableVibrationData));


const rumbleData = [ ];
erwarten Gerät.sendReport(0x10, new Uint8Array(rumbleData));

Funktionsberichte senden und empfangen

Los informes de características son el único tipo de informes de datos HID que pueden viajar en ambas direcciones. Posibilitan que los dispositivos y aplicaciones HID intercambien datos HID no estandarizados. A diferencia de los informes de entrada y salida, la aplicación no recibe ni envía informes de características de forma regular.

Laptop-Tastatur-Foto-9051924
Laptop-Tastatur

Para enviar un reporte de funciones a un dispositivo HID, pase el ID de reporte de 8 bits asociado con el reporte de funciones (reportId) und Bytes wie BufferSource (Daten) bis
device.sendFeatureReport (). La promesa devuelta se resuelve una vez que se ha enviado el reporte. Si el dispositivo HID no usa ID de reporte, configure reportId bis 0.

Das folgende Beispiel veranschaulicht die Verwendung von Funktionsberichten, indem es Ihnen zeigt, wie Sie ein Hintergrundbeleuchtungsgerät für die Apple-Tastatur bestellen, öffnen und blinken lassen.

const waitFor = duration => new Promise(r => setTimeout(r, duration));


const [Gerät] = erwarten Navigator.hid.requestDevice({
filters: [{ Hersteller-ID: 0x05ac, Verwendung: 0x0f, usagePage: 0xff00 }]
});


erwarten Gerät.open();


const reportId = 1;
zum (Lassen ich = 0; ich < 10; ich++) {
erwarten Gerät.sendFeatureReport(reportId, Uint32Array.desde([0, 0]));
erwarten waitFor(100);
erwarten Gerät.sendFeatureReport(reportId, Uint32Array.desde([512, 0]));
erwarten waitFor(100);
}

Para recibir un reporte de funciones de un dispositivo HID, pase el ID de reporte de 8 bits asociado con el reporte de funciones (reportId) bis
device.receiveFeatureReport (). Das zurückgegebene Versprechen wird mit a gelöst
Datenansicht objeto que contiene el InhaltEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, Plus del reporte de características. Si el dispositivo HID no usa ID de reporte, configure reportId bis 0.


const dataView = erwarten Gerät.receiveFeatureReport( 1);

Hören Sie die Verbindung und Trennung

Cuando el portal web tiene permiso para ingresar a un dispositivo HID, puede recibir activamente eventos de conexión y desconexión escuchando "verbinden"
y "trennen" Veranstaltungen.

Navigator.hid.addEventListener("verbinden", Veranstaltung => {
});

Navigator.hid.addEventListener("trennen", Veranstaltung => {
});

Tipps für Entwickler

Das Debuggen von HID in Chrome ist mit der Innenseite einfach. chrome://device-log
donde puede ver todos los eventos relacionados con dispositivos USB y HID en un único lugar.

Geräteprotokoll-Seite-Screenshot-4716868
Interne Seite in Chrome zum Debuggen von HID.

Population

Einige Demos von WebHID sind unter web.dev/hid-examples aufgeführt. Schau mal rein!

Sicherheit und Privatsphäre

Los autores de especificaciones han diseñado e implementado la API de WebHID usando los principios básicos definidos en Steuern Sie den Zugriff auf leistungsstarke Funktionen der Webplattform, incluido el control del usuario, la transparencia y la ergonomía. La capacidad de utilizar esta API está principalmente controlada por un modelo de permisos que otorga acceso a un solo dispositivo HID a la vez. En respuesta a un mensaje de usuario, el usuario debe tomar medidas activas para elegir un dispositivo HID en particular.

Para saber las compensaciones de seguridad, consulte la Sicherheits- und Datenschutzaspekte Abschnitt der WebHID-Spezifikation.

A parte de esto, Chrome inspecciona el uso de cada colección de nivel superior y si una colección de nivel superior tiene un uso protegido (.eg teclado genérico, mouse), entonces un portal web no podrá enviar ni recibir ningún reporte definido. en esa colección. El listado completa de usos protegidos es Öffentlich verfügbar.

Tenga en cuenta que los dispositivos HID sensibles a la seguridad (como los dispositivos FIDO HID utilizados para una autenticación más sólida) además están bloqueados en Chrome. Ver el Blockliste Verfahren.

Feedback

Das Chrome-Team würde gerne Ihre Gedanken und Erfahrungen mit der WebHID-API hören.

Erzählen Sie uns etwas über das API-Design

¿Puede haber algo en la API que no funcione como se esperaba? ¿O faltan métodos o propiedades que requiere para poner en práctica su idea?

Presentar un obstáculo de especificaciones en el WebHID API GitHub-Repository oder fügen Sie Ihre Gedanken zu einem bestehenden Hindernis hinzu.

Informar un obstáculo con la implementación

¿Encontraste un error con la implementación de Chrome? ¿O la implementación es distinto de la especificación?

Einen Fehler einreichen https://new.crbug.com. Stellen Sie sicher, dass Sie so viele Details wie möglich angeben, einfache Anweisungen zum Reproduzieren des Fehlers bereitstellen und
Komponenten (bearbeiten) angepasst an Blinken> VERSTECKT. Fehler funktioniert hervorragend für das schnelle und einfache Teilen von Wiederholungen.

Unterstützung zeigen

¿Está pensando en usar la API de WebHID? Su apoyo público ayuda al equipo de Chrome a priorizar funciones y muestra a otros proveedores de navegadores lo importante que es brindarles soporte.

Sende ein TweetUn tweet es un mensaje corto que puede ser enviado por medio de del servicio de microblogging Twitter. ¿Qué es un tweet? Un tweet es un mensaje de estado en Twitter que puede tener hasta 280 caracteres. Los tweets solían limitarse a 140 caracteres, pero esta cantidad se incrementó a 280 en septiembre de 2017. Debido al espacio limitado para el texto, las URLs para uso en tweets son normalmente Plus zu @Cromodev mit #WebHID y háganos saber dónde y cómo lo está utilizando.

Links Útiles

Vielen Dank

Dank an Matt Reynolds y Joe Medley por sus reseñas de este PostConcepto de Post¿Qué es un Post?Un Post es todo aquel contenido, sea post, opinión, noticia u otro género, que un autor publica en un blog. Este puede ser de carácter corporativo o meramente ocioso; pero siempre tiene como meta arrojar información o reflejar una idea, al mismo tiempo de facilitar que los usuarios encuentren la web donde se recoge por medio de de buscadores y demás plataformas online.Generalmente, se han Plus. Heldenbild von Valentin Müller, rot und blau Nintendo Switch Bild von Sara kurfeßund ein schwarz-silbernes Laptop-Foto von Athul Cyriac Ajay auf Unsplash.