Seguimiento de la entrega de mensajes en iOS
Existe un método de API en Pushwoosh que realiza un seguimiento de la entrega de notificaciones push. Las aplicaciones de iOS no son compatibles con este método de forma nativa, ya que las notificaciones push en iOS son manejadas por el sistema operativo (OS), no por el SDK de Pushwoosh. Sin embargo, puedes implementar el seguimiento de la entrega agregando la Extensión de Servicio de Notificaciones de Pushwoosh para el seguimiento de la entrega de push a tu proyecto. Aquí encontrarás los pasos para implementar el Seguimiento de la Entrega de Mensajes para aplicaciones de iOS.
Agregar la Extensión de Servicio de Notificaciones
Anchor link to-
En Xcode, selecciona Archivo > Nuevo > Target…
-
Selecciona Notification Service Extension y presiona Siguiente.
- Ingresa el nombre del producto y presiona Finalizar.
- Presiona Cancelar en el aviso de Activar esquema.
Al cancelar, mantienes Xcode depurando tu aplicación, en lugar de la extensión que acabas de crear. Si la activaste por accidente, puedes volver a depurar tu aplicación dentro de Xcode.
Dependencias para la Extensión de Servicio de Notificaciones (solo CocoaPods)
Anchor link toNota: Si estás utilizando Swift Package Manager para gestionar las dependencias, puedes omitir este paso, ya que las dependencias se agregan automáticamente.
Abre tu Podfile y agrega la dependencia para el target:
target 'NotificationServiceExtension' do use_frameworks! pod 'PushwooshXCFramework'endEjecuta los siguientes comandos en la terminal para instalar las dependencias:
rm -rf Podfile.lockpod deintegratepod setuppod repo updatepod installAgregar código para el seguimiento de eventos de entrega de mensajes
Anchor link to- Agrega el siguiente código a tu archivo NotificationService.m:
import UserNotificationsimport PushwooshFramework
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)? var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler) }}#import "PWNotificationExtensionManager.h"
@interface NotificationService : UNNotificationServiceExtension
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { [[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];}
- (void)serviceExtensionTimeWillExpire { // Called just before the extension is terminated by the system. // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.}
@end- Agrega Pushwoosh_APPID a tu info.plist de la Extensión de Servicio de Notificaciones.
<key>Pushwoosh_APPID</key> <string>XXXXX-XXXXX</string>Comparte tus comentarios con nosotros
Anchor link toTus comentarios nos ayudan a crear una mejor experiencia, por lo que nos encantaría saber de ti si tienes algún problema durante el proceso de integración del SDK. Si encuentras alguna dificultad, no dudes en compartir tus ideas con nosotros a través de este formulario.