Pular para o conteúdo

Guia de integração avançada do SDK para iOS 7.0+

Esta seção fornece informações sobre a integração avançada do SDK Pushwoosh para iOS.

Modos de segundo plano

Anchor link to

Para habilitar essa funcionalidade, você deve adicionar os Modos de Segundo Plano (Background Modes) ao seu projeto.

Passos para habilitar os modos de segundo plano

Anchor link to
  1. Abra seu projeto no Xcode e selecione-o no Project Navigator.
  2. Escolha o alvo (target) do seu aplicativo no painel esquerdo.
  3. Navegue para a aba Signing & Capabilities.
  4. Clique no botão + Capability no canto superior esquerdo.
  5. Procure e selecione Background Modes na lista.
  6. Na seção Background Modes, habilite Remote notifications marcando a caixa.

Uma vez concluído, seu aplicativo será capaz de lidar com notificações push, incluindo as silenciosas, enquanto estiver sendo executado em segundo plano.

Modos de primeiro plano

Anchor link to

Por padrão, o SDK Pushwoosh para iOS exibe o banner de notificação quando o aplicativo está sendo executado em primeiro plano.

Você pode controlar esse comportamento definindo a seguinte flag booleana em seu código (ou seja, em seu AppDelegate):

// Defina como false para desabilitar as notificações em primeiro plano, true para habilitá-las
Pushwoosh.configure.showPushnotificationAlert = true

Nível de log

Anchor link to

O SDK Pushwoosh para iOS suporta os seguintes níveis de log:

  • NONE - Nenhum log do SDK.
  • ERROR - Exibe apenas mensagens de erro no console.
  • WARNING - Exibe avisos além dos erros.
  • INFO - Inclui mensagens informativas (configuração padrão).
  • DEBUG - Inclui informações detalhadas de depuração.

Por padrão, o nível de log é definido como INFO, garantindo que o SDK forneça informações relevantes sem sobrecarregar o console do desenvolvedor.

Para modificar o nível de log, atualize a chave Pushwoosh_LOG_LEVEL no arquivo Info.plist do seu aplicativo:

<key>Pushwoosh_LOG_LEVEL</key>
<string>YOUR_LOG_LEVEL</string>

Alternativamente, você pode alterar o nível de log usando o trecho de código abaixo:

Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)

Substitua YOUR_LOG_LEVEL pelo nível desejado (por exemplo, DEBUG ou ERROR).

UNNotificationCenterDelegate personalizado

Anchor link to

Se você quiser usar seu próprio UNNotificationCenterDelegate (por exemplo, para notificações locais), você deve informar o SDK da Pushwoosh sobre isso para um comportamento adequado. Você pode fazer isso com a propriedade notificationCenterDelegateProxy da instância Pushwoosh:

Pushwoosh.configure?.notificationCenterDelegateProxy.add(my_delegate)

Em seguida, implemente os métodos UNNotificationCenterDelegate em seu delegate:

func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) {
// Lide com sua notificação
completionHandler(UNNotificationPresentationOptions.alert)
}
}
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) {
// Lide com sua notificação
completionHandler()
}
}

Inicialização Lenta do Pushwoosh

Anchor link to

A flag Pushwoosh_LAZY_INITIALIZATION impede a inicialização automática do SDK da Pushwoosh quando o aplicativo é iniciado. Isso permite um maior controle sobre quando os serviços do SDK da Pushwoosh são iniciados.

Quando esta flag está habilitada, o SDK da Pushwoosh não inicia seus serviços até que os métodos do SDK Pushwoosh para iOS sejam explicitamente chamados.

Adicione a seguinte entrada ao Info.plist:

<key>Pushwoosh_LAZY_INITIALIZATION</key>
<true/>

Casos de Uso

  1. Inicialização Controlada do SDK – A flag Pushwoosh_LAZY_INITIALIZATION permite atrasar o início do SDK da Pushwoosh, dando mais controle sobre quando os serviços de push são ativados.

  2. Ativação de Push Adiada – Em alguns aplicativos, as notificações push só devem ser inicializadas sob condições específicas. Habilitar esta flag garante que o SDK da Pushwoosh inicie apenas quando explicitamente solicitado.

  3. Configuração de Push Específica do Usuário – Alguns aplicativos podem exigir a personalização das configurações de notificação push com base nas preferências do usuário ou nas configurações da conta. Com a inicialização lenta, o SDK da Pushwoosh inicia somente após a determinação da configuração apropriada.

Lista completa de propriedades do Info.plist

Anchor link to
PropriedadeDescriçãoValores Possíveis
Pushwoosh_APPIDDefine o ID do aplicativo Pushwoosh para a compilação de produção.XXXXX-XXXXX
Tipo: String
Pushwoosh_APPID_DevDefine o ID do aplicativo Pushwoosh para a compilação de desenvolvimento.XXXXX-XXXXX
Tipo: String
Pushwoosh_SHOW_ALERTMostra o alerta de notificação em primeiro plano.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALERT_TYPEDefine o estilo do alerta de notificação.BANNER (padrão) / ALERT / NONE
Tipo: String
Pushwoosh_BASEURLSubstitui a URL base do servidor Pushwoosh.https://cp.pushwoosh.com/json/1.3/ (padrão)
Tipo: String
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSHSe YES, os Deep Links recebidos em pushes silenciosos serão processados automaticamente.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALLOW_SERVER_COMMUNICATIONPermite que o SDK envie solicitações de rede para os servidores Pushwoosh.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATAPermite que o SDK colete e envie dados do dispositivo (versão do SO, localidade e modelo) para o servidor.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSIONPermite que o SDK colete e envie a versão do SO do dispositivo para o servidor.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALEPermite que o SDK colete e envie a localidade do dispositivo para o servidor.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODELPermite que o SDK colete e envie o modelo do dispositivo para o servidor.YES (padrão) / NO
Tipo: Boolean
Pushwoosh_LOG_LEVELNível de log do SDK Pushwoosh. Para detalhes, consulte Controlando o Nível de Log.NONE / ERROR / WARNING / INFO (padrão) / DEBUG / VERBOSE
Tipo: String
Pushwoosh_PURCHASE_TRACKING_ENABLEDPermite que o SDK rastreie compras no aplicativo. Necessário para o Customer Journey Builder.YES / NO (padrão)
Tipo: Boolean