2015-05-08 11 views
8

Desidero essere in grado di inviare notifiche desktop all'utente (non all'interno della finestra del browser) e so che devo dare all'utente la scelta di aprire la domanda di dialogo in chrome.Notifiche desktop HTML5 (idealmente con Angular)

Sto utilizzando lo stack MEAN e uso browserify/bowserify sul frontend e posso utilizzare i pacchetti bower o npm sul lato client. Io uso il pattern CommonJS, quindi mi aiuterebbe a capire se la soluzione o gli esempi erano in quel formato, o più facile da spostare in quel formato.

Quale sarebbe il modo migliore per avvicinarsi a questo, c'è un plugin Angolare/Reagito per questo (che devo ammettere che non riesco a trovarmi).

Ho solo bisogno di mostrarlo uno alla volta, e sarei felice di mostrare solo l'ultimo e rimuovere automaticamente ciò che è lì, e idealmente una soluzione cross browser (può essere l'ultima versione solo se necessario).

Tutte le idee sono benvenute.

risposta

10

Per chiarire intendo una soluzione di front-end. Tuttavia mi sono imbattuto in questo, che ho modificato e migliorato.

Questo è un semplice JavaScript per chiarezza, userò alcuni dei miei metodi per collegarlo ad Angular.

document.addEventListener('DOMContentLoaded',function(){ 
document.getElementById('notifyButton').addEventListener('click',function(){ 

    if(! ('Notification' in window)){ 
     console.log('Web Notification not supported'); 
     return; 
    } 

    Notification.requestPermission(function(permission){ 
      var notification = new Notification("Title",{body:'HTML5 Web Notification API',icon:'http://i.stack.imgur.com/Jzjhz.png?s=48&g=1', dir:'auto'}); 
      setTimeout(function(){ 
       notification.close(); 
      },3000); 
     }); 
    }); 
}); 
0

Utilizzare il modulo node notifier. Ovviamente è solo sul lato server.

var notifier = require('node-notifier'); 
notifier.notify({ 
    title: 'Title', 
    message: 'Message' 
}, function(err, resp) { 
    if(err) { 
     console.log(err); 
    } 
});