Pular para o conteúdo

FAQ do SDK para iOS

FAQ de integração com iOS

Anchor link to

P: Como posso instalar o SDK da Pushwoosh no meu projeto iOS?

Anchor link to

Você pode integrar o SDK da Pushwoosh usando o Swift Package Manager ou o CocoaPods.

P: Como instalo o SDK da Pushwoosh usando o Swift Package Manager?

Anchor link to

No Xcode, navegue até a seção Package Dependencies e adicione o pacote usando a seguinte URL: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

P: Como instalo o SDK da Pushwoosh usando o CocoaPods?

Anchor link to

Abra o Podfile do seu projeto e adicione a linha pod 'PushwooshXCFramework'. Em seguida, execute o comando pod install no terminal.

P: Quais capabilities preciso adicionar ao meu projeto para habilitar as Notificações Push?

Anchor link to

Na seção Signing & Capabilities das configurações do seu projeto, você precisa adicionar as capabilities Push Notifications e Background Modes. Ao adicionar Background Modes, certifique-se de marcar a caixa para Remote notifications.

P: Qual capability adicional é necessária para Time Sensitive Notifications (Notificações Sensíveis ao Tempo)?

Anchor link to

Se você pretende usar Time Sensitive Notifications (iOS 15+), também precisa adicionar a capability Time Sensitive Notifications.

P: Onde preciso adicionar o código de inicialização da Pushwoosh?

Anchor link to

O código de inicialização precisa ser adicionado à sua classe AppDelegate.

P: Qual código de inicialização devo adicionar no AppDelegate do SwiftUI?

Anchor link to

Consulte o exemplo de código Swift fornecido para integrar a Pushwoosh em um projeto SwiftUI.

P: Qual código de inicialização devo adicionar em um AppDelegate Swift padrão?

Anchor link to

Consulte o exemplo de código Swift fornecido para integrar a Pushwoosh em um projeto Swift padrão.

P: Qual código de inicialização devo adicionar em um AppDelegate Objective-C?

Anchor link to

Consulte o exemplo de código Objective-C fornecido para integrar a Pushwoosh em um projeto Objective-C.

P: Quais chaves preciso adicionar ao meu arquivo Info.plist?

Anchor link to

Você precisa adicionar a chave Pushwoosh_APPID definida com o seu Código de Aplicativo e a chave PW_API_TOKEN definida com o seu Token de API no arquivo Info.plist do seu aplicativo.

P: Qual é o propósito do rastreamento de entrega de mensagens?

Anchor link to

A Pushwoosh suporta o rastreamento de eventos de entrega para notificações push usando a Notification Service Extension.

P: Como adiciono uma Notification Service Extension ao meu projeto?

Anchor link to

No Xcode, vá para File > New > Target…, escolha Notification Service Extension e pressione Next. Insira um nome para o target e pressione Finish. Quando solicitado para ativar, pressione Cancel.

P: Como adiciono o SDK da Pushwoosh à Notification Service Extension?

Anchor link to

Adicione o trecho de código Swift ou Objective-C fornecido ao arquivo principal .swift ou .m da sua Notification Service Extension. Este código utiliza o PWNotificationExtensionManager para lidar com a solicitação de notificação.

P: Qual é o propósito dos App Groups?

Anchor link to

A capability App Groups é necessária para permitir que a Notification Service Extension se comunique com o aplicativo principal.

P: Como habilito os App Groups para o meu target principal e para a Notification Service Extension?

Anchor link to

Para ambos os targets, vá para Signing & Capabilities, adicione a capability App Groups e crie um novo grupo pressionando o botão +. Certifique-se de que o nome do grupo comece com group. e use o mesmo nome de grupo para ambos os targets.

P: Quais chaves preciso adicionar ao Info.plist do meu target principal para os App Groups?

Anchor link to

No Info.plist do seu target principal, adicione a chave PW_APP_GROUPS_NAME e defina seu valor para o nome do seu grupo de App Groups.

P: Quais chaves preciso adicionar ao Info.plist da minha Notification Service Extension?

Anchor link to

No Info.plist da sua Notification Service Extension, adicione a chave PW_APP_GROUPS_NAME (definida com o nome do seu grupo de App Groups) e a chave Pushwoosh_APPID (definida com o seu Código de Aplicativo).

P: Como verifico a integração da Pushwoosh?

Anchor link to

Após compilar e executar seu projeto, vá para o Painel de Controle da Pushwoosh e envie uma notificação push para o seu aplicativo. Você deve ver a notificação aparecer no seu dispositivo.

P: Quais são os dois callbacks principais para lidar com notificações push no SDK da Pushwoosh?

Anchor link to

Os dois callbacks principais são onMessageReceived e onMessageOpened.

P: Quando o callback onMessageReceived é invocado?

Anchor link to

O método onMessageReceived é chamado quando uma notificação push é recebida pelo aplicativo.

P: Quando o callback onMessageOpened é invocado?

Anchor link to

O método onMessageOpened é chamado quando o usuário interage e abre uma notificação push.

P: Como posso acessar o payload de uma notificação push recebida ou aberta?

Anchor link to

O payload de um objeto PWMessage (passado para os callbacks onMessageReceived e onMessageOpened) pode ser acessado através de sua propriedade payload.

