Saltar al contenido

Habilite el servicio de notificaciones push para su aplicación iOS

Todos los códigos de notificación push estarán en el código generado en el AppDelegate.swift expediente.
Abre el AppDelegate.swift archivo para inspeccionar el código de notificación.

Primero, el dispositivo se registra para notificaciones remotas mediante el modo de llamada registerForRemoteNotifications(:). Luego, especificó los tipos de notificaciones que admitirá su aplicación, además de agregar una referencia a la clase de configuración de notificaciones, lo que permite que su aplicación reciba las notificaciones bajo presión. Esto resultará en su aplicación “Nombre de la aplicación” desea enviarle notificaciones diálogo de confirmación.

Echemos un vistazo al initializeRemoteNotification(:) método. Este método se encargará de registrar la aplicación para recibir notificaciones remotas y solicitar la autorización de la aplicación.

func initializeRemoteNotification() {
   // Registering for remote notifications
   UIApplication.shared.registerForRemoteNotifications()
   let center = UNUserNotificationCenter.current()
   center.requestAuthorization(options: [.alert, .badge, .sound]) { _, _ in
       // Enable or disable features based on authorization.
   }
   center.delegate = self
}

El es uploadDeviceTokenForRemoteNotification(_:Data) se encargará de la señal del dispositivo de la aplicación cargada en SAP Cloud Platform Mobile Services.

func uploadDeviceTokenForRemoteNotification(_ deviceToken: Data) {
       guard let session = sessionManager.onboardingSession else {
           // Onboarding not yet performed
           return
       }
       let parameters = SAPcpmsRemoteNotificationParameters(deviceType: "iOS")
       session.registerDeviceToken(deviceToken: deviceToken, withParameters: parameters) { error in
           if let error = error {
               self.logger.error("Register DeviceToken failed", error: error)
               return
           }
           self.logger.info("Register DeviceToken succeeded")
       }
   }

Los siguientes métodos ubicados en AppDelegate implementación de métodos para manejar la notificación remota marcado, son métodos delegados para todo el manejo de notificaciones remotas.

func application(_: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        self.uploadDeviceTokenForRemoteNotification(deviceToken)
    }

func application(_: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    self.logger.error("Failed to register for Remote Notification", error: error)
}

// Called to let your app know which action was selected by the user for a given notification.
func userNotificationCenter(_: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
    self.logger.info("App opened via user selecting notification: (response.notification.request.content.body)")
    // Here is where you want to take action to handle the notification, maybe navigate the user to a given screen.
    completionHandler()
}

// Called when a notification is delivered to a foreground app.
func userNotificationCenter(_: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    self.logger.info("Remote Notification arrived while app was in foreground: (notification.request.content.body)")
    // Currently we are presenting the notification alert as the application were in the background.
    // If you have handled the notification and do not want to display an alert, call the completionHandler with empty options: completionHandler([])
    completionHandler([.alert, .sound])
}