Guia de integração básica do SDK Capacitor
Esta seção contém informações sobre como integrar o SDK Capacitor do Pushwoosh em seu aplicativo.
Pré-requisitos
Anchor link toPara integrar o SDK Capacitor do Pushwoosh em seu aplicativo, você precisará do seguinte:
Passos de integração
Anchor link to1. Adicionar Dependência do SDK Capacitor do Pushwoosh
Anchor link toAdicione a dependência do SDK Capacitor do Pushwoosh ao seu projeto:
npm install pushwoosh-capacitor-pluginSincronize a configuração do Capacitor:
npx cap sync2. Inicialização do SDK Capacitor
Anchor link toNo seu arquivo JavaScript principal, importe e inicialize o SDK Pushwoosh:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDKPushwoosh.onDeviceReady({ appid: "__YOUR_APP_CODE__", projectid: "__YOUR_FCM_SENDER_ID__"});
// Register for push notificationsPushwoosh.registerDevice() .then(result => { console.log("Push token:", result.pushToken); // Handle successful registration }) .catch(error => { console.error("Failed to register device:", error); // Handle registration error });Onde:
__YOUR_APP_CODE__é o código do aplicativo do Painel de Controle Pushwoosh.__YOUR_FCM_SENDER_ID__é o número do projeto Firebase do Console do Firebase.
3. Configuração Nativa do iOS
Anchor link to3.1 Capabilities
Anchor link toPara habilitar as Notificações Push em seu projeto, você precisa adicionar certas capabilities.
Na seção Signing & Capabilities, adicione as seguintes capabilities:
Push NotificationsBackground Modes. Após adicionar esta capability, marque a caixa paraRemote notifications.
Se você pretende usar Notificações Sensíveis ao Tempo (iOS 15+), adicione também a capability Time Sensitive Notifications.
3.2 Info.plist
Anchor link toNo seu Runner/Info.plist, defina a chave __PUSHWOOSH_DEVICE_API_TOKEN__ para o Token da API de Dispositivo Pushwoosh:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 Rastreamento de entrega de mensagens
Anchor link toVocê deve adicionar um alvo de Notification Service Extension ao seu projeto. Isso é essencial para o rastreamento preciso da entrega e para recursos como Rich Media no iOS.
Siga os passos do guia nativo para adicionar o alvo da extensão e o código Pushwoosh necessário dentro dele.
4. Configuração Nativa do Android
Anchor link to4.1 Instalar dependências
Anchor link toCertifique-se de que as dependências e plugins necessários sejam adicionados aos seus scripts Gradle:
Adicione o plugin Google Services Gradle às dependências do seu build.gradle de nível de projeto:
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' }}Aplique o plugin no seu arquivo build.gradle de nível de aplicativo:
apply plugin: 'com.google.gms.google-services'4.2 Adicionar arquivo de configuração do Firebase
Anchor link toColoque o arquivo google-services.json na pasta android/app no diretório do seu projeto.
4.3 Adicionar metadados do Pushwoosh
Anchor link toNo seu main/AndroidManifest.xml, adicione o Token da API de Dispositivo Pushwoosh dentro da tag <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />Importante: Certifique-se de dar ao token acesso ao aplicativo correto no seu Painel de Controle Pushwoosh. Saiba mais
5. Executar o Projeto
Anchor link to- Compile e execute o projeto.
- Vá para o Painel de Controle Pushwoosh e envie uma notificação push.
- Você deve ver a notificação no aplicativo.
Integração estendida
Anchor link toNeste ponto, você já integrou o SDK e pode enviar e receber notificações push. Agora, vamos explorar a funcionalidade principal.
Listeners de eventos de notificação push
Anchor link toNo SDK Capacitor do Pushwoosh, existem dois métodos de callback para lidar com notificações push:
pushReceivedCallbacké acionado quando uma notificação push é recebidapushOpenedCallbacké acionado quando um usuário abre uma notificação
Você deve configurar esses callbacks logo após a inicialização do SDK:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callbackawait Pushwoosh.pushReceivedCallback((notification, err) => { if (err) { console.error("Failed to process received notification:", err); } else { console.log("Push received:", JSON.stringify(notification)); // Handle the received notification }});
// Set up push opened callbackawait Pushwoosh.pushOpenedCallback((notification, err) => { if (err) { console.error("Failed to process opened notification:", err); } else { console.log("Push opened:", JSON.stringify(notification)); // Handle the opened notification }});Configuração do usuário
Anchor link toAo focar no comportamento e nas preferências individuais do usuário, você pode entregar conteúdo personalizado, levando a um aumento da satisfação e lealdade do usuário.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration { async afterUserLogin(user) {
// Set user ID Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh await Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}Tags
Anchor link toTags são pares de chave-valor atribuídos a usuários ou dispositivos, permitindo a segmentação com base em atributos como preferências ou comportamento, possibilitando o envio de mensagens direcionadas.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser { async afterUserUpdateProfile(user) {
// Set list of favorite categories await Pushwoosh.setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information await Pushwoosh.setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}Eventos
Anchor link toEventos são ações ou ocorrências específicas do usuário dentro do aplicativo que podem ser rastreadas para analisar o comportamento e acionar mensagens ou ações correspondentes.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event afterUserLogin(user) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Track purchase event afterUserPurchase(product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}Solução de problemas
Anchor link toSe você encontrar algum problema durante o processo de integração, consulte a seção de suporte e comunidade.