Integrando com SDK Flutter
Aqui estão os passos e dicas para conseguir fazer a integração da Dito dentro seu app.
Antes de fazer a instalação da SDK Flutter é importante entender os conceitos da integração e executar configurações de um projeto Firebase (caso for utilizar notificações mobile).
flutter pub add dito_sdk
Como implementar
Aqui estão exemplos práticos para usar esses métodos em Flutter:
import 'package:dito_sdk/dito_sdk.dart';
Depois de importado devemos fazer a autenticação da lib para sua conta Dito.
final dito = DitoSDK();
// Inicializa a SDK com suas chaves de API
dito.initialize(apiKey: 'sua_api_key', secretKey: 'sua_secret_key');
Substitua os valores 'sua_api_key' e 'sua_secret_key' pelos valores que pode-se encontrar no painel CRM da Dito clicanco no ícone engrenagem.
Mantenha a api key e a secrect key em uma arquivo .env
Agora está apto a utilizar todos os métodos da SDK
Identify
Para fazer o identify, chamar o método identify() passando os parâmetros necessários e em seguida enviar o evento para Dito através do identifyUser()
// Define o ID do usuário
dito.setUserId('id_do_usuario');
dito.identify( "[email protected]", 'João da Silva', '[email protected]', 'São Paulo');
await dito.identifyUser();
Register mobile token
Para fazer o registro, primeiro o usuário deve estar identificado (indicamos chamar o método de registro logo após o identify) , na sequência execute
await dito.registryMobileToken(token: token);
O token pode ser extraído através do método
String? token = await FirebaseMessaging.instance.getToken();
Enviar um Evento para a Dito
Para enviar um evento para Dito é simples
dito.trackEvent(
eventName: 'comprou produto',
revenue: 99.90,
customData: {
'produto': 'produtoX',
'sku_produto': '99999999',
'metodo_pagamento': 'Visa',
},
);
O objeto custom data é um Dynamic Map, que registra qualquer parâmetro na ficha do usuário.
Notificações push
Para receber notificações push é necessário ter instalado o Firebase em seu projeto (aqui explicamos como configurar), em seguida precisamos executar algumas configurações no código para permitir
receber e mostrar as notificações.
Vamos inicializar o Firebase, a Dito e o serviço de Push no arquivo main.dart
void main() async {
...
await Firebase.initializeApp();
DitoSDK dito = DitoSDK();
dito.initialize(apiKey: 'sua_api_key', secretKey: 'sua_secret_key');
await dito.initializePushService();
...
}
O método initializePushService irá configurar todo serviço de push, como serviço de leitura das notificações do Firebase quando o aplicativo está em execução, configuração da renderização da mensagem (modelo usando o ícone padrão do aplicativo, título e mensagem) e o serviço de captura do click para gerar estatísticas.
Agora precisamos configurar o código para fazer leitura das notificações que pode chegar quando o aplicativo não estiver sendo executado (não estiver aberto).
No início do arquivo main.dart logo após os imports deve-se registrar o serviço de leitura em segundo plano
// Método para registrar um serviço que irá receber os push quando o app estiver totalmente fechado
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
final notification = DataPayload.fromJson(jsonDecode(message.data["data"]));
dito.notificationService().showLocalNotification(CustomNotification(
id: message.hashCode,
title: notification.details.title || "O nome do aplicativo",
body: notification.details.message,
payload: notification));
}
Updated about 1 month ago