Push-Benachrichtigungen in einrichten iOS Anwendung

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Zusätzlich zu den Aufgaben, die Sie für ausführen müssen ServiceNow Instanz um eine Push-Benachrichtigung zu konfigurieren, müssen Sie auch bestimmten Code in Ihren einfügen iOS Anwendung.

    Erstellen Sie den NowSDK NowPushService

    Eine der ersten Schritte, die in Ihrer Anwendung ausgeführt werden müssen, ist die Erstellung von NowPushService . Die NowPush SDK bietet eine Werksfunktion zum Erstellen dieses Service. Fügen Sie Code ähnlich dem folgenden Fragment frühzeitig in Ihrem Hauptcodetext hinzu.

    func setup(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
      NowPush.makePushService(instanceUrl: instanceURL)
        .mapError { .sdkError($0) }
        .map { $0 as NowService }
        .eraseToAnyPublisher()
    }

    Für zusätzliche Informationen zu NowPush.makePushService() Methode, siehe NowPush-API: IOS.

    Registrieren Sie das Push-Token

    Apple Stellt ein eindeutiges Push-Benachrichtigungstoken bereit, das das Gerät und die Anwendung identifiziert, um Push-Benachrichtigungen zu erhalten. Damit eine Anwendung eine Push-Benachrichtigung erhält, müssen Sie dieses Token mit registrieren NowPushService . Fügen Sie eine Funktion hinzu, die dem folgenden Code-Fragment in Ihrem ähnelt iOS Anwendung. Diese Anwendung muss bei registriert sein ServiceNow Instanz.

    func registerForPushNotifications(deviceToken: Data) {
      pushService.registerPushToken(deviceToken,
          pushAppName: "TestPushApp", // Modify this to be your iOS application name
          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
        }
      }
    }

    Für zusätzliche Informationen zu RegisterPushToken() Methode, siehe NowPushService – registerPushToken(_Token: Data, pushAppName: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @Escaping (Result<Data, NowPushError>) -> ungültig).

    Heben Sie die Registrierung des Push-Tokens auf

    Sie müssen die Registrierung eines Push-Tokens aufheben, wenn der Anwender Ihre Anwendung verlässt, z. B. wenn sich der Anwender abmeldet. Verwenden Sie Code, der dem folgenden Codeausschnitt ähnelt, um die Registrierung eines Push-Tokens aufzuheben. Stellen Sie sicher, dass Sie sich ändern pushAppNameAn den Namen Ihres iOS Anwendung.

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

    Für zusätzliche Informationen zu UnregisterPushToken() Methode, siehe NowPushService – unregisterPushToken(_Token: Data, pushAppName: Zeichenfolge, Umgebung: NowPushEnvironment, Abschluss: @Escaping (Result<Data, NowPushError>) -> ungültig).

    Analysieren Sie die Push-Nutzlast

    Sie müssen Nutzlasten von Push-Benachrichtigungen in einem analysieren NowPushPayload Objekt zum Sammeln von Informationen und zur Verwendung der Daten in anderen Teilen der Anwendung. Derzeit ist dies nur für Virtual Agent-Push-Benachrichtigungen verfügbar. Verwenden Sie Code ähnlich dem folgenden

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