Кастомный foreground push

Оформите пуш, который приходит, когда приложение открыто

Когда пуш приходит при открытом приложении, iOS оставляет этот момент вам. Pushwoosh iOS SDK отрисовывает его как анимированный баннер в ваших цветах и шрифтах, с материалом Apple Liquid Glass на iOS 26.

Три экрана iPhone анфас рядом, внутри разных приложений: новостное приложение с фирменным баннером Liquid Glass поверх статьи, игра с баннером в стиле игровой графики поверх экрана матча и банковское приложение с баннером подтверждения поверх экрана перевода

Более 80 000 компаний масштабируют вовлечение с Pushwoosh

Формат целиком

Пуш, пришедший, когда приложение на переднем плане, — забота самого приложения. iOS покажет поверх вашего интерфейса простой системный баннер или не покажет ничего, и сообщение, вокруг которого вы выстроили целый Customer Journey, приходит серым системным элементом. Модуль PushwooshForegroundPush отрисовывает тот же payload как баннер, оформлением которого управляете вы.

Liquid Glass (iOS 26)

Включите useLiquidView, и баннер будет отрисован в материале Apple Liquid Glass — он воспринимается как часть iOS 26, а не как слой, наклеенный поверх экрана.

Стандартный баннер (iOS 13–25)

Ниже iOS 26 тот же вызов отрисовывает сплошной баннер в вашем градиенте и цветах, а на старых версиях Swift используется размытый фон. Одна конфигурация покрывает все три варианта.

Картинка и GIF

Заголовок, текст, картинка-карточка и анимированный GIF — всё берётся из payload, который пуш уже несёт.

Анимация, хаптика и время показа

Анимация появления, исчезновение balls или regularPush, хаптика при получении на выбор из семи уровней и длительность в секундах, после которой баннер скрывается сам.

Чем вы управляете

СвойствоЧто оно задаётЗначения
useLiquidViewМатериал Liquid Glass на iOS 26Bool, по умолчанию false
gradientColors, backgroundColorПоверхность, на которой рисуется баннерВаши фирменные цвета
titlePushColor, messagePushColorЦвет текста двух строкВаши фирменные цвета
titlePushFont, messagePushFontШрифты двух строкЛюбой шрифт, встроенный в приложение
usePushAnimationАнимация появленияBool, по умолчанию true
durationСколько баннер остаётся на экранеСекунды
vibrationХаптика при полученииnone, light, medium, heavy, soft, rigid, notification
disappearedPushAnimationКак баннер уходит с экранаballs или regularPush
styleВстроенный макетstyle1, пока единственный доступный
Свойство
1 / 9
useLiquidView
Что оно задаёт
Материал Liquid Glass на iOS 26
Значения
Bool, по умолчанию false
Свойство
2 / 9
gradientColors, backgroundColor
Что оно задаёт
Поверхность, на которой рисуется баннер
Значения
Ваши фирменные цвета
Свойство
3 / 9
titlePushColor, messagePushColor
Что оно задаёт
Цвет текста двух строк
Значения
Ваши фирменные цвета
Свойство
4 / 9
titlePushFont, messagePushFont
Что оно задаёт
Шрифты двух строк
Значения
Любой шрифт, встроенный в приложение
Свойство
5 / 9
usePushAnimation
Что оно задаёт
Анимация появления
Значения
Bool, по умолчанию true
Свойство
6 / 9
duration
Что оно задаёт
Сколько баннер остаётся на экране
Значения
Секунды
Свойство
7 / 9
vibration
Что оно задаёт
Хаптика при получении
Значения
none, light, medium, heavy, soft, rigid, notification
Свойство
8 / 9
disappearedPushAnimation
Что оно задаёт
Как баннер уходит с экрана
Значения
balls или regularPush
Свойство
9 / 9
style
Что оно задаёт
Встроенный макет
Значения
style1, пока единственный доступный

Где это настраивается

Один вызов при запуске

foregroundNotificationWith(style:duration:vibration:disappearedPushAnimation:) в didFinishLaunchingWithOptions плюс свойства оформления. Настраивается один раз для всего приложения.

Один вызов при получении

showForegroundPush(userInfo:) из колбэка PWMessagingDelegate.onMessageReceived отрисовывает баннер прямо из payload сообщения.

Один делегат для тапа

PWForegroundPushDelegate.didTapForegroundPush(userInfo:) передаёт вам полный payload, так что тап ведёт по deep link ровно туда, куда задумала кампания.

