SDK para dispositivos móviles iOS - Configuración

Configuración de la aplicación

Creación de un nuevo proyecto

Una vez que se haya registrado el cliente, puede comenzar a crear su propia aplicación iOS.

En la línea de comandos, desplácese hasta el directorio en el que desea crear el proyecto móvil y ejecute el siguiente comando:

zohoios create

Aquí se solicitará el ingreso de los siguientes elementos:

  1. Nombre de la aplicación móvil (por ejemplo, Aprobador de clientes potenciales).
  2. El nombre de la organización de su desarrollador de iOS.
  3. El identificador de la organización de su desarrollador de iOS.
  4. ID de cliente OAuth de Zoho (que se obtiene durante el registro de la aplicación).
  5. Secreto de cliente OAuth de Zoho (que se obtiene durante el registro de la aplicación).
  6. URL de redirección OAuth de Zoho (que se obtiene durante el registro de la aplicación).

Nota:

  • La URL de redirección debe corresponder con el esquema de URL personalizado de la aplicación.

Cuando se ejecute correctamente el comando anterior, se creará una carpeta de proyecto en el mismo directorio. El nombre de la carpeta del proyecto será el mismo que el nombre de la aplicación móvil.

Ejecución del proyecto

El nuevo proyecto creado es, en realidad, una aplicación iOS de demostración, que se puede ejecutar de manera instantánea mediante Xcode.

  1. Abra el archivo .xcworkspace del nuevo proyecto creado.
    La nueva aplicación de demostración creada se abrirá como un proyecto Xcode.
  2. Después de realizar la compilación correctamente, puede ejecutar este proyecto en un simulador.
    La aplicación se abrirá con una pantalla de inicio de sesión de Zoho en el simulador.
  3. Puede iniciar sesión con sus credenciales de Zoho CRM y ver los datos con la aplicación de demostración.

Diseño de la aplicación

Una vez que el proyecto se haya compilado y ejecutado correctamente, puede diseñar y crear nuevas pantallas y funcionalidades para la aplicación, según sus requisitos. No hay restricciones de front-end en el desarrollo de la aplicación. Sin embargo, para facilitar la autenticación del usuario, asegúrese de considerar los siguientes puntos durante el diseño de su aplicación.

No cambie ningún código que ya esté presente en AppDelegate.swift

Para encargarse del inicio y cierre de sesión:

Para encargarse correctamente del inicio de sesión del usuario, la pantalla de inicio ya está configurada en el SDK, a fin de asegurarse de que solo los usuarios que están registrados puedan ver los datos de las aplicaciones. Sin embargo, si desea mostrar su propia pantalla personalizada de inicio de sesión, puede establecer su propia vista como pantalla de Inicio.

En la clase ViewController de su pantalla de inicio personalizada, agregue este código como la acción del botón de inicio de sesión:

( UIApplication.shared.delegate as! AppDelegate ).loadLoginView { ( isSuccessfulLogin ) in
    if isSuccessfulLogin == true
    {
        // display your application's screen
    }
  }

Agregue este código como la acción del botón de  cierre de sesión:

( UIApplication.shared.delegate as! AppDelegate ).logout(completion: { (success) in
    if( success == true )
    {
        // logout successful
    }
  })

En el archivo AppConfiguration.plist

:

  1. OAuthscopes (obligatorio): los alcances de muestra ya se mencionaron en el archivo creado de propiedades; puede cambiar los alcances según sea necesario.Obtener más información.
  2. AccessType (opcional): tipo de entorno en CRM
    • Production: entorno que tiene usuarios con pago habilitado que acceden a datos empresariales importantes.
    • Development: entornos que puede ampliar, integrar y desarrollar sin afectar los entornos de producción.
    • Sandbox: entornos utilizados específicamente para probar la funcionalidad de la aplicación antes de implementarla en la producción o de presentarla a los consumidores.
  3. DomainSuffix (opcional): compatibilidad con varios centros de datos.
    • EE. UU.: www.zohoapis.com
    • Europa: www.zohoapis.eu
    • China: www.zohoapis.com.cn
  4. PortalID (opcional): mencione su ID de portal de CRM (por ejemplo: 65468393). No es necesario mencionar "PortalID" dentro del archivo de propiedades, si no tiene uno.
  5. ShowSignUp (opcional): establezca el valor como true si proporciona el recurso del inicio de sesión en la aplicación; de lo contrario, establézcalo como false.

