Guía de integración avanzada del SDK de iOS
Esta sección proporciona información sobre la integración avanzada del SDK de iOS de Pushwoosh.
Modos en segundo plano
Anchor link toPara habilitar esta funcionalidad, debe añadir Modos en segundo plano a su proyecto.
Pasos para habilitar los modos en segundo plano
Anchor link to- Abra su proyecto en Xcode y selecciónelo en el Project Navigator.
- Elija el destino de su aplicación en el panel izquierdo.
- Navegue a la pestaña Signing & Capabilities.
- Haga clic en el botón + Capability en la esquina superior izquierda.
- Busque y seleccione Background Modes de la lista.
- 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 en primer plano
Anchor link toPor defecto, el SDK de iOS de Pushwoosh muestra el banner de notificación cuando la aplicación se está ejecutando en primer plano.
Puede controlar este comportamiento configurando el siguiente indicador booleano en su código (es decir, en su AppDelegate):
// Set false to disable foreground notifications, true to enable itPushwoosh.sharedInstance().showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[Pushwoosh sharedInstance] setShowPushnotificationAlert:0];Nivel de registro
Anchor link toEl SDK de iOS de Pushwoosh admite los siguientes niveles de registro:
NONE- No hay registros del SDK.ERROR- Muestra solo mensajes de error en la consola.WARNING- Muestra advertencias además de los errores.INFO- Incluye mensajes informativos (configuración predeterminada).DEBUG- Incluye información de depuración detallada.
Por defecto, el nivel de registro está configurado en INFO, asegurando 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 usando 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 toSi desea utilizar su propio UNNotificationCenterDelegate (por ejemplo, para notificaciones locales), debe informar al SDK de Pushwoosh para un comportamiento adecuado. Puede hacerlo con la propiedad notificationCenterDelegateProxy de la instancia de Pushwoosh:
Pushwoosh.sharedInstance()?.notificationCenterDelegateProxy.add(my_delegate)[Pushwoosh.sharedInstance.notificationCenterDelegateProxy addNotificationCenterDelegate:my_delegate];Luego, implemente los métodos 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() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Handle your message completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Handle your message completionHandler(); }}Inicialización diferida de Pushwoosh
Anchor link toEl indicador 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 este indicador está habilitado, el SDK de Pushwoosh no inicia sus servicios hasta que se llaman explícitamente los métodos del SDK de iOS de Pushwoosh.
Añada la siguiente entrada a Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>Casos de uso
-
Inicialización controlada del SDK – El indicador Pushwoosh_LAZY_INITIALIZATION permite retrasar el inicio del SDK de Pushwoosh, dando más control sobre cuándo se activan los servicios push.
-
Activación push diferida – En algunas aplicaciones, las notificaciones push solo deben inicializarse bajo condiciones específicas. Habilitar este indicador asegura que el SDK de Pushwoosh se inicie solo cuando se solicite explícitamente.
-
Configuración push específica del usuario – Algunas aplicaciones pueden requerir la personalización de la configuración de notificaciones push basada en 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 adecuada.
Lista completa de propiedades de Info.plist
Anchor link to| Propiedad | Descripción | Valores posibles |
|---|---|---|
Pushwoosh_APPID | Establece el ID de aplicación de Pushwoosh para la compilación de producción. | XXXXX-XXXXX Tipo: String |
Pushwoosh_APPID_Dev | Establece el ID de aplicación de Pushwoosh para la compilación de desarrollo. | XXXXX-XXXXX Tipo: String |
Pushwoosh_SHOW_ALERT | Muestra la alerta de notificación en primer plano. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALERT_TYPE | Establece el estilo de alerta de notificación. | BANNER (predeterminado) / ALERT / NONE Tipo: String |
Pushwoosh_BASEURL | Anula la URL base del servidor de Pushwoosh. | https://cp.pushwoosh.com/json/1.3/ (predeterminado) Tipo: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | Si es YES, los Deep Links recibidos en notificaciones push silenciosas se procesarán automáticamente. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | Permite que el SDK envíe solicitudes de red a los servidores de Pushwoosh. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | Permite que el SDK recopile y envíe datos del dispositivo (versión del SO, configuración regional y modelo) al servidor. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSION | Permite que el SDK recopile y envíe la versión del SO del dispositivo al servidor. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | Permite que el SDK recopile y envíe la configuración regional del dispositivo al servidor. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | Permite que el SDK recopile y envíe el modelo del dispositivo al servidor. | YES (predeterminado) / NO Tipo: Boolean |
Pushwoosh_LOG_LEVEL | Nivel de registro del SDK de Pushwoosh. Para más detalles, consulte Control de nivel de registro. | NONE / ERROR / WARNING / INFO (predeterminado) / DEBUG / VERBOSE Tipo: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | Permite que el SDK rastree las compras dentro de la aplicación. Necesario para Customer Journey Builder. | YES / NO (predeterminado) Tipo: Boolean |