Android SDK

šŸ“˜

A versão mais recente da SDK Android é a v4.2.0-rc.

Passos da integração

1. Configuração do projeto no Firebase
2. Configuração no painel Inngage
3. Configuração nativa Android

Após concluir a configuração do serviço Firebase, estamos prontos para iniciar a integração da SDK da Inngage em aplicativos Android.

Nossa SDK para Android desempenha um papel crucial na conexão entre aplicativos móveis e o backend de notificações inteligentes da Inngage. Ela permite a administração do registro de dispositivos, a configuração de campos personalizÔveis, o processamento de notificações push e mensagens In-App e uma série de outras funcionalidades.

Instalação

Importando o FCM Token (API Key)

Para aproveitar nossos SDKs, serÔ necessÔrio importar o FCM Token (API Key) do seu projeto Firebase em nossa plataforma. Siga o passo a passo neste link para executar essa ação.

Configurando o GMS e os serviƧos do Firebase no projeto

Antes de proceder com a implementação da biblioteca, é necessÔrio abrir o arquivo build.gradle (Module: app) dentro do seu projeto no Android Studio. A seguir, adicione as seguintes dependências ao seu projeto, conforme demonstrado abaixo:

plugins {
    id 'com.android.application'
    id 'com.google.gms.google-services'
}

dependencies {
    // Firebase
    implementation 'com.google.firebase:firebase-core:19.0.2'
    implementation 'com.google.firebase:firebase-messaging:22.0.0'
    // Adicione esta dependência para executar o WorkManager para o serviço de registro de usuÔrio da Inngage.
    implementation 'androidx.work:work-runtime:2.8.0'
}

No arquivo build.gradle (Project: AppName), inclua o seguinte código para adicionar a dependência do plugin google-services, que é necessÔrio para configurar os serviços do Google, como Firebase, no projeto Android:

buildscript {
  dependencies {
    classpath 'com.google.gms:google-services:4.3.15'
  }
}

Instalando a lib da Inngage

Para adicionar a SDK Android da Inngage ao seu projeto, implemente o seguinte código no build.gradle (Module: app):

dependencies {
  implementation 'com.github.inngage:inngage-lib:v4.2.0-rc"
}

No arquivo build.gradle (Project: AppName), certifique-se de que as configurações e dependências necessÔrias para a fase de build do projeto estejam corretamente definidas, incluindo os repositórios onde o Gradle buscarÔ essas dependências para a compilação.

buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

🚧

Em alguns casos, é necessÔrio fazer refresh nas dependências do projeto. Clique em "Sync"/"Sincronizar" na IDE ou execute o comando:

./gradlew --refresh-dependencies para Mac
gradle --refresh-dependencies para Windows

Implementando a SDK

NotificaƧƵes push

As notificações serão enviadas do servidor da Inngage para um ou mais dispositivos móveis, mesmo quando o aplicativo estiver em primeiro plano, segundo plano ou até mesmo fechado. Essas mensagens têm o objetivo de alertar o usuÔrio sobre informações importantes, atualizações ou qualquer outro dado relevante relacionado ao seu aplicativo.

As notificações push aparecem na tela de bloqueio ou na barra de notificações do dispositivo. Quando o usuÔrio toca na notificação, o aplicativo é aberto e pode direcionÔ-lo para uma pÔgina específica ou exibir mais detalhes sobre o conteúdo da notificação.

Interface InngageConstantes { }

Com o objetivo de desacoplar as constantes usadas na integração, crie uma nova interface em seu projeto chamada InngageConstants e adicione o seguinte código:

public interface InngageConstants {
  String appToken = "<app_token>"; // Adicione o app_token da plataforma Inngage.
	String environment = "prod";
	String provider = "FCM";
  String email = "<email>"; // Adicione o email do cliente. (Opcional)
  String phoneNumber = "<phone_number>"; // Adicione o telefone do cliente. (Opcional)
}

Configuração da Activity de abertura do aplicativo

Na Activity inicial do seu aplicativo, adicione o código abaixo:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_splash);

  final Intent intent = new Intent(getApplicationContext(), MainActivity.class);
  intent.putExtras(getIntent());
  new Handler().postDelayed(() -> startActivity(intent), 2000);
}

Registrando usuƔrio na Inngage

šŸ‘

InngageService.subscribe();

Esse mƩtodo deve ser chamado para informar o usuƔrio sobre a chegada das notificaƧƵes e inicializar o Inngage dentro do seu aplicativo. Geralmente, Ʃ chamado na MainActivity dentro do onCreate().

import com.example.inngage_lib.InngageService;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InngageService.subscribe(
      this, 
      InngageConstants.appToken, 
      InngageConstants.environment, 
      InngageConstants.provider, 
      InngageConstants.identifier
    );
  }
}

O trecho de código menciona alguns parâmetros e funcionalidades do Inngage SDK no contexto do Flutter. Aqui estÔ uma explicação das principais informações:

  • appToken: Ɖ o token do aplicativo na plataforma Inngage, essencial para a comunicação com os serviƧos da Inngage.
  • environment: Valor padrĆ£o: prod.
  • provider: Valor padrĆ£o: FCM.
  • identifier: Ɖ usado para identificar o usuĆ”rio dentro do sistema. Esse parĆ¢metro deve ser preenchido para que o usuĆ”rio possa ser corretamente associado e receber as notificaƧƵes push de forma personalizada.

Configurando o recebimento de notificaƧƵes push

šŸ‘

InngageUtils.handleNotification();

Esse método deve ser chamado para realizar as configurações de push no aplicativo e, principalmente, solicitar o acesso às notificações do usuÔrio. Ao executar esse método, o aplicativo informa ao sistema operacional que deseja receber notificações push e é autorizado a fazê-lo, desde que o usuÔrio conceda permissão para receber tais notificações.

