Я планирую, чтобы локальное уведомление прекращалось через 6 минут, когда пользователь вводит определенную геолокацию, если они остаются в этом месте.Как я могу обновить/удалить уведомление из центра уведомлений?
Это планируется так:
UILocalNotification n = new UILocalNotification();
n.FireDate = NSDate.FromTimeIntervalSinceNow(360);
n.AlertAction = "My notification";
n.AlertBody = "Notification body";
UIApplication.SharedApplication.ScheduleLocalNotification(n);
В некоторых случаях определенные geolocations накладываются друг на друга, и пользователь будет получать больше, чем одно уведомление. Когда это произойдет, я хотел бы иметь возможность обновлять уведомление в центре уведомлений, чтобы это отразить.
Мне сообщили, что прямое обновление в центр уведомлений невозможно в iOS9, поэтому для достижения того, что я хочу, мне нужно будет удалить уведомление и заменить его новым.
С нескольких часов работы в Интернете я нашел следующие методы, все из которых не работали.
UIApplication.SharedApplication.CancelAllLocalNotifications();
Эта функция, похоже, ничего не делает в текущей версии iOS.
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 1;
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
Некоторые упомянули, что номер значка должен быть сначала установлен, а затем сделан нуль для удаления уведомлений из центра уведомлений. Это также не имело никакого эффекта.
foreach(UILocalNotification n in UIApplication.SharedApplication.ScheduledLocalNotifications)
{
UIApplication.SharedApplication.CancelLocalNotification(n);
}
Для некоторых, которые обнаружили, что CancelAllNotifications
не работали пробовали выше метод. Это также, казалось, не имело никакого эффекта. Если это помогает, я попробовал зарегистрировать счет ScheduledLocalNotifications
, пока в центре уведомлений были уведомления, но массив вернулся пустым.
List<UILocalNotifications> notifications = new List<UILocalNotifications>();
...
UIApplication.SharedApplication.ScheduleLocalNotification(n);
notifications.Add(n);
...
foreach(UILocalNotification n in notifications)
{
UIApplication.SharedApplication.CancelLocalNotification(n);
}
Другой пользователь предложил ухватиться за оригинальные уведомления, а затем использовать их, чтобы отменить их, когда это необходимо для дальнейшего использования. Снова мне не повезло с этим.
Ответы в Objective-C или Swift также будут высоко оценены, я могу понять любой из этих языков.
Хотите удалить конкретное уведомление или все другие уведомления о приложении из центра уведомлений – Chetan
@Chetan Я хотел бы удалить все другие уведомления, которые пришли из моего приложения. – Kizari
Вы пытаетесь удалить уведомления в фоновом режиме или переднем плане – Chetan