Guía de integración avanzada del SDK de iOS 7.0+
Esta sección proporciona información sobre la integración avanzada del SDK de iOS de Pushwoosh.
Modos de segundo plano
Anchor link toPara 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- Abra su proyecto en Xcode y selecciónelo en el Navegador de Proyectos (Project Navigator).
- Elija el target de su aplicación en el panel izquierdo.
- Vaya a la pestaña Signing & Capabilities.
- Haga clic en el botón + Capability en la esquina superior izquierda.
- Busque y seleccione Background Modes en 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 de 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 estableciendo el siguiente flag booleano en su código (es decir, en su AppDelegate):
// Establezca false para deshabilitar las notificaciones en primer plano, true para habilitarlasPushwoosh.configure.showPushnotificationAlert = true// Establezca 0 para deshabilitar las notificaciones en primer plano, 1 para habilitarlas[[Pushwoosh configure] setShowPushnotificationAlert:0];Nivel de registro
Anchor link toEl SDK de iOS de Pushwoosh soporta 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 por defecto).DEBUG- Incluye información detallada de depuración.
Por defecto, el nivel de registro está establecido 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 sobre ello para un comportamiento adecuado. Puede hacerlo con el método addNotificationCenterDelegate:
Pushwoosh.configure.addNotificationCenterDelegate(my_delegate)[Pushwoosh.configure addNotificationCenterDelegate: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)) { // Maneje su notificación completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // Maneje su notificación completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Maneje su mensaje completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Maneje su mensaje completionHandler(); }}Inicialización diferida de Pushwoosh
Anchor link toEl flag Pushwoosh_LAZY_INITIALIZATION previene la inicialización automática del SDK de Pushwoosh cuando la aplicación se inicia. Esto permite un mayor control sobre cuándo se inician los servicios del SDK de Pushwoosh.
Cuando este flag está habilitado, el SDK de Pushwoosh no inicia sus servicios hasta que los métodos del SDK de iOS de Pushwoosh son llamados explícitamente.
Agregue la siguiente entrada a Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>Casos de uso
-
Inicialización controlada del SDK – El flag 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 diferida de Push – En algunas aplicaciones, las notificaciones push solo deben inicializarse bajo condiciones específicas. Habilitar este flag asegura que el SDK de Pushwoosh se inicie solo cuando se solicite explícitamente.
-
Configuración de Push específica del usuario – Algunas aplicaciones pueden requerir la personalización de la configuración de las notificaciones push en función de 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| Propiedad | Descripción | Valores posibles |
|---|---|---|
Pushwoosh_APPID | Establece el ID de la aplicación Pushwoosh para la compilación de producción. | XXXXX-XXXXX Tipo: String |
Pushwoosh_APPID_Dev | Establece el ID de la aplicación Pushwoosh para la compilación de desarrollo. | XXXXX-XXXXX Tipo: String |
Pushwoosh_SHOW_ALERT | Muestra la alerta de notificación en primer plano. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALERT_TYPE | Establece el estilo de alerta de notificación. | BANNER (por defecto) / ALERT / NONE Tipo: String |
Pushwoosh_BASEURL | Sobrescribe la URL base del servidor de Pushwoosh. | https://cp.pushwoosh.com/json/1.3/ (por defecto) Tipo: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | Si es YES, los Deep Links recibidos en pushes silenciosos se procesarán automáticamente. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | Permite al SDK enviar solicitudes de red a los servidores de Pushwoosh. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | Permite al SDK recopilar y enviar datos del dispositivo (versión del SO, locale y modelo) al servidor. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSION | Permite al SDK recopilar y enviar la versión del SO del dispositivo al servidor. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | Permite al SDK recopilar y enviar el locale del dispositivo al servidor. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | Permite al SDK recopilar y enviar el modelo del dispositivo al servidor. | YES (por defecto) / NO Tipo: Booleano |
Pushwoosh_LOG_LEVEL | Nivel de registro del SDK de Pushwoosh. Para más detalles, consulte Control del nivel de registro. | NONE / ERROR / WARNING / INFO (por defecto) / DEBUG / VERBOSE Tipo: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | Permite al SDK rastrear las compras dentro de la aplicación. Necesario para el Customer Journey Builder. | YES / NO (por defecto) Tipo: Booleano |