Mobil-SDK iOS – Konfigurieren

Konfigurieren Ihrer Anwendung

Neues Projekt erstellen

Sobald Ihr Client registriert wurde, können Sie beginnen, Ihre iOS-Anwendung zu erstellen.

Wechseln Sie über die Befehlszeile zu dem Verzeichnis, in dem Sie Ihr mobiles Projekt erstellen möchten, und führen Sie den folgenden Befehl aus.

zohoios create

Dies fordert Sie zur Eingabe der folgenden Benutzereingaben auf.

  1. Name Ihrer mobilen App (z. B. Lead-Genehmiger)
  2. Der Name Ihrer iOS-Entwicklerorganisation.
  3. Die Kennung Ihrer iOS-Entwicklerorganisation.
  4. Zoho OAuth-Client-ID (erhalten während der App-Registrierung)
  5. Vertrauliche Zoho OAuth-Client-Daten (erhalten während der App-Registrierung)
  6. Zoho OAuth-Weiterleitungs-URL (erhalten während der App-Registrierung)

Hinweis:

  • Der Weiterleitungs-URI muss das URL-Schema Ihrer Anwendung sein.

Bei erfolgreicher Ausführung des obigen Befehls wird im gleichen Verzeichnis ein Projektordner erstellt. Der Name des Projektordners entspricht dem Namen der mobilen App.

Projekt ausführen

Das neu erstellte Projekt ist eigentlich eine iOS-Demo-App, die mithilfe von Xcode sofort ausgeführt werden kann.

  1. Öffnen Sie die Datei .xcworkspace des neu erstellten Projekts.
    Die neu erstellte Demo-App wird als Xcode-Projekt geöffnet.
  2. Nach dem erfolgreichen Kompilieren können Sie das Projekt in einem Simulator ausführen.
    Die App wird im Simulator mit einem Zoho-Anmeldebildschirm geöffnet.
  3. Sie können sich mit den Zoho CRM-Anmeldeinformationen anmelden und Ihre Daten mit der Demo-App einsehen.

App erweitern

Wurde Ihr Projekt erfolgreich erstellt und ausgeführt, können Sie ganz nach Bedarf weitere Bildschirme/Funktionen gestalten und erstellen. Für die Entwicklung Ihrer App existieren keine Front-End-Einschränkungen. Stellen Sie zur Vereinfachung der Benutzerauthentifizierung jedoch sicher, dass Sie beim Gestalten Ihrer App folgende Punkte beachten.

Ändern Sie keinen Code, der bereits in AppDelegate.swift enthalten ist.

Handhabung von An- und Abmeldung:

Zur korrekten Handhabung der Benutzeranmeldung wurden die Startaktivitäten bereits im SDK konfiguriert, um sicherzustellen, dass nur angemeldete Benutzer die Daten der Anwendungen sehen können. Wenn Sie jedoch einen eigenen, angepassten Anmeldebildschirm zeigen möchten, können Sie eine eigene Ansicht als Startbildschirm deklarieren.

Fügen Sie in der ViewController-Klasse Ihres individuellen Startbildschirms diesen Code als Aktion der Schaltfläche Anmelden hinzu:

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

Fügen Sie diesen Code als Abmelde -Schaltfläche der Aktion hinzu:

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

In der Datei AppConfiguration.plist

  1. OAuthscopes (erforderlich) – In der erstellten Eigenschaftendatei sind bereits Beispielbereiche enthalten. Diese können bei Bedarf angepasst werden.Weitere Informationen.
  2. AccessType (optional) – Art der Umgebung in CRM
    • Produktion – Umgebung mit aktiven, zahlenden Benutzern, die auf kritische Geschäftsdaten zugreifen.
    • Entwicklung – Umgebungen, in der Sie Erweiterungen, Integrationen und Entwicklungen vornehmen können, ohne Ihre Produktionsumgebungen zu beeinflussen.
    • Sandbox – Umgebungen, die speziell zum Testen der Anwendungsfunktionalität verwendet werden, bevor die Bereitstellung in der Produktion oder die Freigabe für Kunden erfolgt.
  3. DomainSuffix (optional) – Mehrfachunterstützung für Rechenzentren
    • us - www.zohoapis.com
    • eu - www.zohoapis.eu
    • cn - www.zohoapis.com.cn
  4. PortalID (optional) – Erwähnen Sie Ihre CRM-Portal-ID (z. B. 65468393). „PortalID“ muss nicht in der Eigenschaftendatei erwähnt werden, wenn nicht vorhanden.
  5. ShowSignUp (optional) – Geben Sie den Wert als true an, wenn die App eine Anmeldemöglichkeit bietet, ansonsten lautet der Wert false.

Diese Datei enthält bestimmte Konfigurationswerte, die für die Ausführung der App erforderlich sind. Ändern Sie nicht die vorhandenen Eigenschaftennamen und Werte, da diese für den reibungslosen Betrieb von SDK und App benötigt werden.

Zoho CRM-API-Wrapper

Alle Zoho CRM-Entitäten werden als Klassen modelliert, die Mitglieder und Methoden für diese Entität aufweisen. ZCRMRestClient ist die Basisklasse der Client-Bibliothek.

Die Beziehungen zwischen den Klassen und die Hierarchie der Bibliothek folgt der Entitätenhierarchie innerhalb von Zoho CRM. Die Klassenhierarchie der verschiedenen Zoho CRM-Entitäten ist unten angegeben.

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

Wie in der Hierarchie gezeigt, verfügt jede Entitätenklasse über Methoden zum Abruf der eigenen Eigenschaften und der Daten direkt untergeordneter Entitäten über einen API-Aufruf.

