В некоторых случаях мое приложение IOS должен вызвать мультипликатор UILocalNotification
в одновременно. Я хочу решить, к какому пользователю щелкнул UILocalNotification
. Когда пользователь нажимает на UILocalNotification
, приложение неактивно или в фоновом режиме. Проблема заключается в том, что методDetect, из которого UILocalNotification приложение было открыто
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
вызывается для каждого срабатывает UILocalNotification
. Поэтому, когда приложение становится активным, этот метод вызывается несколько раз, так как я получил несколько UILocalNotification
. Есть ли способ определить, какая из UILocalNotification
была причиной открытия приложения? Проверка applicationState не работает, поскольку все UILocalNotification
были получены, когда приложение было неактивным или в фоновом режиме.
Большое спасибо!
Редактировать: В качестве далекого примера: когда вы получаете сообщение WhatsApp из двух разных групп A и B и выбираете push-уведомление из группы A, это будет отображаться сразу после того, как приложение откроется. Разница между WhatsApp и моим вариантом использования заключается в том, что у меня есть локальные уведомления.
По моему опыту (а я просто написал небольшой тест приложение, которое планирует три UILocalNotifications с тем же fireDate, когда приложение закрыто, чтобы проверить это), когда пользователь нажимает на данную тревоге в их экране уведомления, таким образом, запуск приложения, единственная UILocalNotification, которая передается методу didReceiveNotifications UIApplication, - это тот, на который пользователь нажал. Поэтому я не совсем понимаю ваш вопрос. – vaticRite
Он не отвечает на ваш вопрос, но как насчет того, чтобы иметь только одно локальное уведомление (т. Е. Отменить предыдущие). Если вы это сделаете, вы можете отслеживать словарь пользовательской информации уведомления для последующего использования, когда приложение становится активным. В случае, если вам все еще требуется несколько локальных уведомлений, можно ли это как-то сгруппировать? Если да, вы можете подготовить вид массива словарей userInfo для его потребления, когда приложение станет активным. – atxe
Невозможно использовать словарь userinfo, чтобы выяснить, какое уведомление было открыто, и проверить, что в didRecieveLocalNotif, –