Saltar al contenido principal
iOS proporciona un protocolo UNNotificationContentExtension como punto de entrada para una extensión de aplicación de contenido de notificaciones. Esto se puede usar para mostrar una interfaz personalizada para las notificaciones de tu aplicación. Esta guía de ejemplo explica cómo usar esto para crear un carrusel dentro de una notificación de iOS.

Imagen que muestra un carrusel en una notificación push

1. Agregar una extensión de contenido de notificaciones

00355f9-Screen_Shot_2020-11-30_at_9.32.26_PM

En Xcode, selecciona File > New > Target…
efd0fde-Screen_Shot_2020-11-30_at_3.10.58_PM

Selecciona “Notification Content Extension”
0a0fa6a-Screen_Shot_2020-11-30_at_6.44.46_PM

Confirma la selección en la ventana que aparece
ActivateContentExtension

Selecciona activar para depurar

2. Agregar código a tu aplicación

Descarga OSNotificationContentExtension desde Github y reemplaza el OSNotificationContentExtension en tu proyecto de Xcode con el mismo archivo de Github. Deberías ver los siguientes archivos agregados:

Archivos bajo Content Extension

3. Establecer tu categoría de notificación

Este ejemplo Declara el tipo de notificación accionable dentro de AppDelegate.swift didFinishLaunchingWithOptions.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    //INICIO Autorizar categoría de carrusel de notificación OS
    if #available(iOS 10.0, *) {
        let options: UNAuthorizationOptions = [.alert]
        UNUserNotificationCenter.current().requestAuthorization(options: options) { (authorized, error) in
            if authorized {
                let categoryIdentifier = "OSNotificationCarousel"
                let carouselNext = UNNotificationAction(identifier: "OSNotificationCarousel.next", title: "👉", options: [])
                let carouselPrevious = UNNotificationAction(identifier: "OSNotificationCarousel.previous", title: "👈", options: [])
                let carouselCategory = UNNotificationCategory(identifier: categoryIdentifier, actions: [carouselNext, carouselPrevious], intentIdentifiers: [], options: [])
                UNUserNotificationCenter.current().setNotificationCategories([carouselCategory])
            }
        }
    }
    //FIN Autorizar categoría de carrusel de notificación OS

    return true
}

4. Enviar tu notificación push

Al enviar mensajes push puedes establecer la categoría de iOS y datos personalizados.

Categoría de iOS

Usa OSNotificationCarousel como la categoría de iOS:
  • Dashboard
  • API
Establécelo en “Platform Settings” > Send to Apple iOS > “Category”

Opciones de plataforma iOS en el panel de OneSignal

Datos personalizados

OneSignal no tiene una opción para cargar múltiples imágenes por notificación. En su lugar, debes listar las URLs de las imágenes separadas por una coma ,
  • Dashboard
  • API
Establécelo en “Advanced Settings” > “Additional Data”Para la “Key” establece images y para el “Value” establece la lista de URLs separadas por comas sin comillas.
Ejemplo, copia y pega:
https://cdn.pixabay.com/photo/2015/12/01/20/28/road-1072823_960_720.jpg,https://cdn.pixabay.com/photo/2013/11/28/10/36/road-220058_960_720.jpg,https://cdn.pixabay.com/photo/2012/08/27/14/19/mountains-55067_960_720.png,https://cdn.pixabay.com/photo/2015/01/28/23/35/landscape-615429_960_720.jpg,https://cdn.pixabay.com/photo/2016/05/05/02/37/sunset-1373171_960_720.jpg

Enviar la notificación push

Una vez que recibas la notificación push, necesitarás presionar prolongadamente o deslizar hacia la izquierda y hacer clic en “View” para expandir la notificación, dependiendo de la versión de iOS.

Lectura adicional