---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Classe NowPushService - iOS

# Classe NowPushService - iOS {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 min. de leitura

A classe NowPushService fornece funções que permitem a interação com o serviço de notificação por push.
{#NowPushServiceiOSAPI__entry__2}

| Nome | Descrição |
|-|-|
| configuração | Definições de configuração fornecidas quando o serviço foi inicializado. Tipo de dados: [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/flpam5S9jLear5y_v4eXdA#NowServiceConfigurationiOSStruct "A estrutura NowServiceConfiguration define informações de configuração para um serviço da feição.") |
[Tabela 1. Propriedades]

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

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.
{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb__entry__3}

| 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. {#NPushServ-registerPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-registerPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[Tabela 2. Parâmetros]

{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb} {#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 3. Retorna]

{#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb}  
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) {#ariaid-title3}

Cancela o registro de um token de envio registrado anteriormente.
{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb__entry__3}

| 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. {#NPushServ-unregisterPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-unregisterPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[Tabela 4. Parâmetros]

{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb} {#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 5. Retorna]

{#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb}  
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\]) {#ariaid-title4}

Analisa os pares de chave-valor `userInfo` em um objeto `NowPushPayload`.
{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| _userInfo | \[AnyHashable: Qualquer\] | Conteúdo de carga de push recebido como parte da notificação por push. |
[Tabela 6. Parâmetros]

{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb} {#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb__entry__2}

| 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. {#NPushServ_payloadFromUserInfo_O__ul_pmt_m5h_trb} |
[Tabela 7. Retorna]

{#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb}  
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(())
    }


