SDK mobile pour iOS - Configuration

Configuration de votre application

Créer un projet

Une fois votre client enregistré, vous pouvez commencer à créer votre propre application iOS.

Dans votre ligne de commande, accédez au répertoire où vous voulez créer votre projet mobile et exécutez la commande suivante.

zohoios create

Vous serez invité à saisir les informations suivantes.

  1. Nom de votre application mobile (Lead Approver, par exemple).
  2. Nom de l'organisation de votre développeur iOS.
  3. Identifiant de l'organisation de votre développeur iOS.
  4. ID client Zoho OAuth (obtenu lors de l'enregistrement de l'application).
  5. Clé secrète du client Zoho OAuth (obtenue lors de l'enregistrement de l'application).
  6. URL de redirection Zoho OAuth (obtenue lors de l'enregistrement de l'application).

Remarque :

  • L'URI de redirection doit correspondre au schéma d'URL personnalisé de votre application.

Une fois la commande ci-dessus exécutée, un dossier de projet est créé dans le même répertoire. Le nom du dossier de projet est identique à celui de l'application mobile.

Exécuter le projet

Le nouveau projet est en fait une application iOS de démonstration, qui peut être exécutée instantanément à l'aide de Xcode.

  1. Ouvrez le fichier .xcworkspace du nouveau projet.
    La nouvelle application de démonstration s'ouvre en tant que projet Xcode.
  2. Une fois la compilation réussie, vous pouvez facilement exécuter ce projet dans un simulateur.
    L'application s'ouvre avec un écran de connexion Zoho dans le simulateur.
  3. Vous pouvez vous connecter avec vos informations d'identification Zoho CRM et afficher vos données avec l'application de démonstration.

Étendre l'application

Une fois votre projet développé et exécuté, vous pouvez concevoir et créer de nouveaux écrans et de nouvelles fonctionnalités pour votre application, selon vos besoins. Le développement de votre application n'applique aucune restriction frontale. Cependant, pour faciliter l'authentification de l'utilisateur, veillez à noter les points suivants lors de la conception de votre application.

Ne modifiez aucun code figurant déjà dans le fichier AppDelegate.swift

.

Gestion de la connexion/déconnexion :

Pour gérer correctement la connexion de l'utilisateur, l'écran de lancement est déjà configuré dans le SDK pour s'assurer que seuls les utilisateurs connectés peuvent afficher les données des applications. Cependant, si vous voulez afficher votre propre écran de connexion personnalisé, vous pouvez définir votre propre affichage en tant qu'écran de lancement.

Dans la classe ViewController de votre écran de lancement personnalisé, ajoutez le code suivant comme action du bouton de  connexion :

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

Ajoutez le code suivant comme action du bouton de  déconnexion  :

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

Dans le fichier AppConfiguration.plist

  1. OAuthsopes (obligatoire) : des exemples de portées sont déjà mentionnés dans le fichier de propriétés créé. Vous pouvez modifier les portées selon vos besoins.En savoir plus.
  2. AccessType (facultatif) : type d'environnement dans CRM
    • Production : environnement disposant d'utilisateurs payants actifs qui accèdent aux données d'entreprise critiques.
    • Développement : environnements où vous pouvez étendre, intégrer et développer des solutions sans affecter vos environnements de production.
    • SandBox : environnements spécifiquement utilisés pour tester les fonctionnalités d'une application avant la phase de production ou sa publication.
  3. DomainSuffix (facultatif) : prise en charge multi-DC.
    • us - www.zohoapis.com
    • eu - www.zohoapis.eu
    • cn - www.zohoapis.com.cn
  4. PortalID (facultatif) : indiquez votre ID de portail CRM (65468393, par exemple). Il n'est pas utile de mentionner un ID de portail dans le fichier de propriétés si vous n'avez pas d'élément « PortalID ».
  5. ShowSignUp (facultatif) : définissez la valeur sur  true si vous fournissez une fonction d'inscription dans votre application. Sinon, définissez la valeur sur  false.

Ce fichier contient les valeurs de certaines configurations nécessaires pour exécuter l'application. Merci de ne pas modifier les valeurs ou noms de propriétés existant(e)s, ceux-ci étant nécessaires au bon fonctionnement du SDK et de l'application.

Wrappers d'API Zoho CRM

Toutes les entités Zoho CRM sont modélisées sous forme de classes comptant des membres et des méthodes applicables à chaque entité en particulier. ZCRMRestClient est la classe de base de la bibliothèque client.

La hiérarchie et les relations de classe de la bibliothèque suivent la hiérarchie des entités au sein de Zoho CRM. La hiérarchie des classes de diverses entités Zoho CRM est décrite ci-dessous.

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

Telles qu'elles apparaissent dans la hiérarchie, toutes les entités de classe ont des méthodes pour récupérer leurs propres propriétés et pour récupérer les données de leurs entités enfant immédiates par le biais d'un appel d'API.

Par exemple, un objet de module Zoho CRM (ZCRMModule) aura des méthodes pour obtenir les propriétés d'un module (nom d'affichage, ID de module, etc., par exemple), mais aussi des méthodes pour récupérer tous ses objets de disposition enfant (ZCRMLayout).

Accès aux propriétés d'enregistrement

