Guia de integração avançada do SDK iOS
Esta seção fornece informações sobre a integração avançada do SDK iOS da Pushwoosh.
Modos em segundo plano
Anchor link toPara habilitar essa funcionalidade, você deve adicionar Modos em Segundo Plano ao seu projeto.
Etapas para habilitar os modos em segundo plano
Anchor link to- Abra seu projeto no Xcode e selecione-o no Project Navigator.
- Escolha o destino do seu aplicativo no painel esquerdo.
- Navegue até 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 poderá lidar com notificações push, incluindo as silenciosas, enquanto estiver em execução em segundo plano.
Modos em primeiro plano
Anchor link toPor padrão, o SDK iOS da Pushwoosh exibe o banner de notificação quando o aplicativo está em execução em primeiro plano.
Você pode controlar esse comportamento definindo o seguinte sinalizador booleano em seu código (ou seja, em seu AppDelegate):
// Set false to disable foreground notifications, true to enable itPushwoosh.sharedInstance().showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[Pushwoosh sharedInstance] setShowPushnotificationAlert:0];Nível de log
Anchor link toO SDK iOS da Pushwoosh 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ê deseja 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.sharedInstance()?.notificationCenterDelegateProxy.add(my_delegate)[Pushwoosh.sharedInstance.notificationCenterDelegateProxy addNotificationCenterDelegate:my_delegate];Em seguida, implemente os métodos UNNotificationCenterDelegate em seu delegado:
func userNotificationCenter( _ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) { // Handle your notification completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // Handle your notification completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Handle your message completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Handle your message completionHandler(); }}Inicialização Lenta do Pushwoosh
Anchor link toO sinalizador 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 este sinalizador está habilitado, o SDK da Pushwoosh não inicia seus serviços até que os métodos do SDK iOS da Pushwoosh sejam explicitamente chamados.
Adicione a seguinte entrada ao Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>Casos de Uso
-
Inicialização Controlada do SDK – O sinalizador Pushwoosh_LAZY_INITIALIZATION permite atrasar a inicialização do SDK da Pushwoosh, dando mais controle sobre quando os serviços push são ativados.
-
Ativação Push Adiada – Em alguns aplicativos, as notificações push devem ser inicializadas apenas sob condições específicas. Habilitar este sinalizador garante que o SDK da Pushwoosh inicie somente quando explicitamente solicitado.
-
Configuração 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 | Exibe o alerta de notificação em primeiro plano. | YES (padrão) / NO Tipo: Booleano |
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: Booleano |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | Permite que o SDK envie requisições de rede para os servidores Pushwoosh. | YES (padrão) / NO Tipo: Booleano |
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: Booleano |
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: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | Permite que o SDK colete e envie a localidade do dispositivo para o servidor. | YES (padrão) / NO Tipo: Booleano |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | Permite que o SDK colete e envie o modelo do dispositivo para o servidor. | YES (padrão) / NO Tipo: Booleano |
Pushwoosh_LOG_LEVEL | Nível de log do SDK da 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 Construtor de Jornada do Cliente. | YES / NO (padrão) Tipo: Booleano |