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 toPara 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- Abra seu projeto no Xcode e selecione-o no Project Navigator.
- Escolha o alvo (target) do seu aplicativo no painel esquerdo.
- Navegue para a aba Signing & Capabilities.
- Clique no botão + Capability no canto superior esquerdo.
- Procure e selecione Background Modes na lista.
- 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 toPor 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á-lasPushwoosh.configure.showPushnotificationAlert = true// Defina como 0 para desabilitar as notificações em primeiro plano, 1 para habilitá-las[[Pushwoosh configure] setShowPushnotificationAlert:0];Nível de log
Anchor link toO 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 toSe 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)[Pushwoosh.configure.notificationCenterDelegateProxy addNotificationCenterDelegate: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() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Lide com sua mensagem completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Lide com sua mensagem completionHandler(); }}Inicialização Lenta do Pushwoosh
Anchor link toA 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
-
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.
-
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.
-
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| Propriedade | Descrição | Valores Possíveis |
|---|---|---|
Pushwoosh_APPID | Define o ID do aplicativo Pushwoosh para a compilação de produção. | XXXXX-XXXXX Tipo: String |
Pushwoosh_APPID_Dev | Define o ID do aplicativo Pushwoosh para a compilação de desenvolvimento. | XXXXX-XXXXX Tipo: String |
Pushwoosh_SHOW_ALERT | Mostra o alerta de notificação em primeiro plano. | YES (padrão) / NO Tipo: Boolean |
Pushwoosh_ALERT_TYPE | Define o estilo do alerta de notificação. | BANNER (padrão) / ALERT / NONE Tipo: String |
Pushwoosh_BASEURL | Substitui a URL base do servidor Pushwoosh. | https://cp.pushwoosh.com/json/1.3/ (padrão) Tipo: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | Se YES, os Deep Links recebidos em pushes silenciosos serão processados automaticamente. | YES (padrão) / NO Tipo: Boolean |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | Permite que o SDK envie solicitações de rede para os servidores Pushwoosh. | YES (padrão) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | Permite 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_VERSION | Permite 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_LOCALE | Permite que o SDK colete e envie a localidade do dispositivo para o servidor. | YES (padrão) / NO Tipo: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | Permite que o SDK colete e envie o modelo do dispositivo para o servidor. | YES (padrão) / NO Tipo: Boolean |
Pushwoosh_LOG_LEVEL | Ní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_ENABLED | Permite que o SDK rastreie compras no aplicativo. Necessário para o Customer Journey Builder. | YES / NO (padrão) Tipo: Boolean |