46

Il mio obiettivo è inviare Gmail-style desktop notifications in Chrome o Firefox da un'app Web (chiamiamola X) che NON è attualmente aperta nel browser, senza richiedere all'utente di installare un'app o un'estensione. Va bene se l'utente deve concedere l'autorizzazione per ricevere notifiche da X, ed è ok se il browser deve essere aperto affinché la notifica venga visualizzata, purché X non debba essere aperto nel browser. Funzionerebbe anche una soluzione che non richiede l'apertura di alcuna finestra del browser.Invia notifiche desktop in Chrome o Firefox da un'app Web chiusa?

abbiamo appena trascorso la giornata a scavare in questo, e finora io penso ho imparato:

  • Dal OSX Mavericks, è stato possibile fare questo in Safari 7+ via Safari Push Notifications.
  • I Web Notifications API opere in Chrome/Firefox, ma richiede il browser dell'utente per essere aperto a X.
  • Twitter invia simili notifiche web senza chiedere all'utente il permesso prima, ma richiede il browser dell'utente di essere aperti a Twitter.
  • Ci sono molti riferimenti a possibili implementazioni Growl, ma per quanto posso dire, tutti richiedono l'installazione di Growl e/o di un'app abilitata per Growl.

Potrei sbagliarmi su nessuna delle mie affermazioni di cui sopra - Mi piacerebbe sentirlo! - e sono aperto a qualsiasi altra soluzione. Qualche idea?

Grazie per la lettura.

risposta

63

è possibile inviare notifiche push anche quando la tua pagina web non è attiva utilizzando Service Workers, il Notification API for service workers e la push API per le notifiche di server avviati (o scheduled notifications).

A partire da giugno 2016, i lavoratori del servizio sono supportati in Chrome, Firefox e Opera. Vedere lo stato https://jakearchibald.github.io/isserviceworkerready/

Vedere i collegamenti seguenti per discussioni correlate, stato di implementazione e specifiche.

+0

Tutte le pagine di stato a cui sei collegato sembrano sottolineare che questa funzione è disponibile su Chrome. – ubershmekel

+0

Buona risposta con molte risorse e materiali di riferimento, ma è un po 'travolgente. Esiste un esempio di registrazione di un operatore del servizio, gestione di un push HTTP e quindi visualizzazione di una notifica all'utente? – speedplane

+1

@speedplane [La risposta di collimarco] (https://stackoverflow.com/a/36129840/938089) collega ad alcuni tutorial completi. Se non ti dispiace fare affidamento sull'infrastruttura/server di Google, consulta https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web –

-16

Hai chiesto questo a noi a Growl al nostro indirizzo di supporto pure. Risponderò con quanto so come. Tuttavia ciò che si desidera è essenzialmente le notifiche push del desktop. Anche su iOS è necessario aver installato un'applicazione per poter ricevere notifiche push per quella applicazione.

La linea di fondo è che quello che stai volendo sembra essere praticamente una caccia all'oca selvaggia. Non vuoi app e nessuna scheda del browser, ma vuoi essere in grado di invadere lo spazio personale dell'utente in modo casuale. Questo non sembra giusto. Almeno con Growl la persona che usa il computer può spegnerti se trova fastidiose le tue notifiche. Lo stesso è vero con Notification Center (NC) in più installazioni attuali di OS X.

Firefox ha ora le proprie notifiche. Non so come funzionano da quando ho smesso di usare Firefox su OS X quando l'hanno fatto. Chrome ha anche le notifiche. Ma per quanto ne so, hai bisogno che la scheda sia aperta, quindi immagino che sia quello che ha fatto anche FF.

Essenzialmente parlando come utente, penso davvero che questa sia un'esperienza orribile. Hai un'app Web, dovrebbe essere un'app Web. Non è un'app desktop. Non sto dicendo che sia una cosa buona o cattiva per un'app Web essere un'app Web, ma in sostanza si sta cercando di spingere verso il basso un utente senza un permesso implicito che non mi sembra esattamente corretto.

Non conosco alcun modo per inviare una notifica con almeno un qualche tipo di applicazione in esecuzione per farlo. Be it Growl o il demone NC o qualsiasi altra cosa. In sostanza, non penso che ciò che vuoi fare sia possibile. Sarei felice di sbagliarmi, naturalmente, ma non penso di essere qui. Mi dispiace per quello

Detto questo, potresti avere una piccola applicazione con il supporto di Growl tramite il framework corrente. Se l'utente finale non ha installato Growl, sceglierà di utilizzare NC per visualizzare. Se si tratta di un sistema operativo precedente, utilizzerà Nebbia, che hai citato nell'e-mail al nostro team di supporto.

Spero che questo aiuti, o almeno ti ottenga ciò di cui hai bisogno per continuare ad andare avanti. :)

+14

Ho votato questa risposta in quanto non è utile e non risponde a questa domanda, non si dovrebbe inviare una risposta a una domanda se non si ha alcuna conoscenza delle cose che vengono poste in una domanda e nessuno ha chiesto per la tua opinione su come possono essere le notifiche buone o cattive. La domanda è "Come inviare notifiche desktop" quindi per favore, se inserisci ulteriori risposte alle domande, ricorda di rispondere alla domanda invece di dire la tua opinione su qualcosa se non chiedono la tua opinione e ti aiutano a rispondere, grazie ... – jagb

3

Si può fare esattamente quello che stai cercando per l'utilizzo del W3C push API.

Se si desidera creare tutto da zero, suggerisco di iniziare a leggere this tutorial by Google. È per Chrome, ma Firefox funziona in a very similar way.

Tuttavia è molto lavoro e lo "standard" è ancora in evoluzione: ti suggerisco di utilizzare un servizio come Pushpad.

+7

Disclaimer: questo ragazzo è il CTO di Pushpad, che è un servizio a pagamento – user1226868