Este archivo contiene valores de ciertas configuraciones que se requieren para ejecutar la aplicación. No cambie los nombres ni valores de las propiedades que ya existen, ya que se requieren para el correcto funcionamiento del SDK y de la aplicación.

Contenedores API de Zoho CRM

Todas las entidades de Zoho CRM se presentan como clases que tienen miembros y métodos que se emplean en una entidad en particular. ZCRMRestClient corresponde a la clase básica de la biblioteca del cliente.

La jerarquía y las relaciones de clases de la biblioteca se rigen por la jerarquía de entidades dentro de Zoho CRM. La jerarquía de clases de varias entidades de Zoho CRM se indica a continuación:

ZCRMRestClient
     -ZCRMOrganization
         -ZCRMUser
         -ZCRMRole
         -ZCRMProfile
     -ZCRMModule
         -ZCRMLayout
              -ZCRMSection
                  -ZCRMField
                  -ZCRMPickListValue
        -ZCRMCustomView
        -ZCRMModuleRelation
              -ZCRMJunctionRecord
        -ZCRMRecord
              -ZCRMInventoryLineItem
                  -ZCRMTax
             -ZCRMPriceBookPricing
             -ZCRMEventParticipant
             -ZCRMNote
             -ZCRMAttachment
        -ZCRMTrashRecord

Como aparece en la jerarquía, todas las clases de entidades tienen métodos de captura de sus propias propiedades y de captura de datos de sus entidades secundarias inmediatas mediante una solicitud API.

Por ejemplo, un objeto de un módulo de Zoho CRM (ZCRMModule) contará con métodos para obtener las propiedades de un módulo, como nombre de visualización, ID de módulo, etc., y también tendrá métodos de captura de todos sus objetos de diseño secundarios (ZCRMLayout).

Acceso a propiedades de registro

Puesto que las propiedades de registro son dinámicas en los módulos, se han proporcionado solo los campos comunes, como createdTime, createdBy, owner, etc., como miembros predeterminados de ZCRMRecord. Todas las otras propiedades de registros están disponibles como un mapa en el objeto ZCRMRecord.

Para acceder a los valores de campo individuales de un registro, utilice los métodos de captador y establecedor disponibles. Las claves del mapa de propiedades de registro corresponden a los nombres API de los campos del módulo. Los nombres API de todos los campos de todos los módulos están disponibles en Setup > Developer Space > APIs > CRM API > API Names.

  • Para obtener un valor de campo, utilice record.getFieldValue(fieldAPIName);
    El valor devuelto se encontrará en el tipo de datos del campo solicitado. En el caso de los campos de tipo usuario y búsqueda, se devolverán los objetos ZCRMRecord y ZCRMUser respectivamente.
  • Para establecer un valor de campo, utilice record.setFieldValue(fieldAPIName, newValue);
    Cuando establezca un valor de campo, asegúrese de que el valor establecido corresponda al tipo de datos APT del campo en el que lo va a establecer.

Nota:

  • ZCRMRecord().getLookupLabel() devuelve la etiqueta de búsqueda del registro.

Extensiones proporcionadas:

En cadena:

  • dateFromISO8601 : Date?
  • dateComponents : DateComponents

