---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Configurer des notifications push dans votre iOS application

# Configurer des notifications push dans votre iOS application {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

En plus des tâches que vous devez effectuer sur votre ServiceNow instance pour configurer une notification push, vous devez également inclure du code spécifique dans votre iOS application.

## Créer le NowSDK NowPushService {#mobsdk-ios-setup-push-app__section_hyb_zxp_prb}

L'une des premières choses à faire dans votre application est de créer un `NowPushService`. Le Kit de développement logiciel (SDK) `NowPush` fournit une fonction d'usine pour créer ce service. Ajoutez un code similaire à l'extrait de code suivant au début de votre corps de code principal.

    func setup(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
      NowPush.makePushService(instanceUrl: instanceURL)
        .mapError { .sdkError($0) }
        .map { $0 as NowService }
        .eraseToAnyPublisher()
    }

Pour plus d'informations sur la méthode NowPush.makePushService(), reportez-vous à [API NowPush - iOS](https://servicenow-prod.fluidtopics.net/Rbnf6mtPRlV85VLu6ue1Yw#NowPushiOSAPI "L’API NowPush est une API globale de haut niveau qui permet aux utilisateurs d’instancier une instance de service NowPush.").

## Enregistrer le jeton push {#mobsdk-ios-setup-push-app__section_kyr_4cq_prb}

Apple fournit un jeton de notification push unique qui identifie l'appareil et l'application pour recevoir des notifications push. Pour qu'une application reçoive une notification push, vous devez enregistrer ce jeton à l'aide de `NowPushService`. Ajoutez une fonction similaire à l'extrait de code suivant dans votre iOS application. Cette application doit être enregistrée auprès de votre ServiceNow instance.

    func registerForPushNotifications(deviceToken: Data) {
      pushService.registerPushToken(deviceToken,
          pushAppName: "TestPushApp", // Modify this to be your iOS application name
          environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
        case .success:
          UserDefaults.standard.set(true, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .registrationSuccess
        case .failure:
          UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .registrationFailed
        }
      }
    }

Pour plus d'informations sur la méthode registerPushToken(), reportez-vous à [NowPushService -- registerPushToken(_token : Data, pushAppName : String, environment : NowPushEnvironment, completion : @escaping (Result\<Data, NowPushError\>) -\> Void)](https://servicenow-prod.fluidtopics.net/QORVupwD3IsSX543G0i8~Q#NPushServ-registerPushToken_O_S_O_O "Enregistre un jeton unique avec l’instance ServiceNow utilisée pour identifier les notifications push pour l’appareil actuel iOS et l’application spécifiée.").

## Annuler l'inscription du jeton push

Vous devez annuler l'inscription d'un jeton push chaque fois que l'utilisateur quitte votre application, par exemple lorsqu'il se déconnecte. Utilisez un code similaire à l'extrait de code suivant pour annuler l'inscription d'un jeton push. Veillez à modifier pushAppName le nom de votre iOS application.

    func unregisterFromPushNotifications(deviceToken: Data) {
      pushService.unregisterPushToken(deviceToken, pushAppName: "TestPushApp", environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
        case .success:
          UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .unregisterSuccess
        case .failure:
          self.pushRegistrationState = .unregisterFailed
        }
      }
    }

Pour plus d'informations sur la méthode unregisterPushToken(), reportez-vous à [NowPushService -- unregisterPushToken(_token : Data, pushAppName : String, environment : NowPushEnvironment, completion : @escaping (Result\<Data, NowPushError\>) -\> Void)](https://servicenow-prod.fluidtopics.net/QORVupwD3IsSX543G0i8~Q#NPushServ-unregisterPushToken_O_S_O_O "Annule l’enregistrement d’un jeton push précédemment enregistré.").

## Analyser la charge utile push {#mobsdk-ios-setup-push-app__section_ofn_dlw_trb}

Vous devrez analyser les charges utiles des notifications push dans un objet `NowPushPayload` pour collecter des informations et utiliser les données dans d'autres parties de l'application. Actuellement, cette option n'est disponible que pour les notifications push d'Agent virtuel. Utilisez un code similaire à ce qui suit

    func userNotificationCenter(_ center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void) {
      guard let pushService = pushService else {
        completionHandler()
        return
      }
      let userInfo = response.notification.request.content.userInfo
      _ = pushService.payloadFromUserInfo(userInfo)
        .flatMap(handleNowPushPayload)
    }

    func handleNowPushPayload(_ payload: NowPushPayload) -> Result<Void, NowPushError> {
      guard payload is NowPushVirtualAgent else {
        return .failure(NowPushError.unsupportedData)
      }
      launchVirtualAgent()
      return .success(())
    }


