Trendy

Komunikace se zařízeními Bluetooth přes JavaScript |

Optimalizujte své sbírky Ukládejte a kategorizujte obsah podle svého nastavení.

Web Bluetooth API umožňuje webovým stránkám komunikovat se zařízeními Bluetooth.

Co kdybych vám řekl, že webové stránky mohou komunikovat s blízkými zařízeními Bluetooth bezpečným způsobem, který chrání soukromí? Monitory srdečního tepu, zpívající světla a dokonce i želvy mohou komunikovat přímo s webovou stránkou.

Až dosud mohly se zařízeními Bluetooth komunikovat pouze aplikace specifické pro konkrétní platformu. Web Bluetooth API to chce změnit tím, že umožní webovým prohlížečům dělat totéž.

Před začátkem

Tento článek předpokládá, že máte základní znalosti o tom, jak funguje Bluetooth Low Energy (BLE) a Generic Attribute Profile (GATT).

Přestože specifikace rozhraní Web Bluetooth API ještě není dokončena, autoři specifikace aktivně hledají nadšené vývojáře, kteří by API vyzkoušeli a poskytli zpětnou vazbu ke specifikaci a implementaci.

Omezená verze rozhraní Web Bluetooth API je k dispozici v systémech ChromeOS, Chrome pro Android 6.0, Mac (Chrome 56) a Windows 10 (Chrome 70). To znamená, že byste měli být schopni dotazovat se a připojit se k blízkým zařízením Bluetooth Low Energy, číst a zapisovat charakteristiky Bluetooth, přijímat oznámení GATT, vědět, kdy je zařízení Bluetooth odpojeno, a číst a zapisovat popisy Bluetooth. Další informace najdete v tabulce kompatibility prohlížečů na MDN.

Pro Linux a starší verze Windows povolte příznak #experimental-web-platform-features v about://flags .

Dostupné pro testování v rámci schématu Origin Trial

Chcete-li získat co nejvíce zpětné vazby od vývojářů, kteří používají rozhraní Web Bluetooth API ve volné přírodě, Chrome dříve přidal tuto funkci do Chrome 53 pro testování Origin Trial na ChromeOS, Android a Mac.

Testy byly úspěšně dokončeny v lednu 2017.

Bezpečnostní požadavky

Abyste porozuměli bezpečnostním kompromisům, doporučuji přečíst si tento příspěvek o modelu zabezpečení Web Bluetooth od Jeffreyho Jaskina, softwarového inženýra v týmu Chrome, který pracuje na specifikaci rozhraní Web Bluetooth API.

pouze HTTPS

Protože je toto experimentální rozhraní API novou výkonnou funkcí přidanou na web, je k dispozici pouze v zabezpečených kontextech. To znamená, že projekt musí být organizován na základě požadavků protokolu TLS.

Je vyžadováno uživatelské gesto

Z bezpečnostních důvodů musí být zjišťování zařízení Bluetooth pomocí navigator.bluetooth.requestDevice spuštěno uživatelským gestem, jako je klepnutí nebo kliknutí myší. Hovoříme o poslechu událostí pointerup , click a touchend.

button.addEventListener('pointerup', function(event) // Вызываем navigator.bluetooth.requestDevice >); 

Pojďme ke kódu

Web Bluetooth API silně spoléhá na sliby JavaScriptu. Pokud je neznáte, podívejte se na tohoto skvělého průvodce sliby. Také: () => jsou pouze funkce šipek ECMAScript 2015.

Dotaz na zařízení Bluetooth

Tato verze specifikace rozhraní Web Bluetooth API umožňuje webům spuštěným v roli Central připojit se ke vzdáleným serverům GATT prostřednictvím připojení BLE. Je podporována komunikace mezi zařízeními, která implementují Bluetooth 4.0 nebo novější.

Přečtěte si více
Instalace čidel požární signalizace: udělat svépomocí nebo na klíč?

Když web požaduje přístup k blízkým zařízením pomocí navigator.bluetooth.requestDevice , prohlížeč zobrazí seznam zařízení, kde může uživatel vybrat jedno zařízení nebo požadavek zrušit.

Doporučuji také podívat se na oficiální stránku Jak protokolovat chyby webového Bluetooth, protože ladění Bluetooth může být občas složité.

Upozornění: Současné čtení a zápis charakteristik Bluetooth může způsobit chyby v závislosti na platformě. V případě potřeby důrazně doporučuji ručně zařadit požadavky na transakce GATT do fronty. Viz “Probíhá operace GATT – jak ji zvládnout?”

Co je další

Nejprve zkontrolujte stav implementace prohlížeče a platformy, abyste viděli, které části rozhraní Web Bluetooth API jsou aktuálně implementovány.

Rozhraní ještě není dokončeno, ale zde je krátký náhled toho, co se očekává v blízké budoucnosti:

  • Vyhledávání reklam BLE v okolí bude provedeno pomocí navigator.bluetooth.requestLEScan() .
  • Nová událost serviceadded bude sledovat nově objevené služby Bluetooth GATT, zatímco událost serviceremoved bude sledovat ty odstraněné. Nová událost servicechanged bude spuštěna, když bude jakákoli charakteristika nebo deskriptor přidána nebo odebrána ze služby Bluetooth GATT.

Podporujte API

Plánujete používat Web Bluetooth API? Vaše veřejná podpora pomáhá týmu Chrome upřednostňovat funkce a ukazuje ostatním dodavatelům prohlížečů, jak je důležité je podporovat.

Tweetujte @ChromiumDev pomocí hashtagu #WebBluetooth a řekněte nám, kde a jak jej používáte.

Ресурсы

  • Stack Overflow: https://stackoverflow.com/questions/tagged/web-bluetooth
  • Stav funkce Chrome: https://www.chromestatus.com/feature/5264933985976320
  • Chyby implementace Chrome: https://crbug.com/?q=component:Blink>Bluetooth.
  • Specifikace webového Bluetooth: https://webbluetoothcg.github.io/web-bluetooth
  • Problémy se specifikací: https://github.com/WebBluetoothCG/web-bluetooth/issues
  • Aplikace BLE Peripheral Simulator: https://github.com/WebBluetoothCG/ble-test-peripheral-android

Poděkování

Děkujeme Casey Basquesovi za recenzi tohoto článku. Banner s laskavým svolením SparkFun Electronics, Boulder, USA.

Pokud není uvedeno jinak, obsah této stránky je licencován pod licencí Creative Commons Attribution 4.0 a ukázky kódu jsou licencovány pod licencí Apache 2.0. Více podrobností je napsáno v pravidlech webu. Java je registrovaná ochranná známka společnosti Oracle Corporation a jejích přidružených společností.

Poslední aktualizace: 2015 UTC.

Mnoho oComplicatedTooManySteps”,”thumb-down”],[“Out of Date”,”outOfDate”,”thumb-down”],[“Problém s překladem textu”,”translationIssue”,”thumb-down”],[“Ukázky/problémy s kódem”,”samplesOtherdown”otherdown”,””,”samplesOtherDown”,”thumb-down”], ],[“Naposledy aktualizováno: 2015-07-21 UTC.»],[],[]]

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button