Uw applicatie configureren
Een nieuw project maken
Zodra uw client is geregistreerd, kunt u beginnen met het maken van uw eigen iOS-applicatie.
Ga in de opdrachtregel naar de map waarin u uw mobiele project wilt maken en voer de volgende opdracht uit.
zohoios create
U wordt nu gevraagd naar de volgende gebruikersinvoer.
- Naam van uw mobiele app (bijvoorbeeld Lead Approver).
- De naam van uw organisatie voor iOS-ontwikkelaars.
- Uw organisatie-id voor iOS-ontwikkelaar.
- Zoho OAuth client-id (verkregen tijdens appregistratie).
- Zoho OAuth clientgeheim (verkregen tijdens appregistratie).
- Zoho OAuth omleidings-URL (verkregen tijdens appregistratie).
Let op:
- De omleidings-URI moet het aangepaste URL-schema van uw applicatie zijn.
Na het uitvoeren van de bovenstaande opdracht wordt een projectmap gemaakt in dezelfde map. De naam van de projectmap komt overeen met de naam van de mobiele app.
Het project uitvoeren
Het nieuwe project is eigenlijk een demo-iOS-app die direct kan worden uitgevoerd met Xcode.
- Open het bestand .xcworkspace van het zojuist gemaakte project.
De nieuwe demo-app wordt geopend als een Xcode-project. - Na het compileren kunt u dit project direct in een simulator uitvoeren.
De app wordt geopend met een Zoho-aanmeldingsscherm in de simulator. - U kunt zich aanmelden met uw Zoho CRM-referenties en uw gegevens met de demo-app bekijken.
De app uitbreiden
Zodra uw project is gemaakt en uitgevoerd, kunt u nieuwe schermen en functies voor uw app ontwerpen en maken volgens uw vereisten. Er zijn geen front-end beperkingen bij het ontwikkelen van uw app. Om de gebruikersverificatie te vereenvoudigen, dient u echter rekening te houden met de volgende punten bij het ontwerpen van uw app.
Wijzig geen code die al aanwezig is in AppDelegate.swift
Aanmelden/afmelden afhandelen:
Om de aanmelding van gebruikers correct te verwerken, is het startscherm al geconfigureerd in de SDK om ervoor te zorgen dat alleen gebruikers die zijn aangemeld de gegevens van de applicaties kunnen bekijken. Als u echter uw eigen aangepaste aanmeldingsscherm wilt weergeven, kunt u uw eigen weergave instellen als startscherm.
Voeg in de klasse ViewController van uw aangepaste startscherm deze code toe als actie van de knop log in:
( UIApplication.shared.delegate as! AppDelegate ).loadLoginView { ( isSuccessfulLogin ) in
if isSuccessfulLogin == true
{
// display your application's screen
}
}
Voeg deze code toe als de actie van de knop log out:
( UIApplication.shared.delegate as! AppDelegate ).logout(completion: { (success) in
if( success == true )
{
// logout successful
}
})
In het bestand AppConfiguration.plist
- OAuthScopes (verplicht) – Voorbeeldscopes worden al genoemd in het gemaakte eigenschappenbestand. U kunt de scopes naar wens wijzigen. Meer informatie.
- AccessType (optioneel) – Type omgeving in CRM
- Production – Omgeving waarin actieve betalende gebruikers toegang hebben tot essentiële bedrijfsgegevens.
- Development – Omgevingen waarin u kunt uitbreiden, integreren en ontwikkelen zonder dat dit invloed heeft op uw productieomgevingen.
- Sandbox – Omgevingen die specifiek worden gebruikt voor het testen van de functionaliteit van applicaties voordat ze worden geïmplementeerd in productie of worden vrijgegeven aan klanten.
- DomainSuffix (optioneel) – Multi DC-support.
- VS – www.zohoapis.com
- EU – www.zohoapis.eu
- CN – www.zohoapis.com.cn
- PortalID (optioneel) – Uw CRM Portal-ID invoeren (bijvoorbeeld 65468393). U hoeft 'PortalID' niet te vermelden in het eigenschappenbestand als u er geen hebt.
- ShowSignUp (optioneel) – Geef de waarde als true als u een aanmeldfunctie in uw app opgeeft, anders geeft u de waarde false.
Dit bestand bevat waarden van bepaalde configuraties die nodig zijn om de app uit te voeren. Wijzig de bestaande eigenschapsnamen of -waarden niet, omdat deze nodig zijn voor een soepele werking van de SDK en de app.
Zoho CRM API-wrappers
Alle Zoho CRM-entiteiten worden gemodelleerd als klassen met leden en methoden die van toepassing zijn op die specifieke entiteit. ZCRMRestClient is de basisklasse van de clientbibliotheek.
De klassenrelaties en -hiërarchie van de bibliotheek volgen de entiteitshiërarchie in Zoho CRM. Hieronder vindt u de klassenhiërarchie van verschillende Zoho CRM-entiteiten.
ZCRMRestClient
-ZCRMOrganization
-ZCRMUser
-ZCRMRole
-ZCRMProfile
-ZCRMModule
-ZCRMLayout
-ZCRMSection
-ZCRMField
-ZCRMPickListValue
-ZCRMCustomView
-ZCRMModuleRelation
-ZCRMJunctionRecord
-ZCRMRecord
-ZCRMInventoryLineItem
-ZCRMTax
-ZCRMPriceBookPricing
-ZCRMEventParticipant
-ZCRMNote
-ZCRMAttachment
-ZCRMTrashRecord
Net als in de hiërarchie heeft elke entiteitsklasse methoden om zijn eigen eigenschappen op te halen en gegevens van zijn directe onderliggende entiteiten op te halen via een API-aanroep.
Een Zoho CRM-module-object (ZCRMModule) heeft bijvoorbeeld methoden om de eigenschappen van een module op te halen, zoals weergavenaam, module-id, enzovoort, en heeft ook methoden om alle onderliggende lay-outobjecten (ZCRMLayout) op te halen.
Recordeigenschappen openen
Aangezien recordeigenschappen dynamisch zijn in verschillende modules, hebben we alleen de gemeenschappelijke velden zoals createdTime, createdBy, owner, enzovoort, opgegeven als standaardleden van ZCRMRecord. Alle andere recordeigenschappen zijn beschikbaar als een toewijzing in het ZCRMRecord-object.
Gebruik de beschikbare getter- en settermethoden om de afzonderlijke veldwaarden van een record te openen. De sleutels van de toewijzing van recordeigenschappen zijn de API-namen van de velden van de module. API-namen van alle velden van alle modules zijn beschikbaar onder Setup > Developer Space > APIs > CRM API > API Names.
- Om een veldwaarde op te halen, gebruikt u record.getFieldValue(fieldAPIName);
De geretourneerde waarde zal het geschikte gegevenstype van het gevraagde veld hebben. Voor zoekvelden en velden voor gebruikerstypen worden respectievelijk ZCRMRecord- en ZCRMUser-objecten geretourneerd. - Als u een veldwaarde wilt instellen, gebruikt u record.setFieldValue(fieldAPIName, newvalue).
Zorg er bij het instellen van een veldwaarde voor dat de ingestelde waarde het juiste gegevenstype heeft van het veld waarop u deze wilt instellen.
Let op:
- ZCRMRecord().getLookupLabel() retourneert het opzoeklabel van de record.
Beschikbare extensies:
In tekenreeks:
- 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
Een profielafbeelding van een gebruiker downloaden:
De beschikbare methoden in de SDK zijn hiervoor:
- ZCRMUser().downloadProfilePhoto()
- ZCRMUser().downloadProfilePhoto( size : PhotoSize )
Afhandeling van reacties
APIResponse en BulkAPIResponse zijn wrapperobjecten voor de reacties van Zoho CRM API's. Alle API-aanroepmethoden retourneren een van deze twee objecten.
Een methode die een enkele entiteit zoekt, retourneert een APIResponse-object, terwijl een methode die een lijst met entiteiten zoekt, een BulkAPIResponse-object zou opleveren.
Gebruik de methode getData() om de entiteitsgegevens alleen op te halen uit de objecten van de reactiewrapper. APIResponse.getData() retourneert één Zoho CRM-entiteitsobject, terwijl BulkAPIResponse.getData() een lijst met Zoho CRM-entiteitsobjecten retourneert.
Behalve gegevens hebben deze reactiewrapperobjecten de volgende eigenschappen.
- ResponseHeaders – resterende API-tellingen voor de huidige dag/het huidige venster en de tijd die is verstreken voor het opnieuw instellen van het huidige venster.
- ResponseInfo – alle andere informatie, indien geleverd door de API, naast de werkelijke gegevens.
- [EntityResponse] – status van afzonderlijke entiteiten in een bulk-API. In een invoegrecord kan API bijvoorbeeld gedeeltelijk mislukken vanwege een paar records. Deze lijst geeft de aanmaakstatus van de afzonderlijke records weer.
Fouten
Alle onverwachte gedragingen zoals foutieve API-reacties en afwijkingen in de bibliotheek worden door de clientbibliotheek verwerkt en worden alleen weergegeven als ZCRMSDKError, met gevallen voor toepasselijke fouten. Het is dus voldoende om alleen deze fout op te sporen in de code van de clientapp.
SDK Data Access-wrappers
Naast de bovenstaande verpakking van Zoho CRM API's, worden essentiële modulemetagegevens door de SDK in de lokale opslag van het apparaat opgeslagen om onnodige API-aanroepen te voorkomen.
Op dit moment worden CRM-gegevens (records) niet in de cache opgeslagen en worden alleen metagegevens van modules zoals lay-outs, secties, velden en aangepaste weergavedetails in de cache opgeslagen.
ZCRMCachedModule
Een aantal extra metadata-caching wordt uitgevoerd met ZCRMCachedModule. Hierdoor wordt de ZCRMModule-klasse van de Zoho CRM API clientbibliotheek uitgebreid. Deze klasse biedt de volgende methoden.
- getAllLayouts – retourneert alle lay-outs van de module als een matrix van ZCRMLayout.
- getAllCustomViews – retourneert alle aangepaste weergavedetails van de module als een matrix van ZCRMCustomView.
De cache vernieuwen
ZCRMCachedModule slaat de metagegevens van modules en formulierlay-outs op en gebruikt deze in de cache van de lokale opslag van het apparaat. De SDK vernieuwt de opgeslagen metagegevens van een module om de 12 uur.
In het geval dat u de SDK wilt dwingen de cache te verwijderen (bijvoorbeeld wanneer u iets wilt geven zoals een veeg om te vernieuwen in uw app) en de metagegevens wilt vernieuwen via een Zoho CRM API-aanroep, kunt u dit forceren door de refreshCache-vlag in te stellen die wordt weergegeven in de uitgebreide versies van de bovenstaande methoden. Hieronder vindt u een voorbeeld van een aanroep.
zcrmCachedModuleObj.getAllLayouts(true);
zcrmCachedModuleObj.getAllCustomViews(true);