This is an old revision of the document!
JavaScript: Notification API
E' già da qualche anno che il browser non è solo uno strumento per cercare informazioni ma è diventato una parte fondamentale della nostra vita quotidiana su internet. Dalle semplici pagine statiche degli anni 90, siamo passati a complesse applicazioni che si stanno equiparando alle applicazioni native presenti sui nostri PC o devices.
Oggi parliamo delle Notification API. Come suggerisce il nome le Notification API permettono di inviare al visitatore di una pagina web o applicazioni, una notifica (generalmente una pop-up sul desktop vicino all'area di notifica) come ad esempio l'arrivo di un nuovo messaggio o il cambio di uno stato nell'applicazione.
Le specifiche di riferimento sono state rilasciate dallo WHATWG 1) come living-standard e dal W3C 2) come raccomandazione.
Ma vediamola in azione…
In action
Hello, World!
Entrambe le specifiche utilizzano l'oggetto/costruttore Notification
per inviare la notifica al visitatore. Un esempio di base da utilizzare nei nostri script può essere:
new Notification('Hello, World!');
Chiediamo il permesso
Se proviamo a eseguire questo pezzo di codice non vedremo un bel niente, questo perchè è necessario chiedere il “permesso” al visitatore per potergli inviare una notifica. La Notification API mette a disposizione una proprietà chiamata Notification.permission
dove è impostato se il visitatore ha espresso o meno la facolta di ricevere la notifica. I valori che questa proprietà può assumere sono:
default | Il visitatore ancora non ha scelto se ricevere la notifica dalla pagina web |
---|---|
granted | Il visitatore ha scelto di voler ricevere la notifica dalla pagina web |
denied | Il visitatore ha scelto di non voler ricevere la notifica dalla pagina web |
Pertanto il codice di prima dovrà essere modificato così:
Notification.requestPermission(function(permission) { if (permission === 'granted') { var notification = new Notification('Hello, World!'); } });
In questo modo comparirà una pop-up sul browser per chiedere all'utente se vuole ricevere una notifica dalla pagina web.
Un esempio completo
Un esempio più completo può essere:
function notify(title, options) { options = options || {}; // Controlla che il browser supporta le Notification API if (!("Notification" in window)) { alert("Questo browser non supporta le notifiche desktop"); } // Controlla che siano già stati dati i permessi per inviare la notifica else if (Notification.permission === "granted") { var notification = new Notification(title, options); } // Altrimenti chiede all'utente di accettare o meno le notifiche else if (Notification.permission !== 'denied') { Notification.requestPermission(function (permission) { if (permission === "granted") { var notification = new Notification(title, options); } }); } }
Supporto nei browser
Le Notification API sono implementate con un buon supporto in Mozilla Firefox, Chrome, Chromium, Safari ed Opera. Non è ancora presente l'implementazione in Internet Explorer (forse farà la comparsa su Edge).