NowPushService-Klasse – iOS
Die Klasse NowPushService stellt Funktionen bereit, die die Interaktion mit dem Push-Benachrichtigungsservice ermöglichen.
| Name | Beschreibung |
|---|---|
| konfigurieren | Konfigurationseinstellungen, die bei der Initialisierung des Service bereitgestellt wurden. Datentyp: NowServiceConfiguration |
NowPushService - registrierenPushToken(_token: Daten, pushAppName: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @escaping (Ergebnis<Data, NowPushError> ) -> ungültig)
Registriert ein eindeutiges Token bei der Instanz ServiceNow, das verwendet wird, um die Push-Benachrichtigungen für das aktuelle Gerät iOS und die angegebene Anwendung zu identifizieren.
| Name | Typ | Beschreibung |
|---|---|---|
| _token | Daten | Datenobjekt des zu registrierenden Push-Tokens. Dies ist das Token, das von der Developer Site Apple abgerufen wird. Weitere Informationen finden Sie im Entwicklerhandbuch Mobile SDK – iOS. |
| pushAppName | Zeichenfolge | Name der Push-Anwendung, für die dieses Token registriert wird. |
| Umgebung | NowPushEnvironment | Umgebung, für die das Token registriert wird. Gültige Werte:
|
| Abschluss | @escaping (Ergebnis<Data, NowPushError> ) → Ungültig | Abschluss-Handler, der ausgeführt werden soll, nachdem versucht wurde, das Token zu registrieren.
|
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird gezeigt, wie Sie ein Push-Benachrichtigungstoken für die Anwendung TestPushApp registrieren.
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: Daten, pushAppName: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @escaping (Ergebnis<Data, NowPushError> ) -> ungültig)
Hebt die Registrierung eines zuvor registrierten Push-Tokens auf.
| Name | Typ | Beschreibung |
|---|---|---|
| _token | Daten | Datenobjekt des Push-Tokens zum Aufheben der Registrierung. |
| pushAppName | Zeichenfolge | Name der Push-Anwendung, für die die Registrierung dieses Tokens aufgehoben wird. |
| Umgebung | NowPushEnvironment | Umgebung, für die das Token registriert wird. Gültige Werte:
|
| Abschluss | @escaping (Ergebnis<Data, NowPushError> ) → Ungültig | Abschluss-Handler, der ausgeführt werden soll, nachdem versucht wurde, die Registrierung des Tokens aufzuheben.
|
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird gezeigt, wie Sie die Registrierung des Push-Benachrichtigungstokens aufheben, das der TestPushApp-Anwendung zugeordnet ist.
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])
Analysiert die Schlüssel-Wert-Paare von userInfo in einem NowPushPayload- Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| _userInfo | [AnyHashable: Beliebig] | Push-Nutzlast-Inhalt, der als Teil der Push-Benachrichtigung empfangen wurde. |
| Typ | Beschreibung |
|---|---|
| Ergebnis<NowPushPayload, NowPushError> | Gibt die Ergebnisse der Nutzlastanalyse zurück.
|
In diesem Beispiel wird gezeigt, wie eine Benutzernutzlast analysiert wird.
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(())
}