Classe NowPushService - iOS

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 3 min. de leitura
  • A classe NowPushService fornece funções que permitem a interação com o serviço de notificação por push.

    Tabela 1. Propriedades
    Nome Descrição
    configuração Definições de configuração fornecidas quando o serviço foi inicializado.

    Tipo de dados: NowServiceConfiguration

    NowPushService - registerPushToken(_token: dados, pushAppName: cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: @escaping (resultado<Data, NowPushError> ) -> Vazio)

    Registra um token exclusivo com a instância ServiceNow usada para identificar as notificações por push do dispositivo iOS atual e da aplicação especificada.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    _token Dados Objeto de dados do token de push a ser registrado. Este é o token obtido do site do desenvolvedor Apple. Para obter mais informações, consulte o Mobile SDK Guia do desenvolvedor - iOS.
    pushAppName Cadeia de caracteres Nome da aplicação de envio para a qual este token está sendo registrado.
    ambiente NowPushEnvironment Ambiente para o qual o token está sendo registrado.
    Valores válidos:
    • produção
    • Área de testes
    conclusão @escaping (Resultado​<Data, NowPushError> ) → Vazio Manipulador de conclusão a ser executado após a tentativa de registro do token.
    • Sucesso: certificado de notificação por push do iOS.
    • Erro: NowPushError - Informações sobre o erro que ocorreu ao tentar registrar o token.
      Valores possíveis:
      • decodificação: ocorreu um erro de decodificação.
      • httpRequestFailure: erro genérico retornado sempre que a chamada http não é bem-sucedida (2xx).
      • notAuthorized: o solicitante não está autorizado a executar a operação de notificação por push especificada.
      • unsupportedData: a carga de envio é inválida.
    Tabela 3. Retornos
    Tipo Descrição
    Nenhum(a)

    Este exemplo mostra como registrar um token de notificação por push para a aplicação 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: dados, pushAppName: cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: @escaping (resultado<Data, NowPushError> ) -> Vazio)

    Cancela o registro de um token de envio registrado anteriormente.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    _token Dados Objeto de dados do token de envio para cancelar o registro.
    pushAppName Cadeia de caracteres Nome da aplicação de envio para a qual este token está sendo cancelado.
    ambiente NowPushEnvironment Ambiente para o qual o token está sendo registrado.
    Valores válidos:
    • produção
    • Área de testes
    conclusão @escaping (Resultado​<Data, NowPushError> ) → Vazio Manipulador de conclusão a ser executado após a tentativa de cancelar o registro do token.
    • Sucesso: dados de resposta da API.
    • Erro: NowPushError - Informações sobre o erro que ocorreu ao tentar cancelar o registro do token.
      Valores possíveis:
      • decodificação: ocorreu um erro de decodificação.
      • httpRequestFailure: erro genérico retornado sempre que a chamada http não é bem-sucedida (2xx).
      • notAuthorized: o solicitante não está autorizado a executar a operação de notificação por push especificada.
      • unsupportedData: a carga de envio é inválida.
    Tabela 5. Retornos
    Tipo Descrição
    Nenhum(a)

    Este exemplo mostra como cancelar o registro do token de notificação por push associado à aplicação 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])

    Analisa os pares de chave-valor userInfo em um objeto NowPushPayload.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    _userInfo [AnyHashable: Qualquer] Conteúdo de carga de push recebido como parte da notificação por push.
    Tabela 7. Retornos
    Tipo Descrição
    Resultado<NowPushPayload, NowPushError> Retorna os resultados da análise de carga.
    • Sucesso: objeto NowPushPayload analisado.
    • Falha: NowPushError — Informações sobre o erro encontrado ao analisar a carga do usuário especificada.
      Valores possíveis:
      • decodificação: ocorreu um erro de decodificação.
      • httpRequestFailure: erro genérico retornado sempre que a chamada http não é bem-sucedida (2xx).
      • notAuthorized: o solicitante não está autorizado a executar a operação de notificação por push especificada.
      • unsupportedData: a carga de envio é inválida.

    Este exemplo mostra como analisar uma carga de usuário.

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