---
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


---

# Classe NowPushService : iOS

# Classe NowPushService : iOS {#ariaid-title1}

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

La classe NowPushService fournit des fonctions qui activent l'interaction avec le service de notification push.
{#NowPushServiceiOSAPI__entry__2}

| Nom | Description |
|-|-|
| configuration | Paramètres de configuration fournis lors de l'initialisation du service. Type de données : [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") |
[Tableau 1. Propriétés]

## NowPushService -- registerPushToken(_token : Data, pushAppName : String, environment : NowPushEnvironment, completion : @escaping (Result\<Data, NowPushError\>) -\> Void) {#ariaid-title2}

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.
{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb__entry__3}

| Nom | Type | Description |
|-|-|-|
| _jeton | Données | Objet de données du jeton push à inscrire. Il s'agit du jeton obtenu sur le Apple site développeur. Pour en savoir plus, consultez le Guide du Mobile SDK développeur - iOS. |
| pushAppName (en anglais seulement) | Chaîne | Nom de l'application push pour laquelle ce jeton est enregistré. |
| environnement | NowPushEnvironment (en anglais seulement) | Environnement pour lequel le jeton est enregistré. Valeurs valides : * production * Bac à sable |
| achèvement | @escaping (Result\<Data, NowPushError\>) → Void | Gestionnaire de complétion à exécuter après la tentative d'enregistrement du jeton. * Réussite : certificat de notification push iOS. * Erreur : NowPushError : informations sur l'erreur qui s'est produite lors de la tentative d'enregistrement du jeton. Valeurs possibles : * décodage : Une erreur de décodage s'est produite. * httpRequestFailure : erreur générique renvoyée chaque fois que l'appel http échoue (2xx). * notAuthorized : le demandeur n'est pas autorisé à effectuer l'opération de notification push spécifiée. * unsupportedData : la charge utile push n'est pas valide. {#NPushServ-registerPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-registerPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[Tableau 2. Paramètres]

{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb} {#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 3. Renvoie]

{#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb}  
Cet exemple montre comment enregistrer un jeton de notification push pour l'application TestPushApp.

    func registerForPushNotifications(deviceToken: Data) {
      pushService.registerPushToken(deviceToken,
          pushAppName: "TestPushApp",
          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
        }
      }
    }

## NowPushService -- unregisterPushToken(_token : Data, pushAppName : String, environment : NowPushEnvironment, completion : @escaping (Result\<Data, NowPushError\>) -\> Void) {#ariaid-title3}

Annule l'enregistrement d'un jeton push précédemment enregistré.
{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb__entry__3}

| Nom | Type | Description |
|-|-|-|
| _jeton | Données | Objet de données du jeton push à désinscrire. |
| pushAppName (en anglais seulement) | Chaîne | Nom de l'application push pour laquelle ce jeton est désinscrit. |
| environnement | NowPushEnvironment (en anglais seulement) | Environnement pour lequel le jeton est enregistré. Valeurs valides : * production * Bac à sable |
| achèvement | @escaping (Result\<Data, NowPushError\>) → Void | Gestionnaire de complétion à exécuter après la tentative d'annulation de l'inscription du jeton. * Réussite : données de réponse de l'API. * Erreur : `NowPushError` : informations sur l'erreur qui s'est produite lors de la tentative d'annulation de l'enregistrement du jeton. Valeurs possibles : * décodage : Une erreur de décodage s'est produite. * httpRequestFailure : erreur générique renvoyée chaque fois que l'appel http échoue (2xx). * notAuthorized : le demandeur n'est pas autorisé à effectuer l'opération de notification push spécifiée. * unsupportedData : la charge utile push n'est pas valide. {#NPushServ-unregisterPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-unregisterPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[Tableau 4. Paramètres]

{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb} {#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 5. Renvoie]

{#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb}  
Cet exemple montre comment annuler l'inscription du jeton de notification push associé à l'application TestPushApp.

    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
        }
      }
    }

## NowPushService : payloadFromUserInfo(_userInfo : \[AnyHashable : Any\]) {#ariaid-title4}

Analyse les paires `clé-valeur userInfo` en un objet `NowPushPayload` .
{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb__entry__3}

| Nom | Type | Description |
|-|-|-|
| _userInfo | \[AnyHashable : N'importe lequel\] | Contenu de la charge utile push reçu dans le cadre de la notification push. |
[Tableau 6. Paramètres]

{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb} {#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb__entry__2}

| Type | Description |
|-|-|
| Résultat \<NowPushPayload, NowPushError\> | Renvoie les résultats de l'analyse de la charge utile. * Réussite : objet `NowPushPayload` analysé. * Échec : `NowPushError` : informations sur l'erreur qui s'est produite lors de l'analyse de la charge utile de l'utilisateur spécifié. Valeurs possibles : * décodage : Une erreur de décodage s'est produite. * httpRequestFailure : erreur générique renvoyée chaque fois que l'appel http échoue (2xx). * notAuthorized : le demandeur n'est pas autorisé à effectuer l'opération de notification push spécifiée. * unsupportedData : la charge utile push n'est pas valide. {#NPushServ_payloadFromUserInfo_O__ul_pmt_m5h_trb} |
[Tableau 7. Renvoie]

{#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb}  
Cet exemple montre comment analyser la charge utile d'un utilisateur.

    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(())
    }


