Cos'è l'API WebUSB?

L'API WebUSB è uno standard del browser che consente alle pagine web di comunicare direttamente con dispositivi USB — senza installare driver nativi o applicazioni desktop. È stata introdotta in Chrome 61 e offre ai siti web accesso controllato e autorizzato a hardware come microcontroller, schede di sviluppo, interfacce MIDI e altre periferiche USB.

A differenza dell'accesso USB tradizionale (che richiede driver a livello kernel), WebUSB funziona interamente nella sandbox del browser. Gli utenti devono concedere esplicitamente il permesso per ogni dispositivo tramite il selettore di dispositivi integrato nel browser, il che garantisce che nessun sito web possa leggere o scrivere silenziosamente sul vostro hardware.

Descrizione dello strumento

Questo strumento consente di enumerare i dispositivi USB che sono stati concessi al browser tramite l'API WebUSB. Al caricamento, elenca automaticamente tutti i dispositivi precedentemente autorizzati. Puoi anche aprire il selettore USB nativo del browser per concedere l'accesso a un dispositivo appena collegato, oppure aggiornare l'elenco in qualsiasi momento.

Per ogni dispositivo, lo strumento visualizza il nome del prodotto, il produttore, l'ID fornitore, l'ID prodotto, il numero di serie e la versione del protocollo USB.

Funzionalità

  • Carica automaticamente i dispositivi USB precedentemente autorizzati all'apertura della pagina
  • Apre il selettore nativo dei dispositivi USB del browser per concedere l'accesso a nuovi dispositivi
  • Visualizza l'ID fornitore e l'ID prodotto in notazione esadecimale standard (ad es. 0x1A2B)

Come funziona

Quando fai clic su Aggiungi dispositivo, il browser chiama navigator.usb.requestDevice() e visualizza un selettore a livello di sistema che elenca i dispositivi USB collegati. Se ne selezioni uno, il browser memorizza il permesso per quella origine. Nelle visite successive (o dopo aver fatto clic su Aggiorna), navigator.usb.getDevices() restituisce tutti i dispositivi precedentemente autorizzati senza richiedere nuovamente il permesso.

L'ID fornitore e l'ID prodotto sono visualizzati in esadecimale maiuscolo a 4 cifre (ad es. 0x04D8) — il formato standard utilizzato nei registri USB e nei fogli dati.

Limitazioni

  • WebUSB è supportato solo nei browser basati su Chromium (Chrome, Edge, Opera). Firefox e Safari non implementano questa API.
  • La pagina deve essere servita tramite HTTPS (o localhost) — WebUSB è bloccato su origini HTTP semplici.
  • Alcune combinazioni di sistema operativo e browser limitano l'accesso a determinate classi di dispositivi (ad es. HID, archiviazione di massa) anche quando i permessi sono concessi.
  • Questo strumento legge solo i metadati del dispositivo; non apre alcuna interfaccia USB né trasferisce dati da/verso il dispositivo.