Integrando com SDK Kotlin

Aqui estão os passos e dicas para conseguir fazer a integração da Dito dentro seu app.

Configurações iniciais

integrar a biblioteca DitoSDK no seu aplicativo Kotlin, siga os passos abaixo:

Atualize o arquivo build.gradle.kts do módulo

No arquivo build.gradle.kts do seu módulo, adicione a seguinte dependência:

dependencies {
    // Dependência da Dito SDK
    implementation("com.github.ditointernet:sdk_mobile_android:2.1.2")
    
    // Caso utilize o Mobile Push, adicione também:
    implementation("com.google.firebase:firebase-bom:33.2.0")
    implementation("com.google.firebase:firebase-messaging:24.0.1")
}

Atualize o arquivo settings.gradle.kts

No arquivo settings.gradle.kts, adicione o repositório do JitPack:

dependencyResolutionManagement {
    repositories {
        ...
        maven { url = uri("https://jitpack.io") }
    }
}

Configuração no AndroidManifest.xml

No arquivo AndroidManifest.xml, adicione suas credenciais da API:

<application>
    ...
    <meta-data android:name="br.com.dito.API_KEY" android:value="<MY_API_KEY>"/>
    <meta-data android:name="br.com.dito.API_SECRET" android:value="<MY_API_SECRET>"/>
</application>

Substitua <MY_API_KEY> e <MY_API_SECRET> pelos valores que podem ser obtidos neste link ou clicando no ícone de engrenagem no canto superior direito da tela no CRM Dito.

❗️

Importante: Armazene sua API Key e Secret Key em um arquivo .env para segurança.

Permissões para Notificações Push

Caso utilize notificações push, adicione a seguinte permissão no AndroidManifest.xml:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

Implementação do SDK

Inicializando o SDK

No método onCreate() da sua classe que estende Application, inicialize o SDK da Dito:

override fun onCreate() {
    super.onCreate()
    val options = Options().apply {
        debug = true // Apenas adicione esta linha se quiser ativar o modo debug
    }
    Dito.init(this, options)
}

A classe Options não é obrigatória. Ela permite configurar:

  • retry (padrão = 5): Número de tentativas de envio de eventos pelo SDK.
  • iconNotification: ID de recurso do ícone para notificações.
  • contentIntent: Intent que será aberta quando o usuário clicar na notificação. Se não for definido, o SDK tentará recuperar a Activity configurada como .

Identificando Usuários

Para identificar um usuário, utilize o classe identify e envie o evento com o método identify():

val identify = Identify("85496430259") // ID do usuário
Dito.identify(identify)

A classe Identify possui os seguintes parâmetros:

  • id: Identificador do usuário (obrigatório).
  • name: Nome do usuário.
  • email: E-mail do usuário.
  • gender: Gênero do usuário.
  • location: Localização do usuário.
  • birthday: Data de nascimento do usuário.
  • data: Objeto CustomData que aceita parâmetros customizados.

Envio de Eventos

Para enviar um evento, utilize o método track():

Dito.track(Event("comprou", 2.5))

A classe Event possui os seguintes parâmetros:

  • action: Nome do evento (obrigatório).
  • revenue: Receita gerada pelo evento.
  • data: Objeto CustomData para parâmetros customizados.

Configuração para Notificações Push

Para receber notificações push, o Firebase deve estar configurado no projeto. Além disso, adicione os seguintes elementos ao AndroidManifest.xml:

<application>
    ...
    <service
        android:name="br.com.dito.ditosdk.notification.DitoMessagingService"
        android:exported="true"
        android:permission="POST_NOTIFICATIONS">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <receiver android:name="br.com.dito.ditosdk.notification.NotificationOpenedReceiver"/>
</application>

Registro do Mobile Token

Após identificar o usuário, registre o token do dispositivo para notificações push:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w("Dito", "Falha ao buscar token FCM", task.exception)
        return@addOnCompleteListener
    }
    val token = task.result
    Dito.registerDevice(token!!)
}

Notificação Lida

Para marcar uma notificação como lida, utilize o método notificationRead(), passando o ID da notificação enviado pela Dito no atributo data:

Dito.notificationRead(notification)

Consulte a documentação oficial do FCM para detalhes sobre como interceptar notificações.


What’s Next