Как это работает внутри сценария

Один пуш, три варианта отображения

Foreground-баннер — это режим отображения сообщения, которое вы и так отправляете. Тот же сегмент, тот же триггер, тот же payload, тот же шаг в том же Customer Journey. Меняется только то, что устройство делает с ним при получении.

Если приложение закрыто, сообщение приходит обычным системным пушем или обновляет Live Activity. Если открыто — SDK отрисовывает этот баннер. Когда моменту нужен весь экран с предложением или формой, тот же сценарий переходит к in-app сообщению.

Срочная новость выходит, пока читатель в середине статьи

Редакционное событие запускает сценарий. Silent push незаметно для читателя заранее подгружает статью в фоне, а алерт приходит через секунду после него.

Читатели с закрытым приложением видят системный пуш на экране блокировки. Те, кто уже внутри, видят фирменный баннер издания, который выезжает поверх читаемой статьи с миниатюрой, и один тап ведёт их по deep link к новому материалу. Message Inbox в любом случае сохраняет алерт.

Где это применять

Баннер срабатывает только тогда, когда человек внутри приложения, поэтому его ценность зависит от «плотности сессий»: какая доля ваших отправок приходит на уже открытый экран. Больше всего выигрывают приложения с длинными сессиями — игры, медиа, стриминг, — а приложения, чьи сообщения приходят на телефон в кармане, почти ничего не получают.

МоментЧто говорит сообщениеПочему подходит баннер
Медиа и новости: новость выходит во время чтенияВердикт вынесенЧитатель уже в приложении, а системный баннер ломает собственный дизайн издания
Стриминг: релиз выходит во время эпизодаТретий сезон уже доступенАлерт может нести обложку сериала, а не приходить системным элементом
Мобильные игры: ивент или награда во время матчаВаш ход: Рейд через 5 минутДлинные сессии означают, что большинство пушей приходит во время игры, и баннер в стиле игровой графики вписывается в интерфейс
Приложения для креаторов и подписочные сервисы: новый дроп или напоминание о триалеНовинка от автора, на которого вы подписаныТщательно продуманное приложение не должно отдавать системе даже этот момент, а тап ведёт по deep link на пейвол
Live-спорт: гол, пока пользователь смотрит в приложении1:0, 68-я минутаПользователь открыл приложение ради события и смотрит его, когда приходит пуш
E-commerce и маркетплейсы: снижение цены во время просмотраВаш размер снова в наличииСтилизованный баннер посреди скролла воспринимается как часть магазина, а не как помеха
FinTech: подтверждение во время задачи в приложенииПеревод отправленФирменное подтверждение выглядит нативно именно в тот момент, когда пользователь его ждёт
Момент
1 / 7
Медиа и новости: новость выходит во время чтения
Что говорит сообщение
Вердикт вынесен
Почему подходит баннер
Читатель уже в приложении, а системный баннер ломает собственный дизайн издания
Момент
2 / 7
Стриминг: релиз выходит во время эпизода
Что говорит сообщение
Третий сезон уже доступен
Почему подходит баннер
Алерт может нести обложку сериала, а не приходить системным элементом
Момент
3 / 7
Мобильные игры: ивент или награда во время матча
Что говорит сообщение
Ваш ход: Рейд через 5 минут
Почему подходит баннер
Длинные сессии означают, что большинство пушей приходит во время игры, и баннер в стиле игровой графики вписывается в интерфейс
Момент
4 / 7
Приложения для креаторов и подписочные сервисы: новый дроп или напоминание о триале
Что говорит сообщение
Новинка от автора, на которого вы подписаны
Почему подходит баннер
Тщательно продуманное приложение не должно отдавать системе даже этот момент, а тап ведёт по deep link на пейвол
Момент
5 / 7
Live-спорт: гол, пока пользователь смотрит в приложении
Что говорит сообщение
1:0, 68-я минута
Почему подходит баннер
Пользователь открыл приложение ради события и смотрит его, когда приходит пуш
Момент
6 / 7
E-commerce и маркетплейсы: снижение цены во время просмотра
Что говорит сообщение
Ваш размер снова в наличии
Почему подходит баннер
Стилизованный баннер посреди скролла воспринимается как часть магазина, а не как помеха
Момент
7 / 7
FinTech: подтверждение во время задачи в приложении
Что говорит сообщение
Перевод отправлен
Почему подходит баннер
Фирменное подтверждение выглядит нативно именно в тот момент, когда пользователь его ждёт

