NowPushService-Klasse – iOS

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Die NowPushService Die Klasse bietet Funktionen, die die Interaktion mit dem Push-Benachrichtigungsservice ermöglichen.

    Tabelle : 1. Eigenschaften
    Name Beschreibung
    konfigurieren Konfigurationseinstellungen, die bei der Initialisierung des Service bereitgestellt wurden.

    Datentyp: NowServiceConfiguration

    NowPushService – registerPushToken(_Token: Data, pushAppName: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @Escaping (Result<Data, NowPushError>) -> ungültig)

    Registriert ein eindeutiges Token bei ServiceNow Instanz, die zum Identifizieren der Push-Benachrichtigungen für die aktuelle Instanz verwendet wird iOS Gerät und angegebene Anwendung.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    _Token Daten Datenobjekt des zu registrierenden Push-Tokens. Dies ist das Token, das von abgerufen wurde Apple Entwickler-Site. Weitere Informationen finden Sie unter Mobile SDK Entwicklerleitfaden – iOS.
    PusAppName 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:
    • Produktion
    • Sandbox
    Abschluss @Escaping (Ergebnis​-<Data, NowPushError>) → ungültig Abschlusshandler, der ausgeführt werden soll, nachdem versucht wurde, das Token zu registrieren.
    • Erfolg: IOS-Push-Benachrichtigungszertifikat.
    • Fehler: NowPushError: Informationen zum Fehler, der beim Versuch, das Token zu registrieren, aufgetreten ist.
      Mögliche Werte:
      • Decodierung: Decodierungsfehler aufgetreten.
      • HttpRequestFailure: Generischer Fehler, der zurückgegeben wird, wenn der HTTP-Aufruf kein Erfolg ist (2xx).
      • NotAuthorized: Die anfordernde Person ist nicht berechtigt, den angegebenen Push-Benachrichtigungsvorgang auszuführen.
      • UnsupportedData: Push-Nutzlast ist ungültig.
    Tabelle : 3. Rückgaben
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie ein Push-Benachrichtigungstoken für die TestPushApp-Anwendung registriert wird.

    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: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @Escaping (Result<Data, NowPushError>) -> ungültig)

    Hebt die Registrierung eines zuvor registrierten Push-Tokens auf.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    _Token Daten Datenobjekt des Push-Tokens, dessen Registrierung aufgehoben werden soll.
    PusAppName 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:
    • Produktion
    • Sandbox
    Abschluss @Escaping (Ergebnis​-<Data, NowPushError>) → ungültig Abschlusshandler, der ausgeführt werden soll, nachdem versucht wurde, die Registrierung des Tokens aufzuheben.
    • Erfolg: API-Antwortdaten .
    • Fehler: NowPushError – Informationen zum Fehler, der beim Versuch aufgetreten ist, die Registrierung des Tokens aufzuheben.
      Mögliche Werte:
      • Decodierung: Decodierungsfehler aufgetreten.
      • HttpRequestFailure: Generischer Fehler, der zurückgegeben wird, wenn der HTTP-Aufruf kein Erfolg ist (2xx).
      • NotAuthorized: Die anfordernde Person ist nicht berechtigt, den angegebenen Push-Benachrichtigungsvorgang auszuführen.
      • UnsupportedData: Push-Nutzlast ist ungültig.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie die Registrierung des Push-Benachrichtigungstoken aufgehoben wird, 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: Beliebig])

    Analysiert Anwenderinfo Schlüssel-Wert-Paare in ein NowPushPayload Objekt.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    _AnwenderInfo [AnyHashable: Beliebig] Inhalt der Push-Nutzlast, der als Teil der Push-Benachrichtigung empfangen wurde.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Result<NowPushPayload, NowPushError> Gibt die Ergebnisse der Nutzlastanalyse zurück.
    • Erfolg: Analysiert NowPushPayload Objekt.
    • Fehler: NowPushError – Informationen zum Fehler, der beim Analysieren der angegebenen Anwendernutzlast aufgetreten ist.
      Mögliche Werte:
      • Decodierung: Decodierungsfehler aufgetreten.
      • HttpRequestFailure: Generischer Fehler, der zurückgegeben wird, wenn der HTTP-Aufruf kein Erfolg ist (2xx).
      • NotAuthorized: Die anfordernde Person ist nicht berechtigt, den angegebenen Push-Benachrichtigungsvorgang auszuführen.
      • UnsupportedData: Push-Nutzlast ist ungültig.

    Dieses Beispiel zeigt, wie eine Anwendernutzlast 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(())
    }