[Javascript] Come inviare una notifica push al browser web?


Answers

Javier ha coperto le notifiche e le limitazioni attuali.

Il mio suggerimento: window.postMessage mentre attendiamo che il browser per disabili sia raggiungibile, altrimenti Worker.postMessage() continua a funzionare con Web Workers.

Queste possono essere l'opzione di fallback con il gestore di visualizzazione dei messaggi della finestra di dialogo, per quando un test della funzione di notifica fallisce o il permesso viene negato.

Controllo delle autorizzazioni con funzionalità has e negato:

if (!("Notification" in window) || (Notification.permission === "denied") ) {
    // use (window||Worker).postMessage() fallback ...
}
Question

Ho letto per poche ore su Push Notification API e Web Notification API . Ho anche scoperto che Google e Apple forniscono rispettivamente il servizio di notifica push tramite GCM e APNS.

Sto cercando di capire se possiamo implementare la notifica push ai browser utilizzando la notifica desktop, che credo sia ciò che fa l'API di notifica Web. Ho visto una documentazione di Google su come questo può essere fatto per Chrome here e here .

Ora ciò che ancora non riesco a capire è:

  1. Possiamo utilizzare GCM / APNS per inviare notifiche push a tutti i browser Web, inclusi Firefox e Safari?
  2. Se non tramite GCM possiamo avere il nostro back-end per fare lo stesso?

Credo che tutte queste risposte in una sola risposta possano aiutare molte persone che stanno avendo confusioni simili.







Presumo che tu stia parlando di notifiche push reali che possono essere consegnate anche quando l'utente non sta navigando sul tuo sito web (altrimenti controlla WebSocket o metodi legacy come il polling lungo).

Possiamo utilizzare GCM / APNS per inviare notifiche push a tutti i browser Web, inclusi Firefox e Safari?

GCM è solo per Chrome e gli APN è solo per Safari. Ogni produttore di browser offre il proprio servizio.

Se non tramite GCM possiamo avere il nostro back-end per fare lo stesso?

L'API Push richiede due backend ! Uno è offerto dal produttore del browser ed è responsabile della consegna della notifica al dispositivo. L'altro dovrebbe essere tuo (oppure puoi utilizzare un servizio di terze parti come Pushpad ) ed è responsabile per l'attivazione della notifica e per contattare il servizio del produttore del browser (ad es. GCM, APN, server push di Mozilla ).

Divulgazione: sono il fondatore di Pushpad




Posso ridefinire la tua domanda come di seguito

Possiamo avere il nostro back-end per inviare notifiche push a Chrome, Firefox, Opera e Safari?

Sì. Entro oggi (2017/05) , è possibile utilizzare la stessa implementazione lato client e server per gestire Chrome, Firefox e Opera (senza Safari). Perché hanno implementato le notifiche push Web nello stesso modo. Questo è il protocollo Push API di W3C. Ma Safari ha la sua vecchia architettura. Quindi dobbiamo mantenere Safari separatamente.

Consulta il repo del browser-push per le linee guida per implementare la notifica push web per la tua web-app con il tuo back-end. Spiega con esempi come puoi aggiungere il supporto per le notifiche push web per la tua applicazione web senza servizi di terze parti.