2015-04-27 9 views
6

Attualmente sto riscontrando un problema con le notifiche push in iOS.iOS: gestione delle notifiche push silenziose quando l'app viene disattivata forzatamente dall'utente

La mia app riceve notifiche push silenziose contenenti un identificatore. Questo identificatore viene quindi utilizzato per recuperare i dati da un server remoto da cui viene creata una notifica locale.

Per quanto ne sono a conoscenza, se l'utente ha forzare lo spegnimento un app (cioè toccando due volte il tasto home e scorrere la chiusura della app) allora la notifica push in silenzio non venga trasferito sulla metodo didReceiveRemoteNotification in AppDelegate classe [1] [2], impedendo così all'app di eseguire qualsiasi tipo di elaborazione.

Ho svolto una discreta ricerca sul modo di gestire la situazione di cui sopra. Tuttavia, non è stato in grado di trovare una risposta definitiva e sperava che qualcuno potesse darmi una mano o indicarmi la giusta direzione.

TLDR: Cosa devo fare quando l'utente ha chiuso forzatamente la mia app, ma devo ancora elaborare una notifica silenziosa?

Ulteriori informazioni:
La mia app deve supportare solo iOS8 +.

[1] https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1

il carico utile di notifica
Se l'applicazione di destinazione non è in esecuzione quando la notifica arriva, il messaggio di avviso, il suono, o il valore distintivo viene riprodotto o mostrato. Se l'app è in esecuzione, il sistema invia la notifica al delegato dell'app come oggetto NSDictionary.

[2] https://stackoverflow.com/a/19202487/2472819

+0

Risposta breve: non c'è niente che puoi fare in questo caso. A mio parere, se un utente chiude forzatamente un'app, non ha il diritto di aspettarsi che l'app funzioni correttamente. –

+0

Forza-esci è un modo per uccidere un'applicazione mal funzionante, che è probabilmente il motivo per cui impedisce che vengano gestite le notifiche. Sfortunatamente alcune fonti online dicono ancora agli utenti di chiudere tutte le app, anche se questo non è necessario. –

+0

Quello che è pazzesco è che vedo un sacco di persone che chiedono di forzare le app per risparmiare batteria. anche gli sviluppatori. – joshblour

risposta

1

precedenza in iOS 7 e prima, una volta che un utente forza uscire un app, non sarà in grado di correre e di sfondo compiti a tutti, tra cui il monitoraggio posizione, notifica push gestione con content-available:1 ecc.

Tuttavia il problema è che tale comportamento non è documentato. Il motivo è che potrebbe cambiare in un nuovo aggiornamento iOS e Apple non vuole inchiodare la bara troppo presto. Come in iOS 8, viene introdotto PushKit e si suppone che sia in grado di gestire lo scenario di uscita forzata. Si prega di controllare questo tutorial per i dettagli: https://zeropush.com/guide/guide-to-pushkit-and-voip

Problemi correlati