Я пытаюсь использовать UserNotifications Каркасы для прошивки 10.UNUserNotificationCenter Trigger не стреляя
Уведомления, кажется, отлично работает, если я не прохожу в триггере. Они сразу представлены в приложении. Но мне нужно пройти за триггер. Может ли кто-нибудь увидеть недостаток в моем коде? Это должно занять 15 секунд, но оно никогда не гаснет.
UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
content.title = [NSString localizedUserNotificationStringForKey:@"Hello!" arguments:nil];
content.body = [NSString localizedUserNotificationStringForKey:@"Hello_message_body"
arguments:nil];
content.sound = [UNNotificationSound defaultSound];
content.categoryIdentifier = @"WhatUpsw";
NSString *imageName = @"hug2";
NSURL *url = [[NSBundle mainBundle]URLForResource:imageName withExtension:@"jpg"];
UNNotificationAttachment *attachment = [UNNotificationAttachment attachmentWithIdentifier:imageName URL:url options:nil error:nil];
content.attachments = @[attachment];
// Deliver the notification in five seconds.
UNTimeIntervalNotificationTrigger* trigger = [ UNTimeIntervalNotificationTrigger
triggerWithTimeInterval:15 repeats:NO];
UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"FiveSecondsw"
content:content trigger:trigger];
// Schedule the notification.
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Something went wrong: %@",error);
} else {
NSLog(@"All good!: %@", request);
}
}];
также проверки ожидающие запросы я вижу:
<__NSArrayM 0x17024d170>(
<UNNotificationRequest: 0x1702235c0; identifier: FiveSecond, content: <UNNotificationContent: 0x17010bd00; title: Hello!, subtitle: (null), body: Hello_message_body, categoryIdentifier: , launchImageName: , peopleIdentifiers: (
), threadIdentifier: , attachments: (
), badge: (null), sound: <UNNotificationSound: 0x1700b4580>, hasDefaultAction: YES, defaultActionTitle: (null), shouldAddToNotificationsList: YES, shouldAlwaysAlertWhileAppIsForeground: NO, shouldLockDevice: NO, shouldPauseMedia: NO, isSnoozeable: NO, fromSnooze: NO, darwinNotificationName: (null), darwinSnoozedNotificationName: (null), trigger: <UNTimeIntervalNotificationTrigger: 0x170223780; repeats: NO, timeInterval: 10.000000>>
)
Повторите попытку с другим значением идентификатора – bhakti123
@ bhakti123 Ive попробовал. Если я начну новый проект, бум работает так, как ожидалось. В этом проекте этого просто нет, и я не понимаю, почему. Очень странно. – mKane
Это связано с тем, что каждое уведомление, которое вы планируете, имеет тот же идентификатор. UNUserNotificationCenter нужны разные идентификаторы для разных уведомлений. Поскольку уже существует уведомление с этим идентификатором, вы никогда не получите второй, который вы планируете. – bhakti123