Configuración Apple Push Notifications Service (APNs) y envío de notificaciones push móviles en Connectif

Para el envío y recepción de push mediante el Mobile SDK de iOS necesitarás tener configurado Apple Push Notifications Service (APNs). En este artículo se explican los pasos necesarios para realizar la configuración.

 

1. Crear y configurar la Key de APNs

Es posible que ya tengas disponible una Key, en ese caso no necesitarás realizar estos pasos y podrás pasar a configurar la integración.

Desde tu cuenta de Apple Developer, accede al apartado Keys y haz clic en el símbolo + para añadir una.

listKeysApn.png

Al crearla, tendrás que marcar la capacidad de Apple Push Notification Service (APNs) y haz clic en Continue.

newKeyWithAPNs.png

El siguiente paso te pedirá una confirmación antes de registrar la clave.

registerKey.png

Una vez creada, descarga el fichero ".p8", que necesitarás más adelante para configurar las Notificaciones Push de iOS en Connectif.

Recuerda que solo podrás descargar este fichero una única vez.

downloadKey.png

 

2. Configurar la integración en Connectif

Dentro de la configuración del canal de App Móvil en Connectif, accede al apartado iOS Push. Ahí sube el fichero ".p8" descargado en el paso 1.

uploadKeyConnectif.png

Una vez subido el fichero, la interfaz del apartado se verá así: 

configuracionInicialApnConnectif.png

Selecciona entre los dos tipos de Host, Production o Development y configúralos según tu propósito.

Los parámetros Team ID y Key ID los podrás obtener en tu página de Apple Developer en la sección de Key:

  • En la parte superior derecha encontrarás tu Team ID y, junto a la Key, el Key ID.

teamDevAndKeyId.png

Después, configura el Bundle identifier, que encontrarás en la información general de tu proyecto en xCode en el target principal.

BundleIdentifier.png

Una vez realizada la configuración de esos parámetros en Connectif, la integración con toda la configuración debería de tener este aspecto:

integracionPushIosTerminada.png

 

3. Añadir capacidad de Push Notification

En caso de que tu  proyecto no tenga la capacidad de manejo de Notificaciones Push, tendrás que añadirla.

Haz clic en tu proyecto, en el Target principal del mismo y, en la sección Signing & Capabilities,  haz clic sobre + Capability

addCapabilitiesiOS.png

En esa sección aparecerá el diálogo para poder buscar y añadir la capacidad de manejo de Notificaciones Push.

Captura de pantalla 2024-10-21 a las 15.18.28.png

 

4. Añadir capacidad de Background Modes con Remote Notifications.

Con el mismo proceso que has usado para añadir la capacidad de Push Notification, añade la capacidad Background Modes.

Una vez añadida, dirígete de nuevo a la configuración de la misma para asegurarte que está marcada la opción Remote Notifications.

 

5. Añadir Notification Service Extension

Para poder enriquecer correctamente y hacer tracking de tus Notificaciones Push, será necesario crear un Notification Service Extension.



Haz clic sobre el botón de añadir target y busca Notification Service Extension. Un posible nombre para na extensión puede ser ConnectifNotificationServiceExtension.



Recuerda que, si tu proyecto principal tiene un "Minimum Deployments" concreto, para esta extensión debería ser el mismo.

2024-10-21_13-03.png

 

6. Añadir App Group

La capacidad de App Group te permitirá tener acceso a los datos entre tu target principal y tu extensión para notificaciones.

Del mismo modo que has añadido la capacidad de Push Notification y Background Modes, añade un App Group al target principal de tu app.

Captura de pantalla 2024-10-21 a las 13.09.57.png

Una vez añadida la capacidad App Groups, en la configuración del mismo añadiremos un contenerdor. Mantendremos el formato de group + identificador de bundle + connectif. Quedará como en este ejemplo:

Captura de pantalla 2024-10-21 a las 13.12.44.png

Repite este proceso y añádelo al Notification Service Extension creado anteriormente, respetando el mismo nombre del contenedor.

 

7. Modificaciones en el código

7.1. Inicio del SDK

Al arrancar el SDK, añade el parámetro appGroup indicando el nombre del contenedor que has creado en el paso anterior.

Connectif.initialize(apiKey: "YOUR_API_KEY",
appGroup: "YOUR_CONTAINER_APPGROUP_NAME")


7.2. Modificaciones en AppDelegate

Si quieres usar  directamente nuestra extensión de AppDelegate, podrás extender ConnectifAppDelegate, sin olvidar llamar a super.application.

class AppDelegate: ConnectifAppDelegate {

override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
super.application(
application,
didFinishLaunchingWithOptions: launchOptions
)

Connectif.initialize(apiKey: "YOUR_API_KEY",
appGroup: "YOUR_CONTAINER_APPGROUP_NAME")

return true
}
}

Si quieres modificar las funciones en tu AppDelegate directamente, añade en:

  • didRegisterForRemoteNotificationsWithDeviceToken

Connectif.addPushToken(deviceToken: deviceToken)
  •  didFinishLaunchingWithOptions

UNUserNotificationCenter.current().delegate = self
  • didReceiveRemoteNotification

completionHandler(.newData)
  • userNotificationCenter(_: UNUserNotificationCenter, willPresent ...
completionHandler([.alert, .sound, .badge])
  • userNotificationCenter( _: UNUserNotificationCenter, didReceive ...

Connectif.handleNotificationUserAction devolverá un booleano indicando si la push fue manejada por Connectif, para poder realizar el manejo de push procedentes de otro proveedor.

Connectif.handleNotificationUserAction(
            actionIdentifier: response.actionIdentifier,
            userInfo: response.notification.request.content.userInfo)
completionHandler()


7.3. Modificaciones en Notification Service Extension

override func didReceive(
    _ request: UNNotificationRequest,
    withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void
  ) {
    self.contentHandler = contentHandler
    guard
      Connectif.handleNotification(
        appGroup: "YOUR_APP_GROUP", request: request,
        contentHandler: contentHandler)
    else {
      //Notification not handled by Connectif, handle other notifications here
      contentHandler(request.content)
      return

    }

  }

 

8. Permiso de Notificaciones

Recuerda que es un requisito para poder recibir push el pedir al contacto los permisos para recibir push y que este los acepte. Una vez concedidos, podrás registrar el dispositivo para Notificaciones Push y se enviará el token a Connectif.

Aquí tienes un ejemplo de peticiones de permisos y de registros del dispositivo para obtener el token.

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
DispatchQueue.main.async {
application.registerForRemoteNotifications()
}
}
}

 

 

 

¡Enhorabuena!
Has llegado al final de la lección.

  

¿Te han quedado dudas sin resolver?
Recuerda que tienes a tu disposición a nuestros especialistas en Connectif. Para contactar con ellos, tan solo tendrás que abrir ticket a Soporte haciendo clic en el botón azul de “Ayuda” de tu dashboard.


¡Sigue aprendiendo!

Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos:

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0