notifica Sto leggendo documenti di Apple suspinta movimentazione
Handling Local and Remote Notifications
e sembra a me per avere dichiarazioni contrastanti. Qualcuno può chiarire questi punti di confusione? Parliamo rigorosamente di notifica remota (rispetto a locale) per ora.
I documenti dicono che se viene premuto il pulsante di azione sulla notifica, richiama l'applicazione: didFinishLaunchingWithOptions e passa nel carico utile della notifica. Più avanti dice che se l'app è in esecuzione in primo piano, invia la notifica tramite l'applicazione: didReceiveRemoteNotification :. Ciò implica che quando l'app è in background o non è in esecuzione, viene chiamata l'applicazione: didFinishLaunchingWithOptions. Altrimenti, l'applicazione: didReceiveRemoteNotification: viene chiamata.
Più tardi, c'è un iOS Nota dicendo quanto segue:
"iOS Nota: In iOS, è possibile determinare se un'applicazione viene avviata a seguito del l'utente toccando il pulsante di azione o se la notifica è stata consegnata all'applicazione già in esecuzione esaminando lo stato dell'applicazione Nell'applicazione del delegato dell'applicazione: didReceiveRemoteNotification: o application: didReceiveLocalNotification: metodo, ottenere il valore della proprietà applicationState e valutarlo.Se il valore è UIApplicationStateInactive, l'utente ha toccato il pulsante di azione; se il valore è UIApplicationStateActive, l'applicazione era in primo piano quando ha ricevuto la notifica. "
Questo implica che l'applicazione: didReceiveRemoteNotification: viene chiamata sia quando l'app è già in primo piano, sia se l'utente preme il pulsante di azione (o fa scorrere il cursore di azione in iOS 5) in primo piano/avvia l'app.
L'origine della mia confusione potrebbe essere con la prima parte in cui i documenti implicano che il carico utile di notifica viene inviato con l'applicazione: didFinishLaunchingWithOptions: metodo o con un fraintendimento di un'applicazione "in esecuzione" (è un'app in background considerata " in esecuzione"?). La documentazione per l'applicazione: didReceiveRemoteNotification: afferma che è chiamato per le applicazioni "in esecuzione".
Quindi, per riassumere, potrei avere chiarimenti su:
1) è l'applicazione: didReceiveRemoteNotification: sempre chiamato quando l'applicazione è in foreground o quando l'utente sceglie di "agire" sulla notifica? In caso negativo, come possiamo dare un senso alla nota iOS sulla determinazione dello stato dell'applicazione attivo o inattivo?
2) Un'app in background è "in esecuzione", almeno nel senso dei documenti che richiedono l'applicazione: didReceiveRemoteNotification viene chiamato per l'esecuzione di app?
3) Per il completamento, è un'applicazione in background UIApplicationStateInactive o Active?
Posso ottenere un segno di spunta? – ch3rryc0ke