import com.example.inngage_lib.InngageService;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InngageService.subscribe(
      this, 
      InngageConstants.appToken, 
      InngageConstants.environment, 
      InngageConstants.provider, 
      InngageConstants.identifier
    );
    // Adicione este mƩtodo da Inngage:
    InngageUtils.handleNotification(this, getIntent(), appToken, env); 
  }
}

Personalização (para sua identidade)

Adicionando Campos Personalizados

A SDK permite que o desenvolvedor que estÔ integrando a SDK adicione campos customizÔveis (customFields), como nome, e-mail, gênero, etc. No entanto, esses parâmetros devem ser configurados previamente na plataforma da Inngage.

private JSONObject setCustomFields(){
  JSONObject customFields = new JSONObject();
  try {
    customFields.put("nome", user.name);
    customFields.put("email", user.email);
    customFields.put("telefone", user.phone);
    customFields.put("dataRegistro", user.registerDate);
    customFields.put("dataNascimento", user.birthDate);
  } catch (JSONException e) {
    e.printStackTrace();
  }
  return customFields;
}

Adicione o método como parâmetro logo após o identifier:

InngageService.subscribe(
  this, 
  InngageConstants.appToken, 
  InngageConstants.environment, 
  InngageConstants.provider, 
  InngageConstants.identifier,
  setCustomFields() // Adicione o mƩtodo dos campos customizƔveis
);

Envio de eventos

šŸ‘

InngageService.sendEvent()

A SDK permite que o desenvolvedor que estĆ” integrando a SDK envie eventos customizados. Ɖ importante configurĆ”-los na plataforma Inngage para garantir uma boa performance e integração.

private JSONObject setEventValues(){
  JSONObject eventValues = new JSONObject();
  try {
    eventValues.put("nome", "");
    eventValues.put("email", "");
    eventValues.put("telefone", "");
  } catch (JSONException e) {
    e.printStackTrace();
  }
  return eventValues;
}

Adicione o mƩtodo dos valores do evento no mƩtodo da Inngage de envio de eventos:

InngageService.sendEvent(
  InngageConstants.appToken, 
  InngageConstants.identifier, 
  "Event Name", // Nome do evento
  setEventValues() // Valores do evento
);

Existem três valores obrigatórios para garantir o correto funcionamento:

  • eventName: Define o nome do evento, que serĆ” usado para identificĆ”-lo rapidamente na plataforma.
  • appToken: Ɖ necessĆ”rio para validar suas credenciais.
  • identifier: Ɖ usado para identificar o usuĆ”rio dentro do sistema.

Você também pode adicionar valores avançados para esse evento usando o parâmetro eventValues, que é um array contendo chaves e valores com dados que serão anexados ao evento.

A API de eventos também pode receber um evento de conversão, para isso, existem os seguintes campos:

  • conversion_event: Defina como True para indicar que Ć© um evento de conversĆ£o.
  • conversion_value: Esse campo permite inserir o valor monetĆ”rio da conversĆ£o. O valor padrĆ£o Ć© FLOAT 11000.00.
  • conversion_notid: Opção para enviar o ID Único da Notificação da Inngage (NOTID), que foi recebido pelo app no momento do Push. Isso possibilita atribuir uma conversĆ£o a um determinado Push."

In App Messages

A SDK Android da Inngage possibilita a exibição de Mensagens In App para os usuÔrios. Essas mensagens podem ser enviadas tanto pela plataforma quanto pela API e são automaticamente apresentadas com base nas configurações recebidas pelo payload do Firebase.

Para que a Activity da In App tenha seu fundo transparente, adicione na resource do seu projeto em styles o seguinte código:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation</item>
        <item name="android:windowActionBar">false</item>
    </style>
</resources>

Para apresentar a mensagem In App, no cenƔrio com o aplicativo aberto ou segundo plano, adicione a Activity do In App da Inngage em seu AndroidManifest.xml:

<activity
  android:name="br.com.inngage.sdk.InApp"
	android:theme="@style/Theme.AppCompat.Translucent">
</activity>

Agora para que possa apresentar a mensagem In App, no cenÔrio da abertura do aplicativo logo após dele estar fechado, adicione o seguinte código na MainActivity de seu projeto dentro do onCreate():

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  new InAppUtils().startInApp(this); // Adicione esse código.
}

Finalizando configuração do AndroidManifest.xml

Adicionando permissƵes

šŸ“˜

Se estiver utilizando seu próprio PushMessagingService, consulte a documentação neste link para concluir as últimas implementações da SDK e finalizar o processo de integração.

Depois de implementar a biblioteca da Inngage, o arquivo de manifesto precisa de algumas permissƵes e serviƧos a serem adicionados:

Antes da tag <application>:

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

Dentro da tag <application>:

<service android:name="br.com.inngage.sdk.PushMessagingService">
	<intent-filter>
  <action android:name="com.google.firebase.MESSAGING_EVENT"/>
  </intent-filter>
</service>

<meta-data
	android:name="com.google.firebase.messaging.default_notification_icon"
  android:resource="@drawable/ic_notification" />

🚧

ƍcone de notificação !

Ɖ obrigatório colocar o Ć­cone de notificação no repositório drawable sob o nome ic_notification como no exemplo abaixo:

android:resource="@drawable/ic_notification"


šŸ‘

Você estÔ pronto para começar!

Seguindo os passos acima da documentação vocĆŖ estarĆ” pronto para utilizar todas as ferramentas necessĆ”rias para as funcionalidades da SDK. šŸ‘

šŸ“˜

Confira nossa POC da SDK Inngage:

Para ajudar você na integração com a SDK da Inngage, disponibilizamos para você uma POC da implementação nestes links: Kotlin e Java.