Как добавить заголовок уведомления, когда iPhone заблокирован, как WhatsApp?

#ios #objective-c #iphone #xcode #uilocalnotification

#iOS #objective-c #iPhone #xcode #uilocalnotification

Вопрос:

Я внедряю push-уведомления, которые я превращаю в локальные уведомления в своем приложении iOS.

Когда iPhone заблокирован (Face ID / Touch ID), я вижу только текст уведомления, который по умолчанию является «Уведомлением».

Когда iPhone разблокирован (Face ID / Touch ID), я вижу все содержимое уведомления.

Я попытался изменить заголовок предупреждения на жестко заданный текст. Также пытался изменить другие свойства, но мне не удалось решить эту проблему.

Вот как я создаю локальное уведомление:

     UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.userInfo = dictionary;
    [notification setAlertTitle:@"alertTitle"];
    [notification setAlertBody:@"alertBody"];
    
    [notification setFireDate:[NSDate date]];
    [notification setTimeZone:[NSTimeZone  defaultTimeZone]];
   
    [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
  

Чего я хочу, так это показывать заголовок уведомления, несмотря на заблокированное состояние устройства, точно так же, как это делает WhatsApp.

Разблокированное состояние

Разблокировано

Заблокированное состояние

Заблокировано

Как вы можете видеть, с теми же настройками — WhatsApp показывает заголовок, даже если iPhone заблокирован.

Ответ №1:

Я полагаю, вы позволяете пользователю устанавливать это для каждого приложения. Перейдите в настройки системы> Ваше приложение> Уведомления> Показывать предварительные просмотры> Всегда. Обратите внимание, что у вас также есть настройка по умолчанию, которую вы можете изменить, которая влияет на все приложения, которые вы явно не настроили. Перейдите в системные настройки> Уведомления> Показывать предварительные просмотры, чтобы изменить это.

введите описание изображения здесь

Комментарии:

1. Спасибо, но это не желаемый результат. Я не хочу показывать все сообщение целиком, просто добавляю заголовок к уведомлениям, когда iPhone заблокирован.

Ответ №2:

UILocalNotification не рекомендуется. Вместо этого вам следует использовать UserNotifications фреймворк.

Содержимое уведомления управляется UNNotificationContent пользователем, у которого есть subtitle свойство в дополнение к свойствам title и body . Я почти уверен, что subtitle свойство — это то, которое показывает, когда телефон заблокирован.