Saltar al contenido

Guía de integración avanzada del SDK de iOS

Esta sección proporciona información sobre la integración avanzada del SDK de Pushwoosh para iOS.

Modos de segundo plano

Anchor link to

Para habilitar esta funcionalidad, debe agregar los Modos de Segundo Plano (Background Modes) a su proyecto.

Pasos para habilitar los modos de segundo plano

Anchor link to
  1. Abra su proyecto en Xcode y selecciónelo en el Navegador de Proyectos (Project Navigator).
  2. Elija el target de su aplicación en el panel izquierdo.
  3. Vaya a la pestaña Signing & Capabilities.
  4. Haga clic en el botón + Capability en la esquina superior izquierda.
  5. Busque y seleccione Background Modes en la lista.
  6. En la sección Background Modes, habilite Remote notifications marcando la casilla.

Una vez completado, su aplicación podrá manejar notificaciones push, incluidas las silenciosas, mientras se ejecuta en segundo plano.

Modos de primer plano

Anchor link to

Por defecto, el SDK de Pushwoosh para iOS muestra el banner de notificación cuando la aplicación se está ejecutando en primer plano.

Puede controlar este comportamiento estableciendo la siguiente bandera booleana en su código (es decir, en su AppDelegate):

// Set false to disable foreground notifications, true to enable it
Pushwoosh.sharedInstance().showPushnotificationAlert = true

Nivel de registro

Anchor link to

El SDK de Pushwoosh para iOS admite los siguientes niveles de registro:

  • NONE - Sin registros del SDK.
  • ERROR - Muestra solo mensajes de error en la consola.
  • WARNING - Muestra advertencias además de errores.
  • INFO - Incluye mensajes informativos (configuración predeterminada).
  • DEBUG - Incluye información detallada de depuración.

Por defecto, el nivel de registro está establecido en INFO, lo que garantiza que el SDK proporcione información relevante sin saturar la consola del desarrollador.

Para modificar el nivel de registro, actualice la clave Pushwoosh_LOG_LEVEL en el archivo Info.plist de su aplicación:

<key>Pushwoosh_LOG_LEVEL</key>
<string>YOUR_LOG_LEVEL</string>

Alternativamente, puede cambiar el nivel de registro utilizando el siguiente fragmento de código:

Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)

Reemplace YOUR_LOG_LEVEL con el nivel deseado (por ejemplo, DEBUG o ERROR).

UNNotificationCenterDelegate personalizado

Anchor link to

Si desea utilizar su propio UNNotificationCenterDelegate (por ejemplo, para notificaciones locales), debe informar al SDK de Pushwoosh sobre ello para un comportamiento adecuado. Puede hacerlo con la propiedad notificationCenterDelegateProxy de la instancia de Pushwoosh:

Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(my_delegate)

Luego, implemente los métodos de UNNotificationCenterDelegate en su delegado:

func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) {
// Handle your notification
completionHandler(UNNotificationPresentationOptions.alert)
}
}
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) {
// Handle your notification
completionHandler()
}
}

Inicialización diferida de Pushwoosh

Anchor link to

La bandera Pushwoosh_LAZY_INITIALIZATION evita la inicialización automática del SDK de Pushwoosh cuando se inicia la aplicación. Esto permite un mayor control sobre cuándo se inician los servicios del SDK de Pushwoosh.

Cuando esta bandera está habilitada, el SDK de Pushwoosh no inicia sus servicios hasta que se llaman explícitamente los métodos del SDK de Pushwoosh para iOS.

Agregue la siguiente entrada a Info.plist:

<key>Pushwoosh_LAZY_INITIALIZATION</key>
<true/>

Casos de uso

  1. Inicialización controlada del SDK – La bandera Pushwoosh_LAZY_INITIALIZATION permite retrasar el inicio del SDK de Pushwoosh, lo que da más control sobre cuándo se activan los servicios push.

  2. Activación diferida de Push – En algunas aplicaciones, las notificaciones push solo deben inicializarse bajo condiciones específicas. Habilitar esta bandera asegura que el SDK de Pushwoosh se inicie solo cuando se solicite explícitamente.

  3. Configuración de Push específica del usuario – Algunas aplicaciones pueden requerir la personalización de la configuración de las notificaciones push según las preferencias del usuario o la configuración de la cuenta. Con la inicialización diferida, el SDK de Pushwoosh se inicia solo después de que se determina la configuración apropiada.

Lista completa de propiedades de Info.plist

Anchor link to
PropiedadDescripciónValores posibles
Pushwoosh_APPIDEstablece el ID de la aplicación Pushwoosh para la compilación de producción.XXXXX-XXXXX
Tipo: String
Pushwoosh_APPID_DevEstablece el ID de la aplicación Pushwoosh para la compilación de desarrollo.XXXXX-XXXXX
Tipo: String
Pushwoosh_SHOW_ALERTMuestra la alerta de notificación en primer plano.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALERT_TYPEEstablece el estilo de alerta de notificación.BANNER (predeterminado) / ALERT / NONE
Tipo: String
Pushwoosh_BASEURLSobrescribe la URL base del servidor de Pushwoosh.https://cp.pushwoosh.com/json/1.3/ (predeterminado)
Tipo: String
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSHSi es YES, los Deep Links recibidos en pushes silenciosos se procesarán automáticamente.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALLOW_SERVER_COMMUNICATIONPermite al SDK enviar solicitudes de red a los servidores de Pushwoosh.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATAPermite al SDK recopilar y enviar datos del dispositivo (versión del SO, configuración regional y modelo) al servidor.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSIONPermite al SDK recopilar y enviar la versión del SO del dispositivo al servidor.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALEPermite al SDK recopilar y enviar la configuración regional del dispositivo al servidor.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODELPermite al SDK recopilar y enviar el modelo del dispositivo al servidor.YES (predeterminado) / NO
Tipo: Boolean
Pushwoosh_LOG_LEVELNivel de registro del SDK de Pushwoosh. Para más detalles, consulte Control del nivel de registro.NONE / ERROR / WARNING / INFO (predeterminado) / DEBUG / VERBOSE
Tipo: String
Pushwoosh_PURCHASE_TRACKING_ENABLEDPermite al SDK rastrear las compras dentro de la aplicación. Necesario para el Customer Journey Builder.YES / NO (predeterminado)
Tipo: Boolean