A API Web Serial oferece suporte à comunicação com serviços RFCOMM em dispositivos Bluetooth Classic pareados a partir do Chrome 117 para computadores. Por exemplo, isso permite que fones de ouvido sem fio usem RFCOMM para gerenciar configurações de áudio e atualizações de firmware. Confira Serial over Bluetooth na Web para saber mais.
No Chrome 130 para computador, uma melhoria na API Web Serial permite que os apps da Web detectem quando uma porta serial RFCOMM Bluetooth está disponível, sem precisar abrir a porta. Isso evita reconexões desnecessárias quando o dispositivo sem fio foi desconectado intencionalmente.
Quando um dispositivo sem fio sai do alcance do host, qualquer porta serial sem fio aberta por um app da Web é fechada automaticamente. Nesses casos, o app da Web pode tentar reabrir a porta com o método SerialPort open()
. No entanto, se o dispositivo sem fio foi desconectado intencionalmente (por exemplo, pelo usuário no painel de controle do sistema operacional), o app da Web não deve reabrir a porta para evitar a reconexão com o dispositivo sem fio.
Ao expor o estado de conexão lógico do dispositivo sem fio que hospeda a porta serial sem fio usando um novo atributo booleano SerialPort connected
, os apps da Web agora podem distinguir esses casos e se reconectar apenas se a desconexão foi intencional.
O atributo SerialPort connected
será verdadeiro para portas seriais sem fio se o dispositivo sem fio que hospeda a porta tiver conexões ativas com o sistema. Para portas seriais com fio, é verdadeiro se a porta estiver fisicamente conectada ao sistema.
O snippet a seguir mostra como verificar quais dispositivos estão disponíveis e se conectar a eles automaticamente.
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.
}
}
Antes, apenas as portas seriais com fio enviavam eventos de conexão e desconexão. As portas seriais Bluetooth RFCOMM agora enviam esses eventos quando a porta fica logicamente conectada ou desconectada.
Demonstração
Recursos
Agradecimentos
Agradecemos a Jack Hsieh e Reilly Grant pelas avaliações.