In base ai documenti Apple, è possibile identificare il tocco dell'utente sulla notifica controllando se la variabile di stato dell'applicazione è inattiva (link).Rilevamento del tocco dell'utente sulla notifica
iOS Nota: In iOS, è possibile determinare se un'applicazione è lanciato a seguito del l'utente toccando il pulsante azione o se il notifica è stata consegnata l'applicazione già in esecuzione dal esaminando lo stato dell'applicazione . Nell'implementazione del delegato di l'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.
ma posso vedere un caso d'uso in cui v'è un sistema di allarme (da Alert sistema, voglio dire una vista avviso presentato in primo piano dell'app che è controllata da iOS) in primo piano e l'applicazione è in inattiva stato (Quando viene visualizzato un "avviso di sistema", l'app dietro viene disattivata da iOS impostando l'app application state su UIApplicationStateInactive) ma l'utente sarà comunque in grado di vedere il contenuto dell'app sullo schermo. Consultare l'allegato qui sotto:
A questo stato, se l'applicazione riceve una notifica, si comporterà come se utente premuto su di notifica. C'è una soluzione per risolvere questo caso d'uso?
Abbastanza confuso. Cosa intendi esattamente per "avviso di sistema in primo piano e l'app è in stato inattivo"? –
@HinataHyuga Nello screenshot ho un esempio di un avviso di sistema (avviso di notifica sull'app gmail) che è controllato da iOS e non dall'app dietro. A questo punto, l'app viene trattata da iOS in quanto è in stato inattivo (l'applicationstatus dell'app verrà impostato su inattivo). – Shashank
ogni volta 'applicazione: didReceiveLocalNotification:' chiamata di metodo quando hai ricevuto la notifica. – iPatel