Classe NowCoreService : iOS

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 7 minutes de lecture
  • La classe NowCoreService fournit des services fondamentaux aux différents services de fonctionnalité du Kit de développement logiciel (SDK). Cette classe ne doit être instanciée que par NowSDK.

    Les services de fonctionnalité, tels que Now Analytics et Now Chat, peuvent accéder à une instance principale partagée via la propriété NowSDK.core.

    NowCoreService : accessTokenDidFail(pour le service : NowService)

    Informe le noyau du SDK que le jeton d’accès utilisé pour autoriser les demandes d’API à l’instance ServiceNow pour le service spécifié n’est plus valide.

    Le cœur du SDK renvoie un jeton d’accès valide s’il est capable d’en générer un ou s’il renvoie une erreur.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 1. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant le jeton d’accès.
    Tableau 2. Renvoie
    Type Description
    AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> Réussite : jeton d’accès valide.

    Échec : AccessTokenProviderError

    Valeurs possibles :
    • userSessionError (Erreur de session utilisateur)
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens : indique un utilisateur invité

    NowSDK.core()?.accessTokenDidFail(for: someService)
      .mapError { YourCustomError.accessTokenFailed($0) }
    
    .flatMap(self.handleFailedAccessToken())
      .eraseToAnyPublisher()

    NowCoreService : access TokenDidFail(pour le service : NowService) lève des levages asynchrones

    Informe le noyau du SDK que le jeton d’accès utilisé pour autoriser les demandes d’API à l’instance ServiceNow pour le service spécifié n’est plus valide.

    Le cœur du SDK renvoie un jeton d’accès valide s’il est capable d’en générer un ou s’il renvoie une erreur.

    Tableau 3. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant le jeton d’accès.
    Tableau 4. Renvoie
    Type Description
    NowSDK.AccessToken Renvoyé lorsque la méthode réussit. Jeton d’accès valide.
    AccessTokenProviderError Levée lorsque la méthode échoue. Indique une erreur lors de la récupération d’un jeton d’accès.
    Valeurs possibles :
    • userSessionError (Erreur de session utilisateur)
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens : indique un utilisateur invité

    Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let accessToken = try await NowSDK.core()?.accessTokenDidFail(for: someService)
    } catch {
        self.handleFailedAccessToken(error)
    }

    NowCoreService : canRequestPermission(_ permission : DevicePermission)

    Interroge l’application hôte pour savoir si le service est autorisé à demander l’autorisation de l’appareil.

    Cette fonction ne demande pas l’autorisation, mais seulement si elle est autorisée à interroger l’autorisation de l’appareil. Les services d’entités doivent appeler cette fonction pour déterminer s’ils sont autorisés à demander une autorisation d’appareil souhaitée.

    Tableau 5. Paramètres
    Nom Type Description
    autorisation Autorisation de l’appareil Appareil pour lequel la demande est effectuée.
    Valeurs possibles (sensible à la casse) :
    • Caméra
    • emplacement
    • Microphone
    • Photothèque
    • speachRecognition (en anglais seulement)
    Tableau 6. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’application hôte autorise le Kit de développement logiciel (SDK) à demander l’autorisation de l’appareil spécifié.
    Valeurs possibles :
    • true : l’autorisation de l’appareil peut être demandée.
    • false : l’autorisation de l’appareil ne peut pas être demandée.

    extension AppDelegate: DevicePermissionDelegate {
      func canRequestPermission(_ permission: DevicePermission) -> Bool {
        return true
      }
    }

    NowCoreService – isGuestUser(for service : NowService) async

    Vérifie si l’utilisateur actuel est un utilisateur invité.

    Tableau 7. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité pour lequel effectuer la vérification de l’utilisateur invité.
    Tableau 8. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’utilisateur actuel est un utilisateur invité.
    Valeurs possibles :
    • true : l’utilisateur actuel du service spécifié est un utilisateur invité.
    • false : l’utilisateur actuel du service spécifié n’est pas un utilisateur invité.

    L’exemple de code suivant montre comment appeler cette méthode.

    let isGuestUser = await NowSDK.core()?.isGuestUser(for: someService)

    NowCoreService : refreshAllSettings()

    Actualise tous les paramètres du SDK pour tous les services en les récupérant à nouveau à partir des serveurs actifs.

    Pour recevoir les valeurs des paramètres du SDK mises à jour chaque fois qu’elles sont actualisées, abonnez-vous à l’éditeur fourni par la NowCoreService : settingsPublisher(pour le service : NowService) fonction.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Néant

    NowSDK.core()?.refreshAllSettings()

    NowCoreService : refreshSettings(pour le service : NowService)

    Actualise les paramètres du SDK pour le service spécifié en les récupérant à nouveau à partir du serveur.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 11. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité, tel que NowChat ou Now Analytics, demandant l’actualisation des paramètres.
    Tableau 12. Renvoie
    Type Description
    AnyPublisher<Settings, SettingsError> Success : Dictionary of refresh SDK settings (Réussite) : dictionnaire des paramètres SDK actualisés. Les services d’entités doivent examiner les données renvoyées pour déterminer les paramètres pertinents pour leurs fonctionnalités spécifiques.

    Échec : SettingsError : type et description de l’erreur rencontrée.

    Valeurs possibles :
    • fetchError (Erreur de récupération)
    • fetchFailed (Échec de l’extraction
    • fichier JSON invalide
    • Fournisseur non valide
    • notAuthorized (non autorisé)
    • sdkNotLicensed
    • settingNotFound
    • Inconnu

    var subscriptions = Set<AnyCancellable>()
    NowSDK.core?.refreshSettings(for: someService)
      .sink(receiveCompletion: { completion in
        if case .failure(let error) = completion {
          print("Refresh failed with error:\ (error)")
        }
      }, receiveValue: { settings in
        print("Received refreshed settings:\ (settings)")
      })
      .store(in: &subscriptions)

    NowCoreService : refreshSettings(pour le service : NowService) lève une asynchrone

    Actualise les paramètres du SDK pour le service spécifié en les récupérant à nouveau à partir du serveur.

    Tableau 13. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité, tel que NowChat ou Now Analytics, demandant l’actualisation des paramètres.
    Tableau 14. Renvoie
    Type Description
    Paramètres Renvoyé lorsque la méthode réussit. Dictionnaire des paramètres du SDK actualisés. Les services d’entités doivent examiner les données renvoyées pour déterminer les paramètres pertinents pour leurs fonctionnalités spécifiques.
    Erreur de paramètres Levée lorsque la méthode échoue.
    Valeurs possibles :
    • fetchError (Erreur de récupération)
    • fetchFailed (Échec de l’extraction
    • fichier JSON invalide
    • Fournisseur non valide
    • notAuthorized (non autorisé)
    • sdkNotLicensed
    • settingNotFound
    • Inconnu

    Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let settings = try await NowSDK.core()?.refreshSettings(for: someService)
        print("Received refreshed settings: \(settings)")
    } catch {
        print("Refresh failed with Settings error: \(error)")
    }

    NowCoreService : requestAccessToken(pour le service : NowService)

    Acquiert un jeton d’accès pour le service spécifié.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 15. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant le jeton d’accès.
    Tableau 16. Renvoie
    Type Description
    AnyPublisher&lt;NowSDK.AccessToken, AccessTokenProviderError> Réussite : NowSDK.AccessToken : jeton d’accès à utiliser pour autoriser les demandes d’API effectuées sur une ServiceNow instance.

    Échec : AccessTokenProviderError : type et description de l’erreur rencontrée.

    Valeurs possibles :
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens : indique un utilisateur invité
    • userSessionError (Erreur de session utilisateur)

    NowSDK.core()?.requestAccessToken(for: someService)

    NowCoreService – requestAccessToken(for service : NowService) levages asynchrones

    Acquiert un jeton d’accès pour le service spécifié.

    Tableau 17. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant le jeton d’accès.
    Tableau 18. Renvoie
    Type Description
    NowSDK.AccessToken Renvoyé lorsque la méthode réussit. Jeton d’accès à utiliser pour autoriser les demandes d’API effectuées sur une ServiceNow instance.
    AccessTokenProviderError Levée lorsque la méthode échoue. Indique une erreur lors de la récupération d’un jeton d’accès.
    Valeurs possibles :
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens : indique un utilisateur invité
    • userSessionError (Erreur de session utilisateur)

    Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let accessToken = try await NowSDK.core()?.requestAccessToken(for: someService)
    } catch {
        self.handleFailedAccessToken(error)
    }

    NowCoreService : requestNetworkService(pour le service : NowService)

    Renvoie une référence à un service réseau partagé que vous pouvez utiliser pour effectuer des demandes d’API.

    Remarque :
    Il s’agit d’un service partagé. La modification des paramètres ou la fin de la session peut entraîner des problèmes pour d’autres services d’entités qui partagent cette session.
    Tableau 19. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant le service réseau.
    Tableau 20. Renvoie
    Type Description
    Service de réseau Service réseau partagé que vous pouvez utiliser pour effectuer des appels d’API.

    L’exemple de code suivant montre comment appeler cette fonction.

    NowSDK.core()?.settingsPublisher(for: chatService)
    .sink(receiveCompletion: { completion in
      if case .failure(let error) = completion {
        // Setting publisher failed with error
      }
    }, receiveValue: { updatedSettings in
      // Receive array of SDK settings for chatService
    })
    .store(in: &subscriptions)

    NowCoreService : requestSettings(forservice : NowService)

    Renvoie les paramètres du Kit de développement logiciel (SDK) pour le service d’entités spécifié.

    Remarque :
    Cette méthode a été déconseillée. Vous devez utiliser l’implémentation async/await de la méthode à la place.
    Tableau 21. Paramètres
    Nom Type Description
    forservice Service Now Service de fonctionnalité demandant les paramètres.
    Tableau 22. Renvoie
    Type Description
    AnyPublisher&lt;Settings, SettingsError> Success : Settings - Tableau des paramètres SDK pour le service d’entités spécifié.

    Échec : SettingsError : type et description de l’erreur associée.

    Valeurs possibles :
    • fetchError (Erreur de récupération)
    • fetchFailed (Échec de l’extraction
    • fichier JSON invalide
    • Fournisseur non valide
    • notAuthorized (non autorisé)
    • sdkNotLicensed
    • settingNotFound
    • Inconnu

    NowSDK.core()?.requestSettings(for: someService)

    NowCoreService : requestSettings(pour le service : NowService) lève une fonction asynchrone

    Renvoie les paramètres du Kit de développement logiciel (SDK) pour le service d’entités spécifié.

    Tableau 23. Paramètres
    Nom Type Description
    pour le service Service Now Service de fonctionnalité demandant les paramètres.
    Tableau 24. Renvoie
    Type Description
    Paramètres Renvoyé lorsque la méthode réussit. Tableau des paramètres SDK pour le service d’entités spécifié.
    Erreur de paramètres Levée lorsque la méthode échoue. Type et description de l’erreur associée.
    Valeurs possibles :
    • fetchError (Erreur de récupération)
    • fetchFailed (Échec de l’extraction
    • fichier JSON invalide
    • Fournisseur non valide
    • notAuthorized (non autorisé)
    • sdkNotLicensed
    • settingNotFound
    • Inconnu

    Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let settings = try await NowSDK.core()?.requestSettings(for: someService)
        print("Received settings: \(settings)")
    } catch {
        print("Refresh saved with Settings error: \(error)")
    }

    NowCoreService : settingsPublisher(pour le service : NowService)

    Récupère les paramètres de l’éditeur du service spécifié.

    Tableau 25. Paramètres
    Nom Type Description
    pour le service Protocole NowService : iOS Service de fonctionnalité demandant l’abonnement de l’éditeur.
    Tableau 26. Renvoie
    Type Description
    AnyPublisher&lt;Settings, jamais> Success : Settings - Tableau des paramètres SDK pour le service d’entités spécifié.

    L’exemple de code suivant montre comment appeler cette fonction.

    NowSDK.core()?.settingsPublisher(for: chatService)
    .sink(receiveCompletion: { completion in
      if case .failure(let error) = completion {
        // Setting publisher failed with error
      }
    }, receiveValue: { updatedSettings in
      // Receive array of SDK settings for chatService
    })
    .store(in: &subscriptions)