NowPushService-Klasse – iOS

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Die Klasse NowPushService stellt Funktionen bereit, 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 - 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.

    Tabelle : 2. Parameter
    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 SDKiOS.
    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:
    • Produktion
    • Sandbox
    Abschluss @escaping (Ergebnis​<Data, NowPushError> ) → Ungültig Abschluss-Handler, der ausgeführt werden soll, nachdem versucht wurde, das Token zu registrieren.
    • Erfolg: Zertifikat für iOS-Push-Benachrichtigung.
    • Fehler: NowPushError – Informationen zum Fehler, der beim Versuch, das Token zu registrieren, aufgetreten ist.
      Mögliche Werte:
      • decoding: Decodierungsfehler aufgetreten.
      • httpRequestFailure: Generischer Fehler, der zurückgegeben wird, wenn der HTTP-Aufruf nicht erfolgreich 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

    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.

    Tabelle : 4. Parameter
    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:
    • Produktion
    • Sandbox
    Abschluss @escaping (Ergebnis​<Data, NowPushError> ) → Ungültig Abschluss-Handler, der ausgeführt werden soll, nachdem versucht wurde, die Registrierung des Tokens aufzuheben.
    • Erfolg: API-Antwortdaten.
    • Fehler: NowPushError – Informationen zum Fehler, der beim Versuch, die Registrierung des Tokens aufzuheben, aufgetreten ist.
      Mögliche Werte:
      • decoding: Decodierungsfehler aufgetreten.
      • httpRequestFailure: Generischer Fehler, der zurückgegeben wird, wenn der HTTP-Aufruf nicht erfolgreich 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

    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.

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

    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(())
    }