Integración Android e iOS

EMMA cuenta con dos SDK para Xamarin, uno para Android y otro para iOS. Ambos son "bindings" de las respectivas librerías nativas, por lo tanto los métodos comparten nombre y la forma de integrarlos es muy similar a la nativa.

1. Descargar el SDK

  • iOS versión 4.5.0 del SDK nativo.
  • Android versión 4.5.2 del SDK nativo.

Descargar desde Github

2. Añadir el .dll al proyecto

Primero de todo se tiene que importar el SDK de EMMA a nuestro proyecto Xamarin. Hay que añadirlo en la carpeta Referencias de nuestro proyecto, en esta carpeta se alojan las librerías de sistema o librerías de terceros.

Captura_de_pantalla_2019-03-31_a_las_23.59.27.png

Para añadir el SDK como referencia hay que copiar el archivo .dll a la carpeta raiz del proyecto, y después añadir su referencia, dandole con el botón derecho en la carpeta.

Captura_de_pantalla_2019-03-31_a_las_23.58.24.png

Una vez tengamos abierta la pantalla de Editar Referencias, accede a la pestaña .Net Assembly y escoge el .dll de la librería.

Captura_de_pantalla_2019-04-01_a_las_0.07.35.png

Pulsa Aceptar y ya tendrás el SDK integrado en el proyecto.

Para Android el procedimiento es el mismo solo que hará falta añadir una referencia al proyecto junto al binding del SDK de EMMA, InstallReferrer.dll, esta referencia la podrás encontrar junto a la descarga de los .dll del SDK.

Captura_de_pantalla_2019-04-01_a_las_0.25.27.png

3. Start session

Para iniciar sesión en ambos SO se tiene que especificar el uso de la librería:

using EMMASDK; 

En Android el inicio de sesión se añade en la clase que extienda de Application:

EMMA.Instance.StartSession(this);

Es necesario añadir la EMMA Session Key como meta-data en el AndroidManifest.xml:

<meta-data 
     android:name="io.emma.SESSION_KEY" 
     android:value="@string/emma_session_key" />

En iOS en AppDelegate.cs:

EMMA.StartSession("<EMMA Session Key>");

NOTA: Si estas usando iOS XamarinForms, añade el siguiente atributo en el AppDelegate.cs:

public override UIWindow Window {
      get;
      set;
}

4. Dependencias (solo Android)

Para integrar el SDK de Android añade los siguientes paquetes en el orden especificado:

  1. Kwon.Squareup.OkHttp3.Logging-interceptor (3.9.1.1)
  2. Kwon.Squareup.Retrofit2.Retrofit-converter (2.3.0.1)
  3. Karamunting.Xamarin.BumpTech.Glide (v4.8.0)
  4. Xamarin.Firebase.Messaging (71.1733.0-preview6) Opcional, solo para push. Hay que marcar la casilla Show-pre releases.

Es importante añadir la referencia de InstallReferrer.dll citada anteriormente.

5. Integración Push Android

La integración de push en Android para Xamarin no es igual que la nativa. No se usa las últimas dependencias de FCM por lo tanto la integración es un poco diferente. Para la recepción del push se usa el mismo servicio que la app nativa pero para refrescar el token es necesario un método adicional.

Important

Si usas las notificaciones push es importante tener en cuenta que cada vez que se hace un Rebuild y una instalación posterior en Visual Studio, al instalar la app se invalida el token de push debido a que FCM detecta que la app se ha desinstalado. Si esto ocurre, desinstala la app manualmente y vuelve a instalarla, de esta forma se generará un nuevo token. Antes de enviar desde la plataforma de EMMA un push de pruebas puedes probar con el siguiente método Curl para saber si el token es valido. Si sale "Not Registered" el token se ha invalidado.

6. Seguir con la integración

Una vez realizados los puntos anteriores, ya se pueden utilizar todas las opciones que ofrece el SDK de EMMA, para ello hay que consultar la documentación de las librerías nativas. El nombre de los métodos son idénticos, únicamente cambia la forma de invocarlos con C#.

Documentación integraciones

7. App de ejemplo

Para ver la app de ejemplo consulta el siguiente repositorio de GitHub:

https://github.com/EMMADevelopment/EMMAXamarinSample

 

¿Tiene más preguntas? Enviar una solicitud

0 Comentarios

El artículo está cerrado para comentarios.