Стандартизация уведомлений в приложениях ОС в LINE iOS

Привет. iOS-инженерНа основеявляется. В версии 15.14.0 версии LINE для iOS уведомления в приложении были обновлены и теперь отображаются как системные уведомления.

До изменения После изменения
Баннер системного уведомления, отображаемый в приложении LINE после обновления

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

Это казалось простой задачей — просто изменить дисплей, но по мере разработки я понял, что нужно учитывать больше моментов, чем я предполагал. В этой статье мы рассмотрим ограничения приложений iOS и LINE, существовавшие до сих пор, а также представим, с чем мы столкнулись, и улучшения, которые мы внесли в процессе миграции.

Почему до сих пор использовались пользовательские представления?

Раньше существовали ограничения, налагаемые ОС.

До iOS 9 ограничения ОС не позволяли отображать стандартные для ОС системные уведомления, когда ваше приложение находилось на переднем плане. В приложении LINE, чтобы баннер уведомлений отображался даже на переднем плане,UIView Уведомления пользователей отображались с помощью реализованного в системе уникального баннера (далее — «настраиваемые уведомления»). К недостаткам пользовательских уведомлений можно отнести отсутствие их отображения в Центре уведомлений iOS или перекрытие представления уведомлениями из других приложений, как показано на изображении ниже.

Пользовательский баннер уведомлений перекрывает системные уведомления в приложении LINE, что снижает видимость.

Системные уведомления на переднем плане теперь доступны в iOS 10.

Платформа UserNotifications Framework, представленная в iOS 10, произвела революцию в функциональности уведомлений пользователей. Ранее использовалось для локальных уведомлений UILocalNotification устарел, и теперь вы можете зарегистрировать локальные уведомления, используя следующую процедуру. (заранее UNUserNotificationCenter.current().requestAuthorization() Вы должны получить разрешение на уведомление. )

let content = UNMutableNotificationContent()
content.title = "Sample Title"
content.subtitle = "Sample Subtitle"
content.body = "Sample Body"

let request = UNNotificationRequest(
    identifier: UUID().uuidString,
    content: content,
    trigger: nil
)

UNUserNotificationCenter.current().add(request)

Баннер локального системного уведомления с минимальным кодом

Кроме того, системные уведомления теперь могут отображаться даже на переднем плане. как показано ниже UNUserNotificationCenterDelegate Его можно отобразить, реализовав функцию.

func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    willPresent notification: UNNotification,
    withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
    completionHandler([.banner, .sound, .badge])
}

Почему в приложении LINE задержался переход на системные уведомления?

До iOS 9 приложение LINE отображало push-уведомления с сервера в фоновом режиме. Поэтому,UNUserNotificationCenterDelegate Просто реализуйте

Read more:  Logitech G Play Days - большое игровое мероприятие и фантастические предложения

2025-12-11 02:00:00


1766456977
#Стандартизация #уведомлений #приложениях #ОС #LINE #iOS

Читайте также

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.