Перейти к содержанию

Интеграция Rich-уведомлений для iOS

Начиная с iOS 10, вы можете прикреплять к push-уведомлениям статическое или анимированное изображение или даже видео. Оно будет отображаться прямо в уведомлении, когда пользователь нажмет на него с усилием (force-tap).

Включить эту функциональность очень просто, и это почти не требует написания кода. Давайте сделаем это!

1. Создание Notification Service Extension

Anchor link to

Сначала создайте Notification Service Extension. Это расширение загружает контент, который будет показан пользователю.

Добавьте новую цель (target) в ваш проект (File -> New -> Target) и создайте Notification Service Extension.

Создание Notification Service Extension

2. Код Notification Service Extension

Anchor link to

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

import UserNotifications
import PushwooshFramework
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler)
}
}

3. Разрешение небезопасных URL-адресов вложений

Anchor link to

Notification Service Extension — это отдельный бинарный файл, у которого есть собственный файл Info.plist. Добавьте App Transport Security Settings с флагом Allow Arbitrary Loads, установленным в значение true, в файл Info.plist расширения.

Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

4. Отправка rich-уведомления

Anchor link to

Чтобы отправить rich-уведомление, просто укажите URL-адрес файла в поле BANNER URL.

Вуаля! Нажмите на уведомление с усилием (force-tap), и все готово!

Поделитесь с нами своим мнением

Anchor link to

Ваши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы поделитесь с нами своим мнением в случае возникновения проблем в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться своими мыслями с нами через эту форму.