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

Интеграция 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.

Вжух! Нажмите на уведомление с усилием, и всё готово!

Пример

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

Anchor link to

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