2017-01-21 2 views
1

Я не могу уволить UserNotification в прошивкой 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 так и не был достигнут.

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

+0

Вы не видите, что у вас есть уведомления в приложении, когда вы запускаете его, если он находится на переднем плане. – Larme

ответ

3

Обнаружена проблема.

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

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

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

+0

Спасибо, мне было интересно, почему я слышу звук уведомления, но не вижу никакого предупреждения ... получается, что я устанавливаю только «субтитры» и нуждаюсь, по крайней мере, в «теле» содержимого – Pangu

Смежные вопросы