Corsi on-line

Bluetooth e interazione con JavaScript

L’API Web Bluetooth è un’interfaccia per la programmazione concepita con lo scopo di consentire l’interazione tra applicazioni e lo standard Bluetooth 4, un protocollo supportato in tutti i più recenti dispositivi mobili nonché dalle piattaforme operative dai quali vengono gestiti (Android, iOS..). Tale API è implementata soltanto parzialmente in alcuni browser tra cui Chrome e Opera, così come dovrà essere completato il suo supporto da parte del Robottino Verde, sono comunque già accessibili alcune funzionalità.

bluetoothUno dei vantaggi derivanti dall’adozione dell’API Web Bluetooth risiede nel fatto che essa può operare con un linguaggio nativamente lato client come JavaScript, ciò è possibile grazie ad un’apposita tecnologia, o meglio un servizio, denominata GATT (Generic Attribute Profile). GATT è uno standard per l’accesso alle features di un device, come per esempio la gestione dello stato di un batteria in uno smartphone o il funzionamento dei sensori biometrici in un braccialetto per il fitness.

Per poter lavorare con l’API Web Bluetooth è necessario sapere che essa opera unicamente su connessioni sicure via HTTPS, si tratta però di una caratteristica abbastanza prevedibile date le informazioni che GATT potrebbe mettere a disposizione, inoltre, gran parte dell’ecosistema delle Web API ha già rinunciato definitivamente all’interscambio “in chiaro” via HTTP.

In secondo luogo è bene tenere presente che l’interazione con l’API dovrà trovare origine dall’azione di un utente, ad esempio un evento come il click su un link o l’invio di parametri attraverso un form. Sostanzialmente parliamo di un limite tecnico dovuto al fatto che i metodi associati all’interfaccia dovranno essere esplicitamente richiamati e solo allora l’API, che quindi non lavora in background, si attiverà per fornire una risposta.

Posto di disporre di un browser che supporti l’API Web Bluetooth, essa potrà essere utilizzata tramite JavaScript con lo scopo di formulare delle interrogazioni; potremmo per esempio far ricorso all’interfaccia per ottenere il nome di un dispositivo in seguito al click su un pulsante posizionato in una pagina Web:

const pulsante = document.querySelector('#selettore-pulsante');
pulsante.addEventListener('click', function() {
	navigator.bluetooth.requestDevice({
		filters: [{
			services: ['battery_service']
		}]
	}).then(device => {
		console.log('Nome del dispositivo:', device.name);
	});
});

L’API prevede di utilizzare il metodo navigator.bluetooth.requestDevice() che consentirà tramite filtro di accedere ad un servizio specifico; nel caso del nostro esempio abbiamo utilizzato battery_service ma GATT permette l’interazione con numerosi altri processi.

Via Web Bluetooth API

Post correlati
I più letti del mese
Tematiche