L'API Web Serial est compatible avec la communication avec les services RFCOMM sur les appareils Bluetooth Classic associés à partir de Chrome 117 sur ordinateur. Par exemple, cela permet aux écouteurs sans fil d'utiliser RFCOMM pour gérer les paramètres audio et les mises à jour du micrologiciel. Pour en savoir plus, consultez la section Série sur Bluetooth sur le Web.
À partir de Chrome 130 pour ordinateur, une amélioration de l'API Web Serial permet aux applications Web de détecter quand un port série Bluetooth RFCOMM est disponible, sans avoir à l'ouvrir. Cela évite les reconnexions inutiles lorsque l'appareil sans fil a été intentionnellement déconnecté.
Lorsqu'un appareil sans fil se trouve hors de portée de l'hôte, tout port série sans fil ouvert par une application Web se ferme automatiquement. Dans ce cas, l'application Web peut tenter de rouvrir le port avec la méthode SerialPort open(). Toutefois, si l'appareil sans fil a été intentionnellement déconnecté (par exemple, par l'utilisateur depuis le panneau de configuration du système d'exploitation), l'application Web doit s'abstenir de rouvrir le port pour éviter de se reconnecter à l'appareil sans fil.
En exposant l'état de connexion logique de l'appareil sans fil hébergeant le port série sans fil via un nouvel attribut SerialPort connected booléen, les applications Web peuvent désormais distinguer ces cas et ne se reconnecter que si la déconnexion n'était pas intentionnelle.
L'attribut SerialPort connected est défini sur "true" pour les ports série sans fil si l'appareil sans fil hébergeant le port dispose de connexions actives au système. Pour les ports série filaires, il est défini sur "true" si le port est physiquement connecté au système.
L'extrait de code suivant vous montre comment vérifier quels appareils sont disponibles et comment vous y connecter automatiquement.
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.
}
}
Auparavant, seuls les ports série filaires distribuaient des événements de connexion et de déconnexion. Les ports série Bluetooth RFCOMM distribuent désormais ces événements lorsque le port est connecté ou déconnecté de manière logique.
Démo
Ressources
Remerciements
Merci à Jack Hsieh et Reilly Grant pour leurs commentaires.