Étant donné que les propriétés d'enregistrement sont dynamiques entre les modules, nous avons seulement donné les champs communs (createdTime, createdBy, owner, etc.) comme membres par défaut de l'objet ZCRMRecord. Toutes les autres propriétés d'enregistrement sont disponibles sous forme de carte dans l'objet ZCRMRecord.

Pour accéder aux valeurs des champs individuels d'un enregistrement, utilisez les méthodes get et set disponibles. Les clés de la carte des propriétés d'enregistrement sont les noms d'API des champs du module. Les noms d'API de tous les champs de tous les modules sont disponibles sous Setup > Developer Space > APIs > CRM API > API Names (Configuration > Espace développeur > API > API CRM > Noms d'API).

  • Pour obtenir une valeur de champ, utilisez record.getFieldValue(fieldAPIName);
    La valeur renvoyée doit correspondre au type de données approprié du champ demandé. Pour les champs relatifs à la recherche et à l'utilisateur, les objets ZCRMRecord et ZCRMUser sont respectivement renvoyés.
  • Pour définir une valeur de champ, utilisez record.setFieldValue(fieldAPIName, newValue);
    Lorsque vous définissez une valeur de champ, veillez à ce que la valeur définie corresponde au type de données approprié du champ pour lequel vous allez la définir.

Remarque :

  • ZCRMRecord().getLookupLabel() renvoie l'étiquette de recherche de l'enregistrement.

Extensions fournies :

Sous forme de chaîne :

  • dateFromISO8601 : Date?
  • dateComponents : DateComponents

Sous forme de date :

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

Téléchargement de la photo de profil d'un utilisateur :

Les méthodes disponibles dans le SDK à cette fin sont les suivantes :

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

Gestion des réponses

APIResponse et BulkAPIResponse sont des wrappers pour les réponses d'API Zoho CRM. Toutes les méthodes d'appel de l'API renvoient l'un de ces deux objets.

Une méthode à la recherche d'une entité unique renvoie un objet APIResponse, alors qu'une méthode à la recherche d'une liste d'entités renvoie un objet BulkAPIResponse.

Utilisez la méthode getData() pour obtenir uniquement les données de l'entité à partir des wrappers de réponse. APIResponse.getData() renvoie un objet d'entité Zoho CRM unique, tandis que BulkAPIResponse.getData() renvoie une liste d'objets d'entité Zoho CRM.

À part les données, ces wrappers de réponse ont les propriétés suivantes.

  1. ResponseHeaders : nombre d'API restantes pour le jour même/la fenêtre actuelle et temps écoulé pour la réinitialisation de la fenêtre actuelle.
  2. ResponseInfo : toutes autres informations, si fournies par l'API, en plus des données réelles.
  3. [EntityResponse] : statut des entités individuelles dans une API de réponse en vrac. Par exemple, dans un enregistrement d'insertion, une API peut partiellement échouer à cause de quelques enregistrements. Cette liste répertorie le statut de création des enregistrements individuels.

Erreurs

Tous les comportements inattendus (réponses d'API défectueuses, anomalies de la bibliothèque, par exemple) sont gérés par la bibliothèque client et sont générés uniquement en tant qu'erreur ZCRMSDKError, en cas d'erreurs pertinentes. Par conséquent, il suffit d'intercepter cette erreur seule dans le code de l'application client.

Wrappers d'accès aux données SDK

En plus du conditionnement ci-dessus des API Zoho CRM, afin d'éviter tout appel d'API inutile, les métadonnées de module essentielles sont mises en cache par le SDK dans la mémoire de stockage local de l'appareil.

Actuellement, les données CRM (enregistrements) ne sont pas mises en cache. Seules les métadonnées de modules, tels que les dispositions, les sections, les champs et les détails de vue personnalisée, sont mises en cache.

ZCRMCachedModule

Certaines métadonnées supplémentaires sont mises en cache avec ZCRMCachedModule. Cela étend la classe ZCRMModule de la bibliothèque de client d'API Zoho CRM. Cette classe fournit les méthodes suivantes.

  • getAllLayouts : renvoie toutes les dispositions du module sous forme de tableau ZCRMLayout.
  • getAllCustomViews : renvoie tous les détails de la vue personnalisée du module sous forme de tableau ZCRMCustomView.

Actualisation du cache

ZCRMCachedModule stocke et utilise les informations sur les métadonnées des modules et des présentations de formulaire mis en cache dans la mémoire de stockage local de l'appareil. Le SDK actualise les métadonnées stockées d'un module toutes les 12 heures.

Dans le cas où vous voulez forcer le SDK à vider le cache (exemple : si vous avez l'intention de faire quelque chose comme un balayage pour actualiser votre application) et à actualiser les métadonnées par le biais d'un appel d'API Zoho CRM, vous pouvez forcer cette opération en définissant l'indicateur refreshCache fourni dans les versions surchargées des méthodes ci-dessus. Un exemple d'appel est donné ci-dessous.

zcrmCachedModuleObj.getAllLayouts(true);

zcrmCachedModuleObj.getAllCustomViews(true);

Share this post : FacebookTwitter

Vous ne trouvez toujours pas ce que vous cherchez?

Écrivez-nous: support@zohocrm.com