Classe NowPushService : iOS
La classe NowPushService fournit des fonctions qui permettent l’interaction avec le service de notifications push.
| 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.
| 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 :
|
| achèvement | @escaping (résultat<données, NowPushError>) → nul | Gestionnaire de complétion à exécuter après tentative d’enregistrement du jeton.
|
| Type | Description |
|---|---|
| Néant |
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é.
| 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 :
|
| achèvement | @escaping (résultat<données, NowPushError>) → nul | Gestionnaire de complétion à exécuter après tentative de désinscription du jeton.
|
| Type | Description |
|---|---|
| Néant |
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 .
| Nom | Type | Description |
|---|---|---|
| _userInfo | [anyHashable : n’importe lequel] | Contenu de la charge utile push reçu dans le cadre de la notification push. |
| Type | Description |
|---|---|
| Résultat <NowPushPayload, NowPushError> | Renvoie les résultats de l’analyse de la charge utile.
|
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(())
}