Привет. iOS-инженерНа основеявляется. В версии 15.14.0 версии LINE для iOS уведомления в приложении были обновлены и теперь отображаются как системные уведомления.
| До изменения | После изменения |
|---|---|
![]() |
Таким образом, уведомления, которые ранее отображались в пользовательском представлении, теперь могут отображаться в стандартном баннере уведомлений iOS.
Это казалось простой задачей — просто изменить дисплей, но по мере разработки я понял, что нужно учитывать больше моментов, чем я предполагал. В этой статье мы рассмотрим ограничения приложений iOS и LINE, существовавшие до сих пор, а также представим, с чем мы столкнулись, и улучшения, которые мы внесли в процессе миграции.
Почему до сих пор использовались пользовательские представления?
Раньше существовали ограничения, налагаемые ОС.
До iOS 9 ограничения ОС не позволяли отображать стандартные для ОС системные уведомления, когда ваше приложение находилось на переднем плане. В приложении LINE, чтобы баннер уведомлений отображался даже на переднем плане,UIView Уведомления пользователей отображались с помощью реализованного в системе уникального баннера (далее — «настраиваемые уведомления»). К недостаткам пользовательских уведомлений можно отнести отсутствие их отображения в Центре уведомлений iOS или перекрытие представления уведомлениями из других приложений, как показано на изображении ниже.

Системные уведомления на переднем плане теперь доступны в 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 Просто реализуйте
2025-12-11 02:00:00
1766456977
#Стандартизация #уведомлений #приложениях #ОС #LINE #iOS
Читайте также


