2012-04-10 20 views
5

È possibile ricevere notifiche sui dispositivi mobili ogni volta che vengono generati dal server web.Notifica push nel Web mobile

Questa cosa può essere raggiunta dalle app native per iPhone e Android. Ma il mio requisito è quello di ottenere lo stesso tramite un sito web mobile. Inoltre è possibile ricevere notifiche anche se l'utente ha chiuso il browser.

+0

È ora possibile utilizzare API Web standard per l'implementazione su tutti i principali browser. Vedi http://stackoverflow.com/a/32502379/441757 – sideshowbarker

risposta

2

E 'possibile acheive, e si dispone di 2 modi principali per raggiungere questo obiettivo:

  1. WebSockets (HTML 5 richiesto)
  2. HTTP polling lungo

Entrambi i metodi richiedono alcuni server di trucco software, un buon esempio è Socket.IO in esecuzione sulla piattaforma Node.JS.

Websocket richiedono un browser HTML 5 (ad esempio, Chrome), quindi potrebbe non funzionare per le vostre esigenze.

Il polling lungo HTTP è l'atto di accettare una connessione HTTP in ingresso sul server e quindi di dormire finché non si desidera inviare i dati al client. Node.JS può essere impostato per eseguire questa operazione abbastanza facilmente oppure è possibile utilizzare Socket.IO (una libreria su Node.JS) che fornisce funzionalità aggiuntive. Socket.IO funziona anche con Websockets laddove possibile, e se necessario deve ricorrere a lunghi sondaggi.

In breve, per eseguire questa operazione è necessaria una piattaforma server. Suggerisco di guardare Socket.IO all'inizio. Puoi sempre farcela da sola dopo aver inchiodato il concetto principale. Ne ho scritto uno su ASP.net che ha funzionato abbastanza bene, per esempio.

+0

Le notifiche push arriveranno se il browser è chiuso? –

+0

no - come l'applicazione in Javascript nel browser, che non esiste più. Penso che sia necessario creare un'applicazione mobile per gestire il trasporto dei messaggi, che su Android potresti eseguire come servizio. Potresti quindi inserire il tuo dispositivo mobile HTML/JS in questa app e renderlo direttamente - o avvolgere l'intero lotto in PhoneGap ... – justacodemonkey

1

Non è possibile ricevere notifiche una volta chiusa la pagina nel browser. Le notifiche vengono attivate dalle app in esecuzione sullo sfondo del sistema operativo dello smartphone.

0

È inoltre possibile utilizzare Server Sent Events (SSE) per questo scopo. Android ICS supporta SSE, se non sbaglio. HTML5 rocks (http://www.html5rocks.com/en/tutorials/eventsource/basics/) ha un articolo su questo e indica anche una demo (http://googlecodesamples.com/html5/sse/sse.html) .

Tuttavia, nessuna di queste soluzioni (websockets, SSE) sarebbe utile se si desidera che l'app funzioni anche su dispositivi Android precedenti. Queste soluzioni non sono utili se desideri ricevere push quando la tua app non viene avviata. La soluzione migliore è creare una sorta di app ibrida come suggerito da richbayliss. Immagino che non hai davvero bisogno di PhoneGap per questo. È possibile attivare un evento utilizzando loadDataWithBaseURL di WebView