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

Chat iOS

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.
  • Xcode
    • Un dispositivo con iOS 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

El Chat está disponible a través de CocoaPods.

CocoaPods es un gestor de dependencias válido para Swift y Objective-C, siendo el más popular en el desarrollo de iOS.

Si aun no lo tienes, instala CocoaPods. Abre tu terminal y ejecuta los siguientes comandos:

$ cd /ROOT/OF/YOUR/PROJECT
$ gem install cocoapods
$ pod init

Para integrar el Chat de indigitall es necesario añadir las siguientes dependencias:

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

Modifica el fichero PodFile de tu proyecto y añade este código:

target '<YourTarget>' do
    pod 'indigitall-ios-chat'
end

Recuerda: añade los pod correspondientes del Chat dentro de los nombres de los target que tenga tu aplicación.

Actualiza el repositorio de CocoaPod e instala las dependencias desde el terminal:

$ pod repo update
$ pod install

Atención: a partir de aquí debes usar .workspace en vez de .xcproject para trabajar en el proyecto.
La principal diferencia es que .xcproject es para un único proyecto y .workspace puede contener varios proyectos.

Inicializar el Chat

Para inicializar el Chat es necesario añadir un objeto UIView que haga referencia a IndigitallChatView en el Inspector de identidad del menú lateral, donde se vaya a mostrar el Chat. Debemos añadir las siguientes líneas de código:


Chat integration


  • your_channel_key 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.

  • your_external_key es una cadena que identifique cada dispositivo.
  • your_title_chat es una cadena con el título que quieres que se muestre en el chat.
  • your_bot_name es una cadena con el nombre del bot que se mostrará encima de la burbuja del lado izquierdo.
  • your_user_name_default es una cadena con el nombre por defecto que tendrá el usuario y se mostrará encima de la burbuja del usuario.
  • your_message_place_holder es una cadena con el mensaje que se muestra en el campo de texto donde hay que escribir.
  • your_text_open_file es una cadena con el texto que se mostrará en el caso se haya que descargar un archivo.
  • backgroundChatColor es una cadena con el color de fondo del chat en hexadecimal u objeto color.
  • your_background_bar_color es una cadena con el color de fondo de la barra superior y de la inferior en hexadecimal u objeto color.
  • your_primary_color 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 poder realizar acciones cuando se muestra o se oculta el Chat, se puede implementar los controladores de eventos o protocolos, primero hay definir el viewController como delegado y depues añadir los interfaces del protocolo:


class ViewController: UIViewController, OnChatProtocol{
  ...
    @IBOutlet weak var indigitallChatView: IndigitallChatView!{
        didSet{
            indigitallChatView.chatProtocol = ChatProtocol.init()
            indigitallChatView.chatProtocol.setDelegate(self)
        }
    }

   func onChatShown() {
      //Do Something
    }

    func onChatHidden() {
      //Do Something
    }
}

@interface ViewController : UIViewController<OnChatProtocol>{
  @property (weak, nonatomic) IBOutlet IndigitallChatView *indigitallChatView;
  ....
}
@implementation ViewController{

  - (void) setIndigitallChatView: (IndigitallChatView *)indigitallChatView{
      indigitallChatView.chatProtocol = [[ChatProtocol alloc]init];
      [indigitallChatView.chatProtocol setDelegate: self];
  }

  - (void) onChatShown(){
    //Do Something
  }

  - (void) onChatHidden(){
    //Do Something
  }
}

Funcionalidades

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

let isEmitted = IndigitallChat.isWelcomeEmitted()
BOOL isEmitted = [IndigitallChat isWelcomeEmitted];


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

IndigitallChat.setCustomEvent("your_event")
[IndigitallChat setCustomEvent:@"your_custom_Event"];


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

IndigitallChat.clearAllMessages()
[IndigitallChat clearAllMessages];


Changelog

[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