En fecha:

  • iso8601 : String
  • millisecondsToISO( timeIntervalSince1970 : Double, timeZone : TimeZone ) -> String
  • millisecondsToISO( timeIntervalSinceNow : Double, timeZone : TimeZone ) -> String
  • millisecondsToISO( timeIntervalSinceReferenceDate : Double, timeZone : TimeZone ) -> String
  • millisecondsSince1970 : Double
  • dateComponents : DateComponents

Para descargar la imagen de perfil de un usuario:

A continuación, se presentan los métodos disponibles en el SDK para realizar la descarga:

  • ZCRMUser().downloadProfilePhoto()
  • ZCRMUser().downloadProfilePhoto( size : PhotoSize )

Administración de respuestas

APIResponse y BulkAPIResponse son los objetos contenedores de las respuestas de API de Zoho CRM. Con todos los métodos de solicitudes API, se devuelve uno de estos dos objetos.

Un método que realiza la búsqueda de una sola entidad devolverá un objeto APIResponse, mientras que un método que busca una lista de entidades devuelve un objeto BulkAPIResponse.

Utilice el método getData() para obtener los datos de la entidad independiente de los objetos contenedores de respuesta.APIResponse.getData() devolverá un solo objeto de entidad Zoho CRM, mientras que BulkAPIResponse.getData() devolverá una lista de objetos de entidad Zoho CRM.

Además de los datos, estos objetos contenedores de respuesta tienen las siguientes propiedades:

  1. ResponseHeaders: recuento de API faltantes del día/plazo presente y el tiempo transcurrido del restablecimiento del plazo presente.
  2. ResponseInfo: cualquier otro tipo de información, si la API la proporciona, además de los datos reales.
  3. [EntityResponse]: estado de las entidades individuales en una Bulk API. Por ejemplo, en el ingreso de registros, es posible que una API presente un error parcial debido a algunos registros. Esta lista proporciona el estado de creación de los registros individuales.

Errores

A todos los comportamientos inesperados, como respuestas API incorrectas y errores de biblioteca, los administra la biblioteca cliente y se producen solo como ZCRMSDKError, con casos de errores APT. Por lo tanto, es suficiente para captar este error por sí solo en el código de aplicación del cliente.

Contenedores de acceso a datos de SDK

Además de los contenedores anteriores de las API de Zoho CRM, a fin de evitar solicitudes innecesarias de API, el SDK almacena en caché los metadatos esenciales del módulo en el almacenamiento local del dispositivo.

Actualmente, los datos de CRM (registros) no se almacenan en caché; solo se almacenan en caché los metadatos de los módulos, tales como diseños, secciones, campos y detalles de vista personalizada.

ZCRMCachedModule

Con ZCRMCachedModule, se realiza el almacenamiento en caché de algunos metadatos adicionales. Esto permite extender la clase de ZCRMModule de la biblioteca de cliente API de Zoho CRM. Con esta clase, se proporcionan los siguientes métodos.

  • getAllLayouts: devuelve todos los diseños del módulo como una matriz de ZCRMLayout.
  • getAllCustomViews: devuelve todos los detalles de vista personalizada del módulo como una matriz de ZCRMCustomView.

Actualización de la caché

Con

ZCRMCachedModule, se almacena y utiliza la información de metadatos de los módulos y diseños de formato almacenados en caché en el almacenamiento local del dispositivo. El SDK actualiza los metadatos almacenados de un módulo cada 12 horas.

En caso de que desee forzar el SDK para que finalice el almacenamiento en caché (por ejemplo: si desea agregar un deslizamiento para actualizar la aplicación) y actualice los metadatos mediante una solicitud API de Zoho CRM, puede forzarlo mediante el establecimiento de la marca refreshCache, que se proporciona en las versiones de sobrecarga de los métodos anteriores. A continuación, se presenta una invocación de muestra.

zcrmCachedModuleObj.getAllLayouts(true);

zcrmCachedModuleObj.getAllCustomViews(true);

Share this post : FacebookTwitter

Todavía no puede encontrar lo que está buscando?

Escríbenos: support@zohocrm.com