Когда правильнее другая поверхность

Баннер — это промежуточная ступень, которую видно с первого взгляда, между простым системным алертом и полноэкранным in-app. По обе стороны от неё хватает своих моментов.

  • Момент наступает, когда приложение закрыто: курьер у двери, смена гейта, алерт о мошенничестве. Это обычный пуш, уровень прерывания или Live Activity.
  • Состояние длящееся, а не мгновенное: заказ в работе, поездка в пути, текущий счёт. Это Live Activity.
  • Сообщению нужен весь экран: предложение, форма, пейвол. Это in-app сообщение — богаче и собирается без кода.
  • Вы хотите изменить, кто получает сообщение или что в нём сказано. Баннер меняет только внешний вид, а охват остаётся за мобильными пуш-уведомлениями.
Баннер — это ваше оформление. Текст по-прежнему пишете вы

50 пуш-уведомлений, которые стоит взять за образец, с текстом и креативом за каждым из них.

Получить примеры

Платформы и техническое покрытие

Это модуль для iOS. В Android поведение на переднем плане определяется каналами уведомлений, которые Pushwoosh SDK создаёт из payload пуша, а не ваше приложение регистрирует в коде, а в вебе сопоставимой поверхности нет. Последний столбец показывает, что именно отрисовывает баннер, потому что большая часть этого живёт в вашем приложении, а не на сервере.

ВозможностьiOSAndroidWebЧем обеспечивается
Кастомный foreground-баннерiOS 13.0+, Pushwoosh SDK 6.10.0+––Модуль PushwooshForegroundPush в вашем приложении
Материал Liquid GlassiOS 26 со Swift 5.13+––Материал Apple, включается через useLiquidView
Фолбэк на сплошной баннерiOS ниже 26, Swift 5.13+––Стандартный view, отрисованный SDK
Фолбэк на размытый баннерЛюбая iOS, Swift ниже 5.13––Размытый effect view, отрисованный SDK
Заголовок, текст, картинка, GIFДа––Payload пуша без изменений
Фирменные цвета, градиенты и шрифтыДа––Статические свойства оформления модуля
Хаптика, анимация появления и исчезновения, длительностьДа––foregroundNotificationWith при запуске приложения
Обработка тапа и deep linkДа––PWForegroundPushDelegate.didTapForegroundPush
Настройка внешнего вида без кода–––Пока недоступна, оформление живёт в коде приложения
Сопоставимая поверхность внутри сессии на других платформахIn-app сообщения, Live ActivitiesIn-app сообщенияIn-app сообщенияОтдельные продукты, собираются без кода в Control Panel
Возможность
1 / 10
Кастомный foreground-баннер
iOS
iOS 13.0+, Pushwoosh SDK 6.10.0+
Android
–
Web
–
Чем обеспечивается
Модуль PushwooshForegroundPush в вашем приложении
Возможность
2 / 10
Материал Liquid Glass
iOS
iOS 26 со Swift 5.13+
Android
–
Web
–
Чем обеспечивается
Материал Apple, включается через useLiquidView
Возможность
3 / 10
Фолбэк на сплошной баннер
iOS
iOS ниже 26, Swift 5.13+
Android
–
Web
–
Чем обеспечивается
Стандартный view, отрисованный SDK
Возможность
4 / 10
Фолбэк на размытый баннер
iOS
Любая iOS, Swift ниже 5.13
Android
–
Web
–
Чем обеспечивается
Размытый effect view, отрисованный SDK
Возможность
5 / 10
Заголовок, текст, картинка, GIF
iOS
Да
Android
–
Web
–
Чем обеспечивается
Payload пуша без изменений
Возможность
6 / 10
Фирменные цвета, градиенты и шрифты
iOS
Да
Android
–
Web
–
Чем обеспечивается
Статические свойства оформления модуля
Возможность
7 / 10
Хаптика, анимация появления и исчезновения, длительность
iOS
Да
Android
–
Web
–
Чем обеспечивается
foregroundNotificationWith при запуске приложения
Возможность
8 / 10
Обработка тапа и deep link
iOS
Да
Android
–
Web
–
Чем обеспечивается
PWForegroundPushDelegate.didTapForegroundPush
Возможность
9 / 10
Настройка внешнего вида без кода
iOS
–
Android
–
Web
–
Чем обеспечивается
Пока недоступна, оформление живёт в коде приложения
Возможность
10 / 10
Сопоставимая поверхность внутри сессии на других платформах
iOS
In-app сообщения, Live Activities
Android
In-app сообщения
Web
In-app сообщения
Чем обеспечивается
Отдельные продукты, собираются без кода в Control Panel