P: Como posso definir um ID de usuário na Pushwoosh?

Anchor link to

Use o método setUserId(_:) do objeto Pushwoosh.sharedInstance(), passando o ID do usuário como argumento.

P: Como posso definir o endereço de e-mail de um usuário na Pushwoosh?

Anchor link to

Use o método setEmail(_:) do objeto Pushwoosh.sharedInstance(), fornecendo o e-mail do usuário.

Como posso definir informações adicionais do usuário como tags na Pushwoosh?

Anchor link to

Use o método setTags(_:) do objeto Pushwoosh.sharedInstance(), passando um dicionário onde as chaves são os nomes das tags e os valores são os valores correspondentes das tags.

Como posso rastrear um evento de usuário com atributos adicionais?**

Anchor link to

Use o método postEvent(_:withAttributes:) do PWInAppManager.shared(), fornecendo o nome do evento (por exemplo, "login") e um dicionário de atributos (por exemplo, "name", "last_login").

P: Como posso rastrear um evento de compra de usuário com detalhes do produto?

Anchor link to

Use o método postEvent(_:withAttributes:) do PWInAppManager.shared() com o nome do evento "purchase" e um dicionário contendo detalhes do produto como "product_id", "product_name", "price" e "quantity".

P: Como configuro um delegate para lidar com a apresentação de rich media?

Anchor link to

No seu view controller ou em outra classe apropriada, conforme-se ao protocolo PWRichMediaPresentingDelegate e defina a propriedade delegate de PWRichMediaManager.shared() para a sua instância conformada.

P: Como posso configurar o estilo de apresentação de rich media?

Anchor link to

Use o objeto PWModalWindowConfiguration.shared() para configurar propriedades como a posição da janela modal e as animações de apresentação/dispensa usando o método configureModalWindow(with:present:dismiss:).

P: Quais informações posso acessar nos métodos do delegate de rich media?**

Anchor link to

Os métodos do delegate fornecem acesso ao objeto PWRichMedia, que contém informações sobre o conteúdo de rich media, incluindo seu pushPayload. O método presentingDidFailForRichMedia:withError: também fornece um objeto Error descrevendo a falha.

Solução de problemas

Anchor link to

P: Erro “Your provisioning profile does not have APS entry”

Anchor link to

Se você vir a mensagem de erro “Your provisioning profile does not have APS entry.”, certifique-se de que seu perfil de provisionamento é compatível com push e possui a string aps-environment com o valor production ou development. A maneira mais fácil de verificar é abrir o perfil de provisionamento móvel em qualquer editor de texto e procurar pela string aps-environment. Ela deve estar lá.

Se estiver, e você continuar recebendo o erro, significa que o Xcode ainda está selecionando um perfil “não compatível com push”. Por favor, certifique-se de que você está assinando com o correto - às vezes, se você tiver dois perfis para o mesmo App ID, o Xcode se confunde e assina com o antigo.

Os passos recomendados são:

  1. Remova todos os perfis do Xcode;
  2. Adicione o único e novo perfil;
  3. Recompile o aplicativo.

P: Qual é a aparência do push token e do hwid do iOS?

Anchor link to

Os push tokens de dispositivos iOS são strings com 64 símbolos hexadecimais. Exemplo de push token:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
Certifique-se de que os push tokens do iOS que você usa ao direcionar dispositivos específicos em suas solicitações de API estejam em letras minúsculas.

A Pushwoosh usa o IDFV como o HWID do dispositivo. Note que ele pode mudar caso o usuário reinstale todos os aplicativos de um fornecedor específico.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

P: Como eu ativo e desativo o banner quando meu aplicativo está em execução?

Anchor link to

Por padrão, nosso SDK mais recente para iOS exibe o banner de notificação quando o aplicativo está em execução em primeiro plano.
Você pode controlar esse comportamento alterando as seguintes flags no Info.plist:

Flag Pushwoosh_ALERT_TYPE – tipo string, os valores são:

  • BANNER – valor padrão, exibe um alerta de banner no aplicativo
  • ALERT – notificação de alerta
  • NONE – não mostrar notificações quando o aplicativo está em primeiro plano

P: Como obtenho o push token do meu dispositivo iOS para usar em Dispositivos de Teste?

Anchor link to

Para obter o push token do seu dispositivo iOS,

  1. Abra o Xcode => Devices & Simulators;
  2. Conecte o dispositivo de teste ao seu computador;
  3. Selecione seu dispositivo conectado na lista de dispositivos à esquerda;
  4. Clique no botão Open Console.

Inicie o aplicativo para o qual você precisa do push token do dispositivo e localize seu push token de 64 caracteres hexadecimais na linha “Registered for push notifications”:

P: Por que os badges não são limpos depois que eu desinstalo e reinstalo meu aplicativo em um curto período?

Anchor link to

Este é um comportamento esperado - os badges são gerenciados pelo próprio iOS e seus valores são armazenados nas preferências do aplicativo, que não são removidas instantaneamente quando você desinstala seu aplicativo. O valor de um badge permanece lá por algum tempo em caso de reinstalação imediata, resultando nos mesmos badges sendo exibidos após a reinstalação de um aplicativo.