Beispiel: Ein Zoho CRM-Modulobjekt (ZCRMModule) verfügt über Methoden zum Abrufen der Moduleigenschaften wie Anzeigename, Modul-ID usw. sowie über Methoden zum Abrufen aller untergeordneten Layoutobjekte (ZCRMLayout).

Zugriff auf Datensatzeigenschaften

Da Datensatzeigenschaften modulübergreifend dynamisch sind, wurden nur die allgemeinen Felder wie createdTime, createdBy, owner usw. als Standardmitglieder von ZCRMRecord festgelegt. Alle anderen Datensatzeigenschaften stehen als Übersicht im Objekt ZCRMRecord zur Verfügung.

Für den Zugriff auf die einzelnen Feldwerte eines Datensatzes verwenden Sie die verfügbaren Getter- und Setter-Methoden. Die Schlüssel der Übersicht zu den Datensatzeigenschaften sind die API-Namen der Modulfelder. API-Namen aller Felder aller Module finden sich unter Setup > Developer Space > APIs > CRM-API > API-Namen.

  • Zum Abrufen eines Feldwerts verwenden Sie record.getFieldValue(fieldAPIName);
    Der Wert wird als Datentyp "Apt" des angeforderten Felds zurückgegeben. Für die Suche und für Benutzerfelder werden die Objekte ZCRMRecord und ZCRMUser zurückgegeben.
  • Verwenden Sie zum Festlegen eines Feldwerts record.setFieldValue(fieldAPIName, newValue);
    Stellen Sie beim Festlegen eines Feldwerts sicher, dass dieser Wert dem Datentyp des betreffenden Felds entspricht.

Hinweis:

  • ZCRMRecord().getLookupLabel() gibt die Suchkennung des Datensatzes zurück.

Bereitgestellte Erweiterungen:

In Zeichenfolge:

  • dateFromISO8601 : Date?
  • dateComponents : DateComponents

In Datum:

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

Herunterladen des Profilbilds eines Benutzers:

Das SDK bietet hierzu folgende Methoden:

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

Handhabung von Antworten

APIResponse und BulkAPIResponse sind Wrapper-Objekte für Zoho CRM-API-Antworten. Alle API-Aufrufmethoden geben eines dieser beiden Objekte zurück.

Eine Methode zur Suche einer einzelnen Entität gibt ein APIResponse-Objekt zurück, während eine Methode zur Suche einer Entitätenliste ein BulkAPIResponse-Objekt zurückgibt.

Verwenden Sie die Methode getData(), um nur die Entitätendaten aus dem Antwort-Wrapper-Objekt abzurufen.APIResponse.getData() würde ein einzelnes Zoho CRM-Entitätsobjekt zurückgeben, während BulkAPIResponse.getData() eine Liste von Zoho CRM-Entitätsobjekten zurückgeben würde.

Neben den Daten haben diese Antwort-Wrapper-Objekte folgende Eigenschaften.

  1. ResponseHeaders – Die verbleibende API ermittelt den aktuellen Tag/das Fenster und die verstrichene Zeit für das Zurücksetzen des aktuellen Fensters.
  2. ResponseInfo – Alle anderen Informationen, sofern neben den eigentlichen Daten von der API bereitgestellt.
  3. [EntityResponse] – Status der einzelnen Entitäten in der Bulk-API. Beispiel: Eine API zum Einfügen von Datensätzen kann aufgrund einiger Datensätze fehlschlagen. Diese Liste enthält den Erstellungsstatus der einzelnen Datensätze.

Fehler

Alle unerwarteten Verhaltensweisen, darunter fehlerhafte API-Antworten und Bibliothekanomalien, werden durch die Client-Bibliothek behandelt und sind bei Fehlern nur als ZCRMSDKError vorhanden. Daher reicht es aus, nur diesen Fehler im Client-App-Code abzufangen.

SDK-Datenzugriffs-Wrapper

Neben dem zuvor erwähnten Wrapping der Zoho CRM-APIs werden wichtige Modul-Metadaten vom SDK im lokalen Gerätespeicher gepuffert, um unnötige API-Aufrufe zu vermeiden.

Derzeit werden CRM-Daten (Datensätze) nicht gepuffert, sondern nur Metadaten von Modulen, wie Layouts, Abschnitte, Felder, individuelle Ansichten.

ZCRMCachedModule

Für ZCRMCachedModule werden einige weitere Metadaten gepuffert. Dies erweitert die Klasse ZCRMModule der Zoho CRM API-Client-Bibliothek. Diese Klasse stellt die folgenden Methoden bereit.

  • GetAllLayouts – Gibt alle Layouts des Moduls als Array von ZCRMLayout zurück.
  • GetAllCustomViews – Gibt alle benutzerdefinierten Ansichtsdetails des Moduls als Array von ZCRMCustomView zurück.

Aktualisieren des Cache

ZCRMCachedModule speichert und verwendet die Metadaten von Modulen und Formular-Layouts, die im lokalen Speicher des Geräts zwischengespeichert sind. Das SDK aktualisiert die gespeicherten Metadaten eines Moduls alle 12 Stunden.

Wenn Sie das SDK zwingen möchten, die Cache-Funktion zu ignorieren (z. B. um mit einer Wischgeste die App zu aktualisieren) und die Metadaten über einen Zoho CRM-API-Aufruf zu aktualisieren, können Sie das Flag refreshCache setzen, dass in den überladenen Versionen der zuvor genannten Methoden enthalten ist. Ein Beispielaufruf folgt unten.

zcrmCachedModuleObj.getAllLayouts(true);

zcrmCachedModuleObj.getAllCustomViews(true);

Share this post : FacebookTwitter

Finden Sie immer noch nicht, wonach Sie suchen?

Schreib uns: support@zohocrm.com