Android SDK

šŸ“˜

A versĆ£o mais recente da SDK Android Ć© a v4.1.0.

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:

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):

buildscript {
	repositories { 
    maven { url 'https://jitpack.io' }
  }
}

allprojects {
  repositories {
    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. :clap:

šŸ“˜

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.