Classe NowCoreService : iOS
La classe NowCoreService fournit des services fondamentaux aux différents services de fonctionnalités du SDK. Cette classe ne doit être instanciée que par NowSDK.
Les services de fonctionnalités, tels que Now Analytics et NowChat, peuvent accéder à une instance principale partagée via la propriété NowSDK.core.
NowCoreService : accessTokenDidFail(pour service : NowService)
Notifie 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 SDK Core renvoie un jeton d’accès valide s’il est capable d’en générer un ou renvoie une erreur.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité demandant le jeton d’accès. |
| Type | Description |
|---|---|
| AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> | Réussite : jeton d’accès valide. Échec : AccessTokenProviderError Valeurs possibles :
|
NowSDK.core()?.accessTokenDidFail(for: someService)
.mapError { YourCustomError.accessTokenFailed($0) }
.flatMap(self.handleFailedAccessToken())
.eraseToAnyPublisher()
NowCoreService : gnèves asynchrones accessTokenDidFail(pour service : NowService)
Notifie 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 SDK Core renvoie un jeton d’accès valide s’il est capable d’en générer un ou renvoie une erreur.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité demandant le jeton d’accès. |
| Type | Description |
|---|---|
| NowSDK.Jetond’accès | Renvoyé lorsque la méthode est efficace. Jeton d’accès valide. |
| AccessTokenProviderError | Lancé en cas d’échec de la méthode. Indique une erreur lors de la récupération d’un jeton d’accès. Valeurs possibles :
|
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)
Demande à l’application hôte 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 de fonctionnalités doivent appeler cette fonction pour déterminer s’ils sont autorisés à demander une autorisation d’appareil souhaitée.
| Nom | Type | Description |
|---|---|---|
| autorisation | Autorisation de l’appareil | Appareil pour lequel la demande est effectuée. Valeurs possibles (sensibles à la casse) :
|
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’application hôte autorise le SDK à demander l’autorisation d’appareil spécifiée. Valeurs possibles :
|
extension AppDelegate: DevicePermissionDelegate {
func canRequestPermission(_ permission: DevicePermission) -> Bool {
return true
}
}
NowCoreService : isGuestUser(pour service : NowService) asynchrone
Vérifie si l’utilisateur actuel est un utilisateur invité.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité pour lequel effectuer la vérification de l’utilisateur invité. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’utilisateur actuel est un utilisateur invité. Valeurs possibles :
|
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 SDK pour tous les services en les récupérant à partir des serveurs actifs.
Pour recevoir les valeurs des paramètres SDK mises à jour chaque fois qu’elles sont actualisées, abonnez-vous à l’éditeur fourni par la NowCoreService : settingsPublisher(pour le service : NowService) fonction.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Néant |
NowSDK.core()?.refreshAllSettings()
NowCoreService : refreshSettings(pour service : NowService)
Actualise les paramètres SDK pour le service spécifié en les récupérant à partir du serveur.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité, tel que NowChat ou NowAnalytics, demandant l’actualisation des paramètres. |
| Type | Description |
|---|---|
| AnyPublisher<Settings, SettingsError> | Réussite : Dictionnaire des paramètres SDK actualisés. Les services d’entités doivent examiner les données renvoyées pour les paramètres pertinents pour leurs entités spécifiques. Échec : SettingsError : type et description de l’erreur rencontrée. Valeurs possibles :
|
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 service : NowService) lève une asynchronisation
Actualise les paramètres SDK pour le service spécifié en les récupérant à partir du serveur.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité, tel que NowChat ou NowAnalytics, demandant l’actualisation des paramètres. |
| Type | Description |
|---|---|
| Paramètres | Renvoyé lorsque la méthode est efficace. Dictionnaire des paramètres actualisés du SDK. Les services d’entités doivent examiner les données renvoyées pour les paramètres pertinents pour leurs entités spécifiques. |
| SettingsError | Lancé en cas d’échec de la méthode. Valeurs possibles :
|
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é.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité demandant le jeton d’accès. |
| Type | Description |
|---|---|
| AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> | Réussite : NowSDK.AccessToken : jeton d’accès à utiliser pour autoriser les demandes d’API effectuées à une ServiceNow instance. Échec : AccessTokenProviderError : type et description de l’erreur rencontrée. Valeurs possibles :
|
NowSDK.core()?.requestAccessToken(for: someService)
NowCoreService : requestAccessToken(pour service : NowService) lèves asynchrones
Acquiert un jeton d’accès pour le service spécifié.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité demandant le jeton d’accès. |
| Type | Description |
|---|---|
| NowSDK.Jetond’accès | Renvoyé lorsque la méthode est efficace. Jeton d’accès à utiliser pour autoriser les demandes d’API effectuées à une ServiceNow instance. |
| AccessTokenProviderError | Lancé en cas d’échec de la méthode. Indique une erreur lors de la récupération d’un jeton d’accès. Valeurs possibles :
|
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 service : NowService)
Renvoie une référence à un service réseau partagé que vous pouvez utiliser pour effectuer des demandes d’API.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service de fonctionnalité demandant le service réseau. |
| Type | Description |
|---|---|
| NetworkService (en anglais) | 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 SDK pour le service de fonctionnalités spécifié.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service d’entités demandant les paramètres. |
| Type | Description |
|---|---|
| AnyPublisher<Settings, SettingsError> | Réussite : paramètres : 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 :
|
NowSDK.core()?.requestSettings(for: someService)
NowCoreService : requestSettings(pour service : NowService) lève une vue asynchrone
Renvoie les paramètres SDK pour le service de fonctionnalités spécifié.
| Nom | Type | Description |
|---|---|---|
| pour le service | NowService | Service d’entités demandant les paramètres. |
| Type | Description |
|---|---|
| Paramètres | Renvoyé lorsque la méthode est efficace. Tableau des paramètres SDK pour le service de fonctionnalités spécifié. |
| SettingsError | Lancé en cas d’échec de la méthode. Type et description de l’erreur associée. Valeurs possibles :
|
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é.
| Nom | Type | Description |
|---|---|---|
| pour le service | Protocole NowService : iOS | Service de fonctionnalité demandant l’abonnement de l’éditeur. |
| Type | Description |
|---|---|
| AnyPublisher<Settings, jamais> | Réussite : paramètres : 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)