Esta web ya no recibe mantenimiento. Por favor, visita documentation.indigitall.com para leer nuestra documentación actualizada.

Chat Android

guía rápida de integración

Indice

¿Qué necesitas para la integración?

  • Necesitarás el Channel key del proyecto, que es la clave que usa nuestro sistema para identificarlo, por lo que es única para cada proyecto.
  • Android Studio
    • Un dispositivo Android o emulador con los servicios de Google Play instalados para ejecutar la app

Integración

Este artículo muestra el desarrollo mínimo que hay que hacer para comenzar a utilizar el chat.

Añadiendo las dependencias del Chat

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.


Gradle build file

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 Chat de indigitall es necesario añadir las siguientes dependencias:

  • La libreria de soporte de Android
  • La librería de SocketIO-client
  • El Chat de indigitall


android {
    compileSdkVersion 31
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 31
    }
}

repositories {
    mavenCentral()
}

dependencies {
    //implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.indigitall:android-chat:1.3.+'
    implementation 'io.socket:socket.io-client:0.8.3'
}

Inicializar el Chat

Para inicializar el Chat es necesario añadir el objeto com.indigitall.android.chat.Chat en el layout donde se vaya a mostrar el Chat. Debemos añadir las siguientes líneas de código:

<com.indigitall.android.chat.Chat
        android:id="@+id/your_id"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:channelKey="your_channel_key"
        //opciones personalizadas
        app:externalKey="your_external_key"
        app:titleChat="your_title_chat"
        app:botName="your_bot_name"
        app:defaultUserName="your_default_user_name"
        app:messagePlaceholder="your_message_place_holder"
        app:openFileText="your_open_file_text"
        app:backgroundColor="your_background_color"
        app:backgroundBarColor="your_background_bar_color"
        app:primaryColor="your_primary_color"
        app:fullscreen="bool"
        app:defaultChatIconResource="your_chat_custom_icon"
        app:addContactTextButton="your_contact_text_button"
        app:contactAddedMessage="your_contact_added_message"
        app:infoContactIconsColor="your_info_contact_icons_color"
        app:infoContactTopBarTitle="your_info_contact_top_bar_title"
        app:chatAutoOpenTime="your_chat_auto_open_time_in_seconds"
        app:clearMessages="bool"
        app:welcomeEvent="your_welcome_event"
        />


  • id id del objeto.
  • channelKey es una cadena alfanumérica que identifica tu proyecto de indigitall.

Los siguiente campos son personalizados. Si no se agregan, el Chat mostrará los valores por defecto.

  • externalKey es una cadena que identifique cada dispositivo.
  • titleChat es una cadena con el título que quieres que se muestre en el chat.
  • botName es una cadena con el nombre del bot que se mostrará encima de la burbuja del lado izquierdo.
  • defaultUserName es una cadena con el nombre por defecto que tendrá el usuario y se mostrará encima de la burbuja del usuario.
  • messagePlaceholder es una cadena con el mensaje que se muestra en el campo de texto donde hay que escribir.
  • openFileText es una cadena con el texto que se mostrará en el caso se haya que descargar un archivo.
  • backgroundColor es una cadena con el color de fondo del chat en hexadecimal u objeto color.
  • backgroundBarColor es una cadena con el color de fondo de la barra superior y de la inferior en hexadecimal u objeto color.
  • primaryColor es una cadena con el color principal del chat, botones e icono flotante en hexadecimal u objeto color.
  • fullscreen es un booleano donde indicas si quieres que el chat ocupe toda la pantalla(true) o tenga cierto margen del dispositivo(false).
  • defaultChatIconResource es una referencia con el recurso de ícono que se muestra en el ícono principal del chat.
  • addContactTextButton es una cadena con el texto del mensaje para agregar un contacto.
  • contactAddedMessage es una cadena con el mensaje cuando agregó un nuevo contacto.
  • infoContactIconsColor es una cadena con el color de los iconos de la vista de información de contacto.
  • infoContactTopBarTitle es un título de la barra superior de la vista de información de contacto.
  • chatAutoOpenTime es un entero que indica los segundos para que se abra automáticamente el chat. Si no se indica chatAutoOpenTime, como si pulsas la burbuja antes de que finalice el tiempo indiciado, el chat se podrá abrir de forma manual.
  • clearMessages es un valor booleano que indica si desea eliminar o borrar todos los mensajes del almacenamiento de la sesión cada vez que abre el chat
  • welcomeEvent es una cadena para definir el mensaje de bienvenida una vez que abra el chat

Para comprobar que la integración se ha realizado correctamente realiza lo siguiente:

Para poder realizar acciones cuando se muestra o se oculta el Chat, se puede implementar los controladores de eventos o listeners. Para ello agrega el siguiente código:


class YourActivity: ChatListener{
  ...
  override fun onChatHidden() {
        //Do something
    }

    override fun onChatShown() {
        //Do something
    }
}

Funcionalidades

Puede verificar si el evento de bienvenida se ha activado con este método:

val indigitallChat = findViewById<Chat>(R.id.chat)

val isEmitted = indigitallChat.isWelcomeEmitted();


Si desea enviar un mensaje personalizado, puede utilizar este método:

val indigitallChat = findViewById<Chat>(R.id.chat)

indigitallChat.setCustomEvent("your_event");


También puedes controlar la acción de eliminar mensajes con este método:

val indigitallChat = findViewById<Chat>(R.id.chat)

indigitallChat.clearAllMessages()


Changelog

[1.4.1] - 03/2022

Correcciones

  • Actualizar librería socket-io-client

[1.4.0] - 03/2022

Añadido

  • Evento de welcome
  • Borrar mensajes

[1.3.0] - 01/2022

Añadido

  • Campo Interactivo
  • Opción abrir automáticamente el chat

[1.2.0] - 11/2021

Añadido

  • Opción de mostrar contacto y localización

[1.1.0] - 06/2021

Añadido

  • Añadido template con botones y descarga pdfs

[1.0.1] - 01/2021

Añadido

  • Test unitarios

[1.0.0] - 11/2020

Añadido

  • Inicialización


Recursos

Comienza a automatizar tus comunicaciones gracias a nuestra API de administración