Guia de integração básica do SDK do Flutter
Esta seção contém informações sobre como integrar o SDK do Pushwoosh para Flutter em seu aplicativo.
Pré-requisitos
Anchor link toPara integrar o SDK do Pushwoosh para Flutter em seu aplicativo, você precisará do seguinte:
Passos de integração
Anchor link to1. Adicionar dependência do SDK do Pushwoosh para Flutter
Anchor link toAdicione o pacote pushwoosh_flutter ao seu arquivo pubspec.yaml:
dependencies: flutter: sdk: flutter # Use the latest version from https://pub.dev/packages/pushwoosh_flutter pushwoosh_flutter: ^[LATEST_VERSION]Verifique a última versão em pub.dev.
Em seguida, execute o seguinte comando no diretório raiz do seu projeto para instalar a dependência:
flutter pub getVerifique novamente se o pacote está instalado corretamente:
flutter pub deps | grep pushwoosh_flutter
# Example output:# ❯ flutter pub deps | grep pushwoosh_flutter# └── pushwoosh_flutter 2.3.112. Inicialização do SDK do Flutter
Anchor link toNo componente raiz do seu arquivo main.dart:
- Importe o pacote
pushwoosh_flutter. - Inicialize o SDK do Pushwoosh.
- Chame
registerForPushNotifications()em sua lógica de inicialização para se registrar para notificações push.
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
void main() async { runApp(const MyApp()); Pushwoosh.initialize({ "app_id": "__YOUR_APP_ID__", "sender_id": "__YOUR_FCM_SENDER_ID__" }); Pushwoosh.getInstance.registerForPushNotifications();}Onde:
__YOUR_APP_ID__é o código da aplicação 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 Capacidades
Anchor link toPara habilitar as Notificações Push em seu projeto, você precisa adicionar certas capacidades.
Na seção Signing & Capabilities, adicione as seguintes capacidades:
Push NotificationsBackground Modes. Após adicionar esta capacidade, marque a caixa paraRemote notifications.
Se você pretende usar Notificações Sensíveis ao Tempo (iOS 15+), adicione também a capacidade 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 Extensão de Serviço de Notificação 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.
Para garantir que a Extensão de Serviço de Notificação esteja devidamente integrada em seu projeto Flutter, você precisa usar a seguinte configuração de Podfile:
target 'NotificationServiceExtension' do use_frameworks! use_modular_headers!
pod 'PushwooshXCFramework'
inherit! :search_pathsend3.4 Instalando dependências para o projeto Flutter iOS
Anchor link toPara instalar as dependências do projeto Flutter iOS, execute o seguinte comando:
flutter runou navegue para a pasta ios no terminal e execute:
pod install --repo-update4. 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 do Pushwoosh, existem dois listeners de eventos, projetados para lidar com notificações push:
- O evento
onPushReceivedé acionado quando uma notificação push é recebida - O evento
onPushAcceptedé acionado quando um usuário abre uma notificação
Você deve configurar esses listeners de eventos logo após a inicialização do SDK, na inicialização do aplicativo:
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class PushwooshNotificationHandler { void setupPushListeners(Pushwoosh pushwoosh) {
pushwoosh.onPushReceived.listen((event) { print("Push received: ${event.pushwooshMessage.payload}"); });
pushwoosh.onPushAccepted.listen((event) { print("Push accepted: ${event.pushwooshMessage.payload}"); });
}}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 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class Registration { void afterUserLogin(User user) {
// Set user ID Pushwoosh().setUserId(user.getId());
// Set user email Pushwoosh().setEmail(user.getEmail());
// Register SMS number // The SMS and WhatsApp numbers must be in E.164 format (e.g., "+1234567890") and be valid Pushwoosh().registerSmsNumber(user.getSmsNumber());
// Register WhatsApp number Pushwoosh().registerWhatsappNumber(user.getWhatsappNumber());
// Setting additional user information as tags for Pushwoosh 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, o que possibilita o envio de mensagens direcionadas.
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class UpdateUser { void afterUserUpdateProfile(User user) {
// Set list of favorite categories Pushwoosh().setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information 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 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class Registration {
// Track login event void afterUserLogin(User user) { Pushwoosh().postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
void afterUserPurchase(Product product) {
// Track purchase event Pushwoosh().postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}Usando o ProGuard
Anchor link toAssim, você pode receber esta exceção:
java.lang.IllegalStateException: Could not find class for name: com.pushwoosh.plugin.PushwooshNotificationServiceExtensionExistem duas soluções neste caso:
- Use o comando
flutter build apk --no-shrinkpara compilar seu código sem ofuscação. - Ou você pode habilitar manualmente o ProGuard e adicionar as regras necessárias.
Para habilitar o ProGuard em seu projeto, adicione as seguintes strings ao seu arquivo build.gradle:
buildTypes { release { minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug } }Em seguida, adicione as seguintes regras ao android/app/proguard-rules.pro
#Pushwoosh Flutter-keep class com.pushwoosh.plugin.PushwooshPlugin { *; }-keep class com.pushwoosh.plugin.PushwooshNotificationServiceExtension { *; }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.