2015-02-13 14 views
5

In pratica voglio rendere visibili più notifiche push nella stessa applicazione nella barra delle notifiche in iOS.Notifiche push multiple Apple non visibili nel vassoio delle notifiche

Questo scenario funziona se i miei dati sono attivi mentre la notifica push viene attivata tramite APNS, ma solo l'ultimo è ricevuto nel caso in cui sia offline e torni dopo un po '. Questa funzionalità è affermata dalla documentazione di APNS.

Tuttavia, questo è ciò che ha funzionato in WhatsApp:

  1. Turned connessione dati OFF
  2. inviato alcuni messaggi a WhatsApp
  3. Acceso connessione dati su
  4. Saw più notifiche push ricevute in barra di notifica di Apple

Come funziona questo scenario? Posso usare APNS per questo? Se sì, allora come?

Vedere this sample image di più notifiche push in WeChat.

risposta

5

Come voi ha scritto nella sua interrogazione, questo è menzionato in Apple Documenti:

Se si invia notifiche multiple per lo stesso dispositivo o computer entro un breve periodo di tempo, il servizio Push invierà solo l'ultimo.

Link

L'unica scenario che quello che stai descrivendo funzionerà è se il WhatsApp era aperta in background mentre ottenere quelle push notifications. In questo modo, whatsApp li gestirà come local notifications e li presenterà tutti nel centro notifiche. Se whatsApp fosse chiuso riceverai solo l'ultima notifica come qualsiasi altra app.

Si può facilmente verificare questa:

  1. Terminate WhatsApp e accendere Airplane mode.
  2. Invia il tuo dispositivo 5 messaggi da 1 a 5.
  3. Disattiva Airplane mode e blocca il dispositivo.
  4. Vedrai solo un msg (l'ultimo che hai inviato alias "5") nel tuo notifications center.

Questo è come WhatsApp sta facendo funzionare:

Mentre WhatsApp è in background, una singola notifica push ricevuto (l'ultima l'utente inviato, "5" nel nostro esempio). Questo messaggio non verrà mostrato all'utente.

whatsApp lo riceve nel metodo application:didReceiveRemoteNotification:fetchCompletionHandler: e controlla i propri server se ci sono delle notifiche precedenti a "5" che l'utente non ha ricevuto. In tal caso, estraggono tali dati dai loro server e lo presenteranno all'utente utilizzando local notifications, che in pratica è solo un modo per presentare i dati e non tutti gli APN.

+0

: Ho provato questo su whtsapp girando connessione dati via e tornare in linea dopo un po '(Durante questo periodo non ci vorrà importa se whtsapp era in fondo), ma ancora recieved tutto notifications.It spinta potrebbe non essere utilizzando APN ma poi come lo stanno realizzando è quello che ho bisogno di sapere. – Geek

+0

Ho modificato la risposta per rendere le cose un po 'più chiara – Segev

+0

applicazione: didReceiveRemoteNotification: fetchCompletionHandler: questo metodo non funziona in modo interrompere Stato come potremmo mai farlo, quando siamo arrivati ​​ultimo messaggio quindi richiedere e ottenere ultimi messaggi push ancora. –

-1

Come descritto non è possibile avere alcun controllo su tali notifiche push.

Tuttavia si può sapere che da iOS7 una nuova modalità di esecuzione in background (remoto notifica) consente all'applicazione di essere svegliati dal sistema quando viene ricevuto una spinta, permettendo di elaborare alcuni dati, poi tornare a dormire ...

Questo è probabilmente il trucco: con questo modo di ricevere le notifiche push (in silenzio) e quindi attivare la propria notifica locale invece, come ha detto @Segev. See the UIBackgroundModes here.