Ho un'applicazione iOS 5.1 che si registra al servizio APNS per ricevere notifiche. Il registro ha esito positivo e ricevo correttamente le notifiche. Il problema si presenta quando provo a gestire le notifiche.Come posso gestire le notifiche push non lette in iOS?
Una volta che l'applicazione è in esecuzione, il metodo didReceiveRemoteNotification
in AppDelegate viene chiamato correttamente e quindi la notifica viene gestita come previsto. Questo, tuttavia, si verifica solo quando l'applicazione è in esecuzione in primo piano.
Tuttavia, quando l'applicazione è in esecuzione in background o viene semplicemente interrotta, tale metodo non viene chiamato. Ho letto che è necessario aggiungere alcune linee al metodo metodo didFinishLaunchingWithOptions
per ottenere la notifica dal dizionario userInfo
e gestirlo. Funziona bene, ma SOLO quando l'applicazione viene aperta facendo clic sulla notifica nel Centro di notifica. Ciò significa che se apri l'applicazione facendo clic sul suo badge o semplicemente modificando il contesto se lo stavi eseguendo sullo sfondo, l'app non si rende mai conto che è arrivata una notifica. Inoltre, se è stata ricevuta più di una notifica, possiamo gestisci solo uno di essi contemporaneamente facendo clic sul Centro di notifica, che è un dolore :-)
C'è un modo per leggere le notifiche in sospeso nel Centro di notifica? So che c'è un modo per svuotarli usando il metodo cancelAllLocalNotifications
ma non ho trovato il modo di leggerli. E ho davvero bisogno di gestirli tutti. Ho pensato di implementare un protocollo di comunicazione con il server di notifica di terze parti per recuperare nuovamente le informazioni quando l'applicazione arriva in primo piano, ma dal momento che le informazioni sono già nel sistema operativo troverei strano se fosse impossibile accedervi in qualche modo.
Quindi, qualcuno sa come farlo? Grazie in anticipo.
Ciò che è certo è che le notifiche push non sono garantite per arrivare. Forse sto sprecando il mio tempo cercando di leggerli dal servizio di notifica, perché non posso anche essere sicuro che contenga tutte le informazioni che desidero. Comunque ho bisogno di sapere se c'è un modo per farlo, prima di scartare qualsiasi soluzione ... – Bartserk
I tuoi sono corretti. Per quanto ne so, non c'è altra soluzione oltre al recupero dal lato server. –