Mikä on WebUSB API?

WebUSB API on selaimen standardi, joka mahdollistaa verkkosivujen suoran kommunikoinnin USB-laitteiden kanssa — ilman natiivien ohjaimien tai työpöytäsovellusten asentamista. Se otettiin käyttöön Chrome 61:ssä ja antaa verkkosivustoille hallitun, luvalla varustetun pääsyn laitteistoihin, kuten mikrokontrollereille, kehityskorteille, MIDI-liitäntöihin ja muille USB-oheislaitteille.

Toisin kuin perinteinen USB-pääsy (joka vaatii ytimen tason ohjaimia), WebUSB toimii kokonaan selaimen hiekkalaatikossa. Käyttäjien on nimenomaisesti myönnettävä lupa jokaiselle laitteelle selaimen sisäänrakennetun laitepoiminnan kautta, mikä varmistaa, että mikään verkkosivusto ei voi äänettömästi lukea tai kirjoittaa laitteistollesi.

Työkalun kuvaus

Tämä työkalu antaa sinulle mahdollisuuden luetteloida USB-laitteet, joille on myönnetty pääsy selaimeen WebUSB API:n kautta. Latautuessaan se automaattisesti luettelee kaikki aiemmin sallitut laitteet. Voit myös avata selaimen natiivisen USB-poiminnan myöntääksesi pääsyn äskettäin kytkettyyn laitteeseen tai päivittää luettelon milloin tahansa.

Jokaiselle laitteelle työkalu näyttää tuotteen nimen, valmistajan, toimittajan tunnuksen, tuotteen tunnuksen, sarjanumeron ja USB-protokollan version.

Ominaisuudet

  • Lataa automaattisesti aiemmin myönnetyt USB-laitteet sivun avautuessa
  • Avaa selaimen natiivisen USB-laitepoiminnan myöntääkseen pääsyn uusille laitteille
  • Näyttää toimittajan tunnuksen ja tuotteen tunnuksen vakioheksadesimaalimerkinnässä (esim. 0x1A2B)
  • Näyttää USB-protokollan version (esim. 2.0, 3.1) laitteen tunnistetietojen rinnalla
  • Lajiteltava tulostetaulukko CSV- ja JSON-viennillä

Kuinka se toimii

Kun napsautat Lisää laite, selain kutsuu navigator.usb.requestDevice() -funktiota ja näyttää järjestelmätason poiminnan, joka luettelee kytketyt USB-laitteet. Jos valitset yhden, selain tallentaa kyseisen alkuperän oikeuden. Seuraavilla käynneillä (tai napsauttamisen jälkeen Päivitä), navigator.usb.getDevices() palauttaa kaikki aiemmin sallitut laitteet ilman uudelleen kehotusta.

Toimittajan tunnus ja tuotteen tunnus näytetään 4-numeroisessa isolla heksadesimaalissa (esim. 0x04D8) — vakiomuoto, jota käytetään USB-rekistereissä ja tietoarkeissa.

Käyttötapaukset

  • Laiteohjelmiston kehittäjät voivat nopeasti vahvistaa, että kytketty mikrokontrolleri tai kehityskortti (Arduino, STM32, RP2040 jne.) on oikein luetteloitu selaimessa ennen WebUSB-pohjaisen flash-työkalun kirjoittamista.
  • Web-sovellusten kehittäjät voivat varmistaa, että heidän WebUSB-yhteensopiva sovelluksensa näkee odotetut laitteen tunnistetiedot varhaisessa prototyyppivaiheessa.

Rajoitukset

  • WebUSB on tuettu vain Chromium-pohjaisissa selaimissa (Chrome, Edge, Opera). Firefox ja Safari eivät toteuta tätä API:a.
  • Sivu on toimitettava HTTPS:n yli (tai localhost) — WebUSB on estetty tavallisilla HTTP-alkuperillä.
  • Jotkut käyttöjärjestelmä- ja selainkombinaatiot rajoittavat pääsyä tiettyihin laitteluokkiin (esim. HID, massamuisti) jopa silloin, kun luvat on myönnetty.
  • Tämä työkalu lukee vain laitteen metatietoja; se ei avaa mitään USB-liitäntää eikä siirrä tietoja laitteeseen tai laitteesta.