Вопрос по ios – Отклонить уже доставленное UILocalNotification?

9

Можно ли сделать это?UIApplication's scheduledLocalNotifications похоже, не возвращает уведомления, которые уже были доставлены в центр уведомлений пользователя, поэтому я думаю, что это может быть сделано намеренно, но я не могу найти никаких документально подтвержденных доказательств этого.

Кто-нибудь знает?

Спасибо!

РЕДАКТИРОВАТЬ: нашел это:

You can cancel a specific scheduled notification by calling cancelLocalNotification: on the application object, and you can cancel all scheduled notifications by calling cancelAllLocalNotifications. Both of these methods also programmatically dismiss a currently

Вот:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

Тем не менее, как я могу получить ссылку на уже доставленное уведомление, еслиscheduledLocalNotifications не дает мне уведомления, которые уже были доставлены?

РЕДАКТИРОВАТЬ 2:

Вот что я пытаюсь сделать после того, как я зарегистрировал некоторые уведомления:

UIApplication *app = [UIApplication sharedApplication];

for (UILocalNotification *localNotification in app.scheduledLocalNotifications) 
{
     if (someCondition) {
            [app cancelLocalNotification:localNotification];
        }
     }
}

Проблема состоит в том, что после того, как они доставлены, они больше не находятся в «запланированных локальных уведомлениях».

Error: User Rate Limit Exceeded elsurudo
Error: User Rate Limit Exceeded rishi

Ваш Ответ

6   ответов
1

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

2

Error: User Rate Limit ExceedednothingError: User Rate Limit Exceeded

Error: User Rate Limit ExceededcancelAllNotificationsError: User Rate Limit Exceeded

UIApplication *app = [UIApplication sharedApplication];

NSLog(@"\nScheduled notif count (prior) = %d", app.scheduledLocalNotifications.count);

NSArray *scheduledNotifs = app.scheduledLocalNotifications; // hold on to a reference

[[UIApplication sharedApplication] cancelAllLocalNotifications]; // blast everything

NSLog(@"\nScheduled notif count (post-wipeout) = %d", app.scheduledLocalNotifications.count);

for (UILocalNotification *notif in scheduledNotifs) {
    [app scheduleLocalNotification:notif]; // put them back
}

NSLog(@"\nScheduled notif count (post-repopulation) = %d", app.scheduledLocalNotifications.count);

Error: User Rate Limit Exceeded

9

Error: User Rate Limit ExceededNSMutableArrayError: User Rate Limit Exceededapp.scheduledLocalNotifications. Something like this:

Error: User Rate Limit ExceededNSMutableArrayError: User Rate Limit Exceeded

NSMutableArray *currentNotifications;

Error: User Rate Limit Exceeded

currentNotifications = [[NSMutableArray alloc] init];

Error: User Rate Limit Exceeded

UILocalNotification *notification = [[UILocalNotification alloc] init];
...
[currentNotifications addObject:notification];
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];

Error: User Rate Limit Exceeded

for (UILocalNotification *notification in currentNotifications) {
    if (someCondition) {
        [[UIApplication sharedApplication] cancelLocalNotification:notification];
        [currentNotifications removeObject:notification];
    }
}
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededcurrentNotificationsError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

-(void) application:(UIApplication*)app didReceiveLocalNotification:(UILocalNotification*) notification
{
// local notification is geted
}
Error: User Rate Limit Exceeded elsurudo
4

Error: User Rate Limit ExceededUNUserNotificationCenter.

Error: User Rate Limit Exceeded

func getDeliveredNotifications(completionHandler: @escaping ([UNNotification]) -> Void)

Provides you with a list of the app’s notifications that are still displayed in Notification Center.

func removeDeliveredNotifications(withIdentifiers: [String])

Removes the specified notifications from Notification Center.

func removeAllDeliveredNotifications()

Removes all of the app’s notifications from Notification Center.

0

Error: User Rate Limit Exceeded

 [[UIApplication sharedApplication] cancelAllLocalNotifications];
Error: User Rate Limit Exceeded elsurudo

Похожие вопросы