UserNotification не отображается (iOS 10)

Я не могу запустить UserNotification в iOS 10. Начну со своего кода:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        UNAuthorizationOptions options = (UNAuthorizationOptionBadge | UNAuthorizationOptionAlert | UNAuthorizationOptionSound);

        center.delegate = self;

        [center requestAuthorizationWithOptions: options
                              completionHandler: ^(BOOL granted, NSError * _Nullable error) {
                                  if (granted) {
                                      NSLog(@"Granted notifications!");
                                  }
                              }];
//

Это работает, я вижу журнал.

Затем у меня есть:

-(void)application: (UIApplication *)application performFetchWithCompletionHandler: (void (^)(UIBackgroundFetchResult))completionHandler {
 //

UNMutableNotificationContent *content = [UNMutableNotificationContent new];
                content.title = NSLocalizedString(@"Updates are available", nil);

                UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval: 1
                                                                                                                repeats: NO];
                UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier: @"IDLocalNotification"
                                                                                      content: content
                                                                                      trigger: trigger];

                UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

                [center addNotificationRequest: request withCompletionHandler: ^(NSError * _Nullable error) {
                    if (!error) {
                        NSLog(@"Notification was requested!");
                    }
                }];

Опять же, это работает, я вижу журнал.

Но я не вижу уведомления на своем экране (задержка срабатывания составляет всего 1 секунду, но я пробовал и большие значения).

Кроме того, метод делегата willPresentNotification никогда не достигается.

Что мне не хватает?


person koen    schedule 21.01.2017    source источник
comment
Вы не видите собственные уведомления в своем приложении, когда запускаете одно из них, если оно находится на переднем плане.   -  person Larme    schedule 22.01.2017


Ответы (1)


Нашел проблему.

Оказывается, мне нужно установить body содержимого, а не только title:

UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = [NSString localizedUserNotificationStringForKey: @"Updates are available" arguments: nil];

Я даже могу убрать title, и это сработает.

person koen    schedule 22.01.2017
comment
Спасибо, мне было интересно, почему я слышу звук уведомления, но не видел никакого оповещения... оказывается, я установил только subtitle и нуждался как минимум в body контента - person Pangu; 10.04.2017
comment
Благодарю вас! Достаточно перейти к телу. Только что протестировано - person Андрей Бронников; 14.01.2020