Безопасность и хостинг

Pushwoosh работает на собственном оборудовании в США и Германии в соответствии с GDPR.

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type 2 CertifiedOWASP Compliant

Как это работает

Здесь нужно время разработчика, и мы говорим об этом прямо. Редактора внешнего вида foreground-баннера в Control Panel нет, поэтому разработчик один раз подключает его в приложении, а дальше вы просто отправляете сообщения, как и раньше.

  1. Добавьте модуль и передайте передний план приложению (разработчик)

    Добавьте PushwooshForegroundPush рядом с PushwooshFramework, PushwooshCore, PushwooshBridge и PushwooshLiveActivities, затем установите Pushwoosh_SHOW_ALERT в false в Info.plist. Так iOS перестанет рисовать собственный алерт: баннер заменяет его, а не появляется вместе с ним.

  2. Один раз настройте внешний вид (разработчик)

    Вызовите foregroundNotificationWith(style:duration:vibration:disappearedPushAnimation:) в didFinishLaunchingWithOptions и задайте свойства оформления для цветов, градиентов и шрифтов. Отрисовывайте каждое сообщение через showForegroundPush(userInfo:) из onMessageReceived, а тапы обрабатывайте в didTapForegroundPush.

  3. Отправляйте так же, как сейчас (без кода)

    Та же аудитория, тот же Customer Journey, тот же payload — неважно, запущена кампания из Control Panel или через Messages API. Баннер — это то, как пуш отображается, когда застаёт приложение открытым.

Ограничения, о которых стоит знать

Слой полировки с узким окном применения. Вот его границы.

  • Только передний план. Баннер срабатывает, пока приложение открыто, поэтому его охват — ровно та доля ваших отправок, что приходит на открытый экран.
  • Только iOS. Поведение на переднем плане в Android определяется каналами уведомлений — отдельным механизмом, который этот модуль не затрагивает.
  • Баннер заменяет нативный foreground-алерт. Pushwoosh_SHOW_ALERT должен быть false, так что системный баннер и этот никогда не появляются вместе.
  • Настройка в коде. Оформление живёт в коде приложения, и изменить его можно только с релизом приложения, а не с кампанией.
  • Пока один макет. style1 — единственный встроенный стиль, а кастомизация ограничена цветами, градиентами, шрифтами, анимацией и длительностью.
  • Liquid Glass требует iOS 26 и Swift 5.13+. Всё, что ниже, отрисовывает сплошной или размытый баннер из той же конфигурации, поэтому главный эффект увидит только часть аудитории на iOS 26.
  • На сервере не остаётся следов. Доставка и открытия считаются как обычно, а отрисовка происходит на клиенте, поэтому измеряйте эффект A/B-тестом по доле тапов внутри сессии, а не ищите его в отчёте.

Другие продукты

Push-уведомления для iOS и Android

Push-уведомления Pushwoosh: охват всех устройств, rich-контент, точный таргетинг, Journey и 99% аптайм. Превращайте уведомления в платящих клиентов.

In-App сообщения

In-app сообщения Pushwoosh — онбординг, апселл, анонсы и сбор фидбэка ровно в тот момент, когда пользователи сфокусированы на приложении. No-code редактор, нативные SDK-шаблоны, аналитика по каждому элементу. Соответствует GDPR. Начните бесплатно.

Интерактивные пуш-уведомления с кнопками

Кнопки действий в пуше, который вы уже отправляете: принять, получить, подтвердить или отследить в один тап. Наборы для iOS — без кода.

Live Updates для Android

Live Updates показывают заказ, поездку или доставку на экране блокировки Android 16 одной карточкой, которая обновляется сама, — с сервера Pushwoosh.

Пуш-уведомления с каруселью изображений для iOS

Несколько изображений в одном iOS-пуше, которые пользователь листает в развёрнутом уведомлении. Из той же кампании и сценария, что и любой пуш.

Message Inbox

Message Inbox — центр уведомлений внутри приложения и сайта. Тихая доставка охватывает всех, включая отказавшихся от пушей, а сообщения остаются доступны.