Introduzione alle WebShare API

24 ottobre 2017

La versione 61 di Chrome per Android ha portato una piacevole novità per tutti coloro che, per lavoro o diletto, realizzano applicazioni web per l’ambito mobile: le Web Share API. Questa funzionalità permette, all'interno di una web app, di sfruttare i meccanismi di condivisione nativi del dispositivo.

Prima dell'introduzione delle Web Share API, l'utente era costretto ad utilizzare il classico meccanismo di copia e incolla per poter condividere un link con un amico tramite Whatsapp o app simili, oppure per inviare un numero di cellulare via SMS.

Le Web Share API forniscono un metodo nativo e già noto all'utente per condividere URL e testi di una applicazione web tramite le diverse applicazioni installate sul proprio dispositivo, migliorando ulteriormente l'integrazione fra le applicazioni web e i device mobili.

Per poter utilizzare le Web Share API ci sono due requisiti da rispettare:

  1. L'applicazione deve essere servita tramite protocollo HTTPS. L'HTTPS è un protoccollo per la comunicazione sicura che permette di proteggere la privacy degli interlocutori e garantire l'integrità dei dati scambiati
  2. Possono essere invocate unicamente in risposta ad un'azione dell'utente. È quindi consentita una chiamata alle Share API quando, per esempio, l'utente clicca su un bottone, ma non è possibile lanciarle automaticamente in fase di caricamento della pagina web.

Vediamo ora come è possibile realizzare una semplice applicazione che, al click di un bottone, permette la condivisione di un testo e di un URL. Realizziamo un semplice file HTML che contiene un bottone:

	<!doctype html>
	<html>
	<head>
	  <meta charset="utf-8">
	  <title>Web Share Api</title>
	  <meta name="viewport" content="width=device-width">
	</head>
	<body>
	  <button type="button" id="share-button"><img src="share.png"> <span>Share</span></button>
	  <script src="index.js"></script>
	</body>

Creiamo quindi un file index.js dove inserire il codice per l'implementazione delle funzionalità di condivisione.

La prima operazione da fare è mettersi in ascolto dell'evento di click sul bottone. Per farlo, possiamo utilizzare il seguente codice:

	// Recupero il riferimento al bottone e lo salvo in una variabile
	var button = document.getElementById('share-button');
	
	// Aggiungo un listener che resta in ascolto del click
	// ed esegue la funzione specificata
	button.addEventListener('click', function(evt){
		evt.preventDefault();
		// Qui inserisco il codice per lo share
	})

Dopo esserci messi in ascolto del click possiamo procedere con il codice per condividere il contenuto desiderato.

Data la costante evoluzione del web e lo scarso supporto che i browser hanno per le Web Share API, è consigliabile, come prima azione, verificare se questa funzionalità è supportata. Per farlo possiamo inserire un'istruzione if come la seguente:

	if (navigator.share !== undefined){ 
		// Qui scriveremo l'effettivo codice per lo share 
	} else { 
		// Qui devo decidere cosa fare nel caso in cui il browser non supporti la funzionalità 
	}

Web Share API fornisce un singolo metodo share che ritorna una Promise. Il metodo share si aspetta come parametro un oggetto che contiene una o più delle seguenti proprietà: title, text, url. Se la promise viene soddisfatta, viene eseguito il codice presente all'interno del blocco then; altrimenti, viene eseguito quanto specificato all'interno del blocco catch:

	navigator.share({
		title: 'Web Share API',
		text: 'Leggi il nuovissimo articolo di HTML.it',
		url: 'http://www.html.it/'
	})
	.then( // callback chiamata se lo share avviene correttamente )
	.catch( // callback chiamata se si verifica un errore );

Una volta invocato il metodo, il dispositivo mostrerà un picker nativo per la selezione dell’applicazione da utilizzare per la condivisione delle informazioni.

Un esempio completo di codice è disponibile su GitHub. È anche possibile testare il codice, collegandosi a questo link.

Figura 1. Le Web Share API in azione (click per ingrandire)

Le Web Share API in azione

Cercando di riassumere le informazioni presentate, possiamo dire che le Web Share API facilitano la funzione di condivisione sui dispositivi mobile sfruttando le funzionalità native all'interno di una web application. È necessario prestare particolare attenzione ai vincoli (HTTPS, azione esplicita dell'utente) e allo scarso supporto che attualmente i browser forniscono.

Se vuoi aggiornamenti su Introduzione alle WebShare API inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Introduzione alle WebShare API

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy