Есть ли способ узнать, когда пуш-уведомление срабатывает, когда пользователь находится в приложении [...]?
Для этого я всегда понимал, что
application:didReceiveRemoteNotification
вызывается для каждого уведомления, полученного после запуска приложения, даже если оно находится на переднем плане.Хотя у меня не было необходимости делать это (и я не могу подтвердить это сейчас), поэтому я обращаюсь только к теории.Но вот что я могу понять из следующего: Руководство по локальным и push-уведомлениям .
iOS Примечание. В iOS можно определить, будет ли приложение запущено в результатепользователь нажал кнопку действия или было ли доставлено уведомление в уже работающее приложение, изучив состояние приложения.В реализации делегата приложения: didReceiveRemoteNotification: или application: didReceiveLocalNotification: метод, получите значение свойства applicationState и оцените его.Если значение UIApplicationStateInactive, пользователь нажал кнопку действия;если значением является UIApplicationStateActive, приложение было на первом месте, когда оно получило уведомление .
для
Есть ли способ определить, когда [...] (пользователь) выбирает более старый push из своего центра уведомлений?
Для этого вы можете добавить переменную порядка (или времени) в свою полезную нагрузку, чтобы можно было понять, если пользовательвыбирает / активирует приложение через толчок старше, чем предыдущий.Проверьте на этой странице , чтобы узнать больше о добавлении дополнительных данных в Push-уведомление.