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


---

# Configuração de notificações por push em sua aplicação iOS

# Configuração de notificações por push em sua aplicação iOS {#ariaid-title1}

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

Além das tarefas que você deve executar em sua instância ServiceNow para configurar uma notificação por push, você também deve incluir um código específico em sua aplicação iOS.

## Criar o NowSDK NowPushService {#mobsdk-ios-setup-push-app__section_hyb_zxp_prb}

Uma das primeiras coisas que precisa ser feita em sua aplicação é criar um `NowPushService`. O `NowPush` SDK fornece uma função de fábrica para criar este serviço. Adicione um código semelhante ao snippet a seguir no início do corpo do código principal.

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

Para obter informações adicionais sobre o método NowPush.makePushService(), consulte [API do NowPush - iOS](https://servicenow-prod.fluidtopics.net/JLrT1R4ru0qM6OXOUfOo7Q#NowPushiOSAPI "A API NowPush é uma API global de nível superior que permite aos usuários instanciar uma instância de serviço NowPush.").

## Registrar o token de push {#mobsdk-ios-setup-push-app__section_kyr_4cq_prb}

Apple fornece um token de notificação por push exclusivo que identifica o dispositivo e a aplicação para receber notificações por push. Para que uma aplicação receba notificação por push, você deve registrar este token usando o `NowPushService`. Adicione uma função semelhante ao snippet de código a seguir em sua aplicação iOS. Esta aplicação deve ser registrada com sua instância ServiceNow.

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

Para obter informações adicionais sobre o método registerPushToken(), consulte [NowPushService - registerPushToken(_token: dados, pushAppName: cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: @escaping (resultado\<Data, NowPushError\> ) -\> Vazio)](https://servicenow-prod.fluidtopics.net/GpXmfvYyfLdiE4oVEYANnw#NPushServ-registerPushToken_O_S_O_O "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.").

## Cancelar registro do token de envio

Você precisa cancelar o registro de um token de envio sempre que o usuário sair da aplicação, como quando o usuário faz logout. Use um código semelhante ao snippet de código a seguir para cancelar o registro de um token de envio. Certifique-se de mudar pushAppName para o nome da sua aplicação iOS.

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

Para obter informações adicionais sobre o método unregisterPushToken(), consulte [NowPushService - unregisterPushToken(_token: dados, pushAppName: cadeia de caracteres, ambiente: NowPushEnvironment, conclusão: @escaping (resultado\<Data, NowPushError\> ) -\> Vazio)](https://servicenow-prod.fluidtopics.net/GpXmfvYyfLdiE4oVEYANnw#NPushServ-unregisterPushToken_O_S_O_O "Cancela o registro de um token de envio registrado anteriormente.").

## Analisar carga de push {#mobsdk-ios-setup-push-app__section_ofn_dlw_trb}

Você precisará analisar as cargas de notificação por push em um objeto `NowPushPayload` para coletar informações e usar os dados em outras partes da aplicação. Atualmente, isso só está disponível para notificações por push do Virtual Agent. Use um código semelhante ao seguinte

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


