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.
Al crearla, tendrás que marcar la capacidad de Apple Push Notification Service (APNs) y haz clic en Continue.
El siguiente paso te pedirá una confirmación antes de registrar la clave.
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.
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.
Una vez subido el fichero, la interfaz del apartado se verá así:
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.
Después, configura el Bundle identifier, que encontrarás en la información general de tu proyecto en xCode en el target principal.
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:
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.
En esa sección aparecerá el diálogo para poder buscar y añadir la capacidad de manejo de Notificaciones Push.
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.
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.
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:
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()
}
}
}
¡Sigue aprendiendo!
Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos:
- Guía completa para integrar Connectif con tu App Móvil, para conocer en profundidad todos los cambios de esta integración.
- iOS SDK Get Started, para añadir Connectif Mobile SDK a tu proyecto iOS.
- Android SDK Get Started, para añadir Connectif Mobile SDK a tu proyecto Android.
- Configuración Firebase Cloud Messaging, para activar el envío y recepción de push mediante el Mobile SDK de Android.