Interfejs Web Serial API obsługuje komunikację z usługami RFCOMM na sparowanych urządzeniach Bluetooth Classic w Chrome 117 na komputerze. Dzięki temu słuchawki bezprzewodowe mogą na przykład używać RFCOMM do zarządzania ustawieniami dźwięku i aktualizacjami oprogramowania. Aby dowiedzieć się więcej, zapoznaj się z artykułem Serial over Bluetooth w internecie.
W Chrome 130 na komputery PC ulepszenie interfejsu Web Serial API umożliwia aplikacjom internetowym wykrywanie dostępności portu szeregowego Bluetooth RFCOMM bez konieczności jego otwierania. Zapobiega to niepotrzebnym ponownym połączeniom, gdy urządzenie bezprzewodowe zostało celowo odłączone.
Gdy urządzenie bezprzewodowe znajdzie się poza zasięgiem hosta, wszystkie bezprzewodowe porty szeregowe otwarte przez aplikację internetową zostaną automatycznie zamknięte. W takich przypadkach aplikacja internetowa może spróbować ponownie otworzyć port za pomocą metody SerialPort open()
. Jeśli jednak urządzenie bezprzewodowe zostało celowo odłączone (np. przez użytkownika w panelu sterowania systemu operacyjnego), aplikacja internetowa nie powinna ponownie otwierać portu, aby zapobiec ponownemu nawiązaniu połączenia z tym urządzeniem.
Dzięki udostępnieniu logicznego stanu połączenia urządzenia bezprzewodowego hostującego port szeregowy bezprzewodowy za pomocą nowego atrybutu logicznego SerialPort connected
aplikacje internetowe mogą teraz rozróżniać te przypadki i nawiązywać połączenie tylko wtedy, gdy rozłączenie było niezamierzone.
Atrybut SerialPort connected
ma wartość true w przypadku bezprzewodowych portów szeregowych, jeśli bezprzewodowe urządzenie hostujące port ma aktywne połączenia z systemem. W przypadku przewodowych portów szeregowych wartość jest Prawda, jeśli port jest fizycznie podłączony do systemu.
Ten fragment kodu pokazuje, jak sprawdzić, które urządzenia są dostępne, i potencjalnie połączyć się z nimi automatycznie.
const ports = await navigator.serial.getPorts();
for (const port of ports) {
if (port.connected) {
// Automatically try to connect to the Bluetooth device.
await port.open({ baudRate: 9600 });
} else {
// Otherwise, when the port is not logically connected:
// 1. Prompt the user to make sure the Bluetooth device is available.
// 2. Show a "connect" button to try opening the port.
}
}
Wcześniej tylko przewodowe porty szeregowe wysyłały zdarzenia connect i disconnect. Porty szeregowe Bluetooth RFCOMM wysyłają teraz te zdarzenia, gdy port jest logicznie połączony lub rozłączony.
Prezentacja
Zasoby
Poświadczenia
Dziękujemy Jackowi Hsiehowi i Reilly Grantowi za opinie.