| ES
guía rápida de integración del SDK de Android.
Es importante ya que el proyecto contiene los datos de configuración de tu aplicación, es decir, el dominio donde esta alojada tu web, los certificados de safari o iOS o la clave de firebase que usa android. Todo depende de las plataformas (web o app) que use el proyecto.
Este artículo muestra el desarrollo mínimo que hay que hacer para comenzar a registrar dispositivos y poder realizar las primeras campañas push.
La SDK de Indigitall es compatible con los servicios de mensajería de Google, mediante la plataforma Firebase y con los servicios de HMS o Huawei Mobile Services de Huawei.
Puedes verlo en ente vídeo tutorial o leer las instrucciones más abajo:
Lo primero que hay que hacer es abrir el fichero app/build.gradle. En la captura de pantalla se puede comprobar dónde encontrar este fichero app/build.gradle.
Atención: es el fichero build.gradle que se encuentra en la carpeta app, NO el de la raíz del proyecto.
La librería está disponible a través del repositorio Maven Central. Maven es una de las herramientas de gestión de librerias más usadas en Android. Para integrar el SDK de indigitall es necesario añadir las siguientes dependencias:
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
}
}
repositories {
mavenCentral()
}
dependencies {
//implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.firebase:firebase-messaging:20.1.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.indigitall:android:4.7.+'
implementation 'com.huawei.hms:push:4.0.3.301'
}
En el fichero AndroidManifest.XML hay que añadir la configuración para:
Nuestro SDK necesita integrarse con tu proyecto de FCM (Firebase Cloud Messaging).
FCM realiza la conexión con el dispositivo para poder enviarle notificaciones push. Esta conexión se establece con el Push Token, un token efímero, único y generado por Google para cada dispositivo.
<service android:name="com.indigitall.android.services.FirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<!--DEPRECATED
<service android:name="com.indigitall.android.services.FirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
-->
Nuestro SDK necesita integrarse con tu proyecto de HMS (Huawei Mobile Services) para poder impactar en los últimos terminales de Huawei.
HMS realiza la conexión con el dispositivo para poder enviarle notificaciones push. Esta conexión se establece con el Push Token, un token efímero, único y generado por HMS para cada dispositivo.
Para poder impactar a los dispositivos Huawei con Harmony, deberás realizar los siguiente pasos:
<service
android:name="com.indigitall.android.services.HMSMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
repositories {
...
maven{
url 'https://developer.huawei.com/repo/'
}
}
allprojects {
...
maven{
url 'https://developer.huawei.com/repo/'
}
}
dependencies {
...
classpath 'com.huawei.agconnect:agcp:1.2.1.301'
apply plugin: 'com.huawei.agconnect'
...
defaultConfig {
minSdkVersion 19
}
...
dependencies {
...
implementation 'com.huawei.hms:push:4.0.3.301'
...
}
Estos servicios son necesarios para que nuestro SDK pueda sincronizar los datos del dispositivo con los servidores de indigitall.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- OBLIGATORIOS -->
<!-- Para que cuando el usuario pulse una push, se guarde la métrica -->
<service android:name="com.indigitall.android.services.StatisticService"/>
<!-- Sincronización diaria de los datos del dispositivo -->
<service android:name="com.indigitall.android.services.NightService"/>
<!-- Para iniciar los servicios cuando reinicias el dispositivo -->
<receiver android:name="com.indigitall.android.receivers.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<!-- OPCIONALES -->
<!-- Para que cuando el usuario pulse un mensaje InApp, se guarde la métrica.
Solo es necesario si usas la funcionalidad de mensajes InApp -->
<service android:name="com.indigitall.android.inapp.services.StatisticInAppService" />
<!-- Para obtener la localización del dispositivo.
Solo es necesario si vas a pedir permiso de localización
para segmentar las pushes por la ubicación del dispositivo -->
<receiver android:name="com.indigitall.android.receivers.LocationReceiver">
<intent-filter>
<action android:name="LocationReceiver.Action.LOCATION_UPDATE" />
</intent-filter>
</receiver>
Este icono se mostrará en la barra superior del sistema Android y en la cabecera de las pushes enviadas a través de tu app.
Debe ser un icono monocromo, es decir, que la imagen debe contener solo un color y alfa.
Te ponemos un ejemplo con nuestro logo en monocromo:
A continuación te mostramos cómo debería estar tu código en el AndroidManifest.xml (El icono tiene que ser un png)
<!-- Recurso para el icono monocromo -->
<meta-data android:name="indigitall.icon" android:resource="@drawable/YOUR_MONOCHROME_ICON"/>
<!-- Recurso para el color del icono -->
<meta-data android:name="indigitall.color" android:resource="@color/colorPrimary"/>
* Para mayor aclaración sobre la creación de iconos, os dejamos este enlace a la documentación de Android que puede servir de ayuda: Product icons
Para inicializar el SDK es necesario llamar al método init. Esta llamada ha de producirse dentro del objeto Application.
La clase Application del SDK de Android es la clase base contenedora, y es lo primero que se ejecuta al abrir la aplicación. Por lo tanto, es necesario que nuestra aplicación tenga una clase personalizada que extienda de la clase Application.
Dentro de esta clase, en el método onCreate, debemos añadir las siguientes líneas de código:
Indigitall.init(this, "<your_indigitall_app_key>", "<your_firebase_sender_id")
No olvides añadir el nombre de tu clase Application en el manifest AndroidManifest.xml:
<application android:name=".application.App">
Para comprobar que la integración se ha realizado correctamente realiza lo siguiente: