2015-08-29 26 views
9

Ho bisogno di un modo per ricevere una notifica push silenziosa e quindi di visualizzare una notifica locale (in modo da poter elaborare i dati prima di visualizzarli all'utente) C'è un modo per farlo? didReceiveNotification viene chiamato solo in primo piano. Credo che l'app venga lanciata in background dopo aver ricevuto push. Tuttavia, non sembra esserci una soluzione per quando l'app viene uccisa.C'è un modo per risvegliare un'app per iOS quando si riceve una notifica push anche quando viene ucciso

EDIT Sono a conoscenza di PushKit ma la mia app non è un'app VOIP, è un'app per la messaggistica immediata.

risposta

11

È possibile utilizzare il metodo UIApplicationDelegatedidReceiveRemoteNotification: per ricevere un push "silenzioso" quando l'app è in primo piano o sullo sfondo, ma se l'app viene interrotta (forzata dallo switcher), non è possibile ricevere il messaggio notifica nella tua app. Il carico utile di notifica (se presente) verrà comunque visualizzato all'utente, dando loro la possibilità di avviare la tua app dalla notifica.

La documentazione per questo metodo delegato afferma:

Inoltre, se è stata attivata la modalità di sfondo notifiche a distanza, il sistema lancia la vostra applicazione (o si sveglia dallo stato sospeso) e lo mette in lo stato di sfondo quando arriva una notifica remota . Tuttavia, il sistema non avvia automaticamente la tua app se l'utente ha forzato la chiusura. In tale situazione, l'utente deve rilanciare la vostra applicazione o riavviare il dispositivo prima che il sistema tenta di lanciare la vostra applicazione di nuovo automaticamente

+0

io non sono d'accordo con la sua dichiarazione: _ ", ma se la vostra applicazione è ucciso (forza- uscire dallo switcher) quindi non c'è modo di ricevere la notifica. "._ Se l'app viene uccisa, potremo comunque ricevere la notifica. Correggimi se ho torto .. – NSPratik

+2

Non è la mia affermazione in quanto tale. È Apple - guarda il testo citato. Ovviamente la notifica verrà inviata al dispositivo, ma non al metodo delegato dell'app. – Paulw11

+1

@ Paulw11 dice corretto quando l'app viene uccisa, la notifica viene ricevuta ma il delegato non chiamerà. La sua normale notifica push. E se la nostra app è in stato di sfondo, allora l'applicazione : handleActionWithIdentifier: forRemoteNotification: completionHandler: il metodo chiamerà – Bevan