Classe NowPushService : iOS

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 3 minutes de lecture
  • La classe NowPushService fournit des fonctions qui permettent l’interaction avec le service de notifications push.

    Tableau 1. Propriétés
    Nom Description
    configuration Paramètres de configuration fournis lors de l’initialisation du service.

    Type de données : NowServiceConfiguration

    NowPushService : registerPushToken(_token : Data, pushAppName : String, environment : NowPushEnvironment, complétion : @escaping (Result<Data, NowPushError>) > Void)

    Enregistre un jeton unique auprès de l’instance ServiceNow utilisé pour identifier les notifications push pour l’appareil actuel iOS et l’application spécifiée.

    Tableau 2. Paramètres
    Nom Type Description
    _jeton Données Objet de données du jeton push à enregistrer. Il s’agit du jeton obtenu sur le Apple site Developer. Pour plus d’informations, consultez le Guide du Mobile SDK développeur - iOS.
    pushAppName Chaîne Nom de l’application push pour laquelle ce jeton est enregistré.
    environnement NowPushEnvironment Environnement pour lequel le jeton est en cours d’enregistrement.
    Valeurs valides :
    • production
    • Bac à sable
    achèvement @escaping (résultat<données, NowPushError>) → nul Gestionnaire de complétion à exécuter après 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.
    Tableau 3. Renvoie
    Type Description
    Aucun

    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)

    Annule l’enregistrement d’un jeton push précédemment enregistré.

    Tableau 4. Paramètres
    Nom Type Description
    _jeton Données Objet de données du jeton push à désinscrire.
    pushAppName Chaîne Nom de l’application push pour laquelle ce jeton est désenregistré.
    environnement NowPushEnvironment Environnement pour lequel le jeton est en cours d’enregistrement.
    Valeurs valides :
    • production
    • Bac à sable
    achèvement @escaping (résultat<données, NowPushError>) → nul Gestionnaire de complétion à exécuter après tentative de désinscription du jeton.
    • Réussite : données de réponse API.
    • Erreur : NowPushError : informations sur l’erreur qui s’est produite lors de la tentative de désinscription 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.
    Tableau 5. Renvoie
    Type Description
    Aucun

    Cet exemple montre comment annuler l’enregistrement 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])

    Analyse les paires clé-valeur userInfo dans un objet NowPushPayload .

    Tableau 6. Paramètres
    Nom Type Description
    _userInfo [anyHashable : n’importe lequel] Contenu de la charge utile push reçu dans le cadre de la notification push.
    Tableau 7. Renvoie
    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 rencontrée 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.

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