Saltar al contenido

Notificación push personalizada en primer plano para iOS

A partir de la versión 6.10.0, puedes integrar el módulo PushwooshForegroundPush para personalizar las notificaciones push en primer plano cuando las alertas nativas del sistema iOS están deshabilitadas.

1. Deshabilitar las alertas push nativas en primer plano

Anchor link to

Añadiendo Pushwoosh_SHOW_ALERT = false a tu Info.plist.

<key>Pushwoosh_SHOW_ALERT</key>
<false/>

2. Integrando el módulo PushwooshForegroundPush

Anchor link to

Swift Package Manager

Cocoapods

Terminal window
# Descomenta la siguiente línea para definir una plataforma global para tu proyecto
# platform :ios, '13.0'
target 'MyApp' do
# Comenta la siguiente línea si no quieres usar frameworks dinámicos
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshFramework/PushwooshForegroundPush'
end

3. Añadir la configuración de PushwooshForegroundPush en AppDelegate

Anchor link to
import UIKit
import PushwooshFramework
import PushwooshForegroundPush
@main
class AppDelegate: UIResponder, UIApplicationDelegate, PWMessagingDelegate, PWForegroundPushDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Pushwoosh.ForegroundPush.foregroundNotificationWith(style: .style1,
duration: 5,
vibration: .notification,
disappearedPushAnimation: .balls)
Pushwoosh.ForegroundPush.delegate = self
return true
}
func pushwoosh(_ pushwoosh: Pushwoosh, onMessageReceived message: PWMessage) {
if let payload = message.payload {
// Método de Pushwoosh
Pushwoosh.ForegroundPush.showForegroundPush(userInfo: payload)
}
}
}

Usando el método foregroundNotificationWith

El método foregroundNotificationWith te permite mostrar una notificación push personalizada en primer plano con estilo, duración y retroalimentación háptica configurables.

Firma del método (Swift / Objective-C):

@objc
static func foregroundNotificationWith(
style: PWForegroundPushStyle,
duration: Int,
vibration: PWForegroundPushHapticFeedback,
disappearedPushAnimation: PWForegroundPushDisappearedAnimation
)

Parámetros:

  1. style (PWForegroundPushStyle)
  • Actualmente, solo style1 está disponible.
  1. duration (Int)
  • Especifica cuánto tiempo se mostrará la notificación antes de desaparecer (en segundos).
  1. vibration (PWForegroundPushHapticFeedback)
  • Controla la retroalimentación háptica cuando se muestra la notificación. Opciones disponibles:
case none // Sin vibración
case light // Vibración ligera
case medium // Vibración media
case heavy // Vibración fuerte
case soft // Vibración suave
case rigid // Vibración rígida
case notification // Vibración de notificación estándar
  1. disappearedPushAnimation (PWForegroundPushDisappearedAnimation)
  • Animación de desaparición de la notificación push
case balls = 0
case regularPush

4. Implementando el método delegado didTapForegroundPush

Anchor link to

Para manejar los toques del usuario en las notificaciones push personalizadas en primer plano, implementa el método del protocolo PWForegroundPushDelegate:

// Manejar el toque en la notificación push en primer plano
func didTapForegroundPush(_ userInfo: [AnyHashable : Any]) {
print("Foreground custom push: \(userInfo)")
// Realizar cualquier acción, por ejemplo, navegar a una pantalla específica
// navigateToScreen(for: userInfo)
}

Notas:

  • Este método se llama cuando el usuario toca una notificación push personalizada en primer plano.
  • userInfo contiene el payload de la notificación.
  • Asegúrate de establecer Pushwoosh.ForegroundPush.delegate = self después de la configuración.

5. Parámetros opcionales para personalizar las notificaciones push en primer plano

Anchor link to

El módulo PushwooshForegroundPush proporciona varios parámetros opcionales para personalizar la apariencia y el comportamiento de tus notificaciones push en primer plano. Estos se pueden establecer globalmente a través de propiedades estáticas.

PropiedadTipoDescripciónPredeterminado
useLiquidViewBoolUsa la vista Liquid Glass en iOS 26.false
gradientColors[UIColor]?Array opcional de colores para un fondo degradado.nil
backgroundColorUIColor?Color de fondo para la notificación push. Si es nil y gradientColors no está establecido, se utiliza el degradado predeterminado.Degradado del sistema predeterminado
usePushAnimationBoolIndica si se debe animar la notificación push cuando se muestra.true
titlePushColorUIColor?Color del texto del título de la notificación. Por defecto, es el blanco del sistema si es nil.blanco
messagePushColorUIColor?Color del texto del mensaje de la notificación. Por defecto, es el blanco del sistema si es nil.blanco
titlePushFontUIFont?Fuente del texto del título de la notificación. Por defecto, es la fuente del sistema si es nil.Fuente del sistema predeterminada
messagePushFontUIFont?Fuente del texto del mensaje de la notificación. Por defecto, es la fuente del sistema si es nil.Fuente del sistema predeterminada

Resumen:

  • Swift 5.13+ + iOS 26 → Liquid Glass
  • Swift 5.13+ + iOS < 26 → UIView estándar
  • Swift < 5.13 → Siempre vista desenfocada (sin soporte para Liquid Glass)

Ejemplo de uso:

Pushwoosh.ForegroundPush.useLiquidView = true
Pushwoosh.ForegroundPush.gradientColors = [.red, .orange, .yellow]
Pushwoosh.ForegroundPush.titlePushColor = .red
Pushwoosh.ForegroundPush.messagePushColor = .green
Pushwoosh.ForegroundPush.backgroundColor = .black
Pushwoosh.ForegroundPush.titlePushFont = .boldSystemFont(ofSize: 22)
Pushwoosh.ForegroundPush.messagePushFont = .italicSystemFont(ofSize: 15)
Pushwoosh.ForegroundPush.usePushAnimation = false

6. Ejemplo de notificación push en primer plano

Anchor link to

Este ejemplo demuestra cómo mostrar una notificación push personalizada en primer plano con título, mensaje, tarjetas y animación GIF.

Notificación push en primer plano de Pushwoosh con vista animada de Liquid Glass
Notificación push en primer plano de Pushwoosh con archivo adjunto gif
Notificación push en primer plano de Pushwoosh con imagen de tarjeta
Notificación push en primer plano de Pushwoosh con un gradiente personalizado y colores de título y mensaje personalizados
Notificación push en primer plano de Pushwoosh con fondo, fuentes de título y mensaje personalizados, y sin animación

Eso es todo. Has configurado con éxito las notificaciones push personalizadas en primer plano en iOS con Pushwoosh.