In alcuni casi la mia applicazione iOS ha da innescare multipla UILocalNotification
allo stesso tempo . Voglio decidere quale utente ha fatto clic su UILocalNotification
. Quando un utente fa clic su un UILocalNotification
l'applicazione era inattiva o in background. Il problema è che il metodoRilevare dalla quale UILocalNotification un'applicazione è stata aperta
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
viene chiamata per ogni innescato UILocalNotification
. Quindi, quando l'applicazione diventa attiva, questo metodo viene chiamato più volte da quando ho ricevuto più UILocalNotification
. C'è un modo per determinare quale UILocalNotification
è stata la causa per l'apertura dell'app? Un controllo di applicationState non funziona poiché tutti gli UILocalNotification
sono stati ricevuti quando l'applicazione era inattiva o in background.
Grazie mille!
Modifica: Modifica: Come esempio remoto: quando si riceve un messaggio di WhatsApp da due gruppi diversi A e B e si seleziona la notifica push dal gruppo A, questo verrà immediatamente visualizzato dopo l'apertura dell'applicazione. La differenza tra WhatsApp e il mio caso d'uso è che ho notifiche locali.
Nella mia esperienza (e ho appena scritto un piccolo test app che gli orari tre UILocalNotifications con lo stesso fireDate quando l'applicazione è chiusa per testare questo), quando l'utente tocca un dato avviso nella loro schermata di notifica, in tal modo avviando l'app, l'unica UILocalNotification che viene passata al metodo didReceiveNotifications di UIApplication è quella che l'utente ha sfruttato. Quindi non sto capendo la tua domanda. – vaticRite
Non risponde alla tua domanda, ma che dire di avere una sola notifica locale (ad esempio cancellando quelle precedenti). Se lo fai, puoi tenere traccia del dizionario userinfo della notifica per un consumo successivo quando l'app diventa attiva. Nel caso in cui hai ancora bisogno di più notifiche locali, sarebbe un'opzione per raggrupparlo in qualche modo in uno solo? Se sì, puoi preparare una specie di array di dizionari userInfo per il suo consumo quando l'app diventa attiva. – atxe
Non puoi usare il dizionario utente per capire quale notifica è stata aperta e controllare in didRecieveLocalNotif, –