SDK iOS móvel - Configurar

Configuração do seu aplicativo

Criar um novo projeto

Após o cliente ter sido registrado, você pode começar a criar seu próprio aplicativo iOS.

Na linha de comando, vá para o diretório onde deseja criar o projeto móvel e execute o seguinte comando.

zohoios create

Isso solicitará as seguintes entradas do usuário.

  1. Nome do aplicativo móvel (por exemplo, Aprovador de Oportunidades).
  2. O nome da organização do desenvolvedor iOS.
  3. O identificador da organização do desenvolvedor iOS.
  4. ID do cliente Zoho OAuth (obtido durante o registro do aplicativo).
  5. Segredo do cliente Zoho OAuth (obtido durante o registro do aplicativo).
  6. URL de redirecionamento do Zoho OAuth (obtido durante o registro do aplicativo).

Nota:

  • A URI de redirecionamento deve ser o esquema de URL personalizado do aplicativo.

Na execução bem-sucedida do comando acima, uma pasta de projeto será criada no mesmo diretório. O nome da pasta do projeto será igual ao nome do aplicativo móvel.

Executar o projeto

O projeto recentemente criado é, na verdade, uma demonstração do aplicativo iOS que pode ser executada instantaneamente usando o Xcode.

  1. Abra o arquivo .xcworkspace do projeto recentemente criado.
    O aplicativo de demonstração recém-criado será aberto como um projeto Xcode.
  2. Na compilação bem-sucedida, você pode executar prontamente o projeto em um simulador.
    O aplicativo será aberto com uma tela de login da Zoho no simulador.
  3. Você pode fazer login com suas credenciais do Zoho CRM e exibir seus dados com o aplicativo de demonstração.

Estender o aplicativo

Depois que o projeto tiver sido criado e executado com êxito, você poderá projetar e criar novas telas e funcionalidades para o aplicativo conforme as suas necessidades. Não há restrições de front-end no desenvolvimento do aplicativo. No entanto, para facilitar a autenticação de usuário, certifique-se de observar os seguintes pontos ao projetar o aplicativo.

Não altere qualquer código que já esteja presente em AppDelegate.swift

Para lidar com o login/logout:

Para lidar adequadamente com o login de usuário, inicie a tela que já está configurada no SDK para garantir que somente os usuários conectados possam exibir os dados dos aplicativos. No entanto, se deseja mostrar sua própria tela de login personalizada, você pode declarar sua própria exibição como tela de inicialização.

Na classe ViewController da tela de inicialização personalizada, adicione esse código como a ação do botão de login:

( UIApplication.shared.delegate as! AppDelegate ).loadLoginView { ( isSuccessfulLogin ) in
    if isSuccessfulLogin == true
    {
        // exibe a tela do seu aplicativo
    }
  }

Adicione esse código como a ação do botão de logout :

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

No arquivo AppConfiguration.plist

  1. OAuthscopes (obrigatório) - os escopos de exemplos já são mencionados no arquivo de propriedade criado, você pode alterar os escopos conforme a sua necessidade.Saiba mais.
  2. AccessType (opcional) - tipo de ambiente no CRM
    • Produção - ambiente que tem usuários de pagamento ativo acessando dados de negócios críticos.
    • Desenvolvimento - ambientes onde é possível estender, integrar e desenvolver sem afetar os ambientes de produção.
    • Sandbox - ambientes especificamente usados para testar a funcionalidade do aplicativo antes de implantar a produção ou liberação para clientes.
  3. DomainSuffix (opcional) - Suporte Multi DC.
    • eua - www.zohoapis.com
    • ue - www.zohoapis.eu
    • cn - www.zohoapis.com.cn
  4. PortalID (opcional) - faça referência ao PortalID do CRM (por exemplo: 65468393). Não é preciso mencionar "PortalID" dentro do arquivo de propriedades, caso ainda não tenha um.
  5. ShowSignUp (opcional) - forneça o valor como true, se você fornecer facilidade de inscrição no aplicativo; caso contrário, forneça false.

Esse arquivo contém valores de certas configurações necessárias para executar o aplicativo. Não altere os nomes ou valores de propriedade já existentes, já que eles são necessários para o funcionamento otimizado do SDK e do aplicativo.

Wrappers de API do Zoho CRM

Todas as entidades do Zoho CRM são modeladas como classes com membros e métodos aplicáveis a essa entidade específica. ZCRMRestClient é a classe básica da biblioteca do cliente.

As relações de classe e a hierarquia da biblioteca segue a hierarquia da entidade dentro do Zoho CRM. A hierarquia de classe de várias entidades do Zoho CRM é mostrada abaixo.

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

Conforme aparece na hierarquia, cada classe de entidade tem métodos para buscar suas próprias propriedades e buscar dados de suas entidades filhas imediatas por uma chamada da API.

Por exemplo, um módulo do objeto do Zoho CRM (ZCRMModule) terá métodos para obter propriedades de um módulo como nome de exibição, ID de módulo  etc. E também terá métodos para buscar todos os objetos de layout filhos (ZCRMLayout).

Acesso a propriedades do registro

Como as propriedades do registro são dinâmicas entre os módulos, temos apenas os campos comuns (como createdTime, createdBy, proprietário etc.) como membros padrão do ZCRMRecord. Todas as outras propriedades de registro estão disponíveis como um mapa no objeto ZCRMRecord.

Para acessar os valores de campo individuais de um registro, use os métodos getter e setter disponíveis. As chaves do mapa de propriedades de registro são nomes de API dos campos do módulo. Os nomes de API de todos os campos de todos os módulos estão disponíveis em Configuração > Espaço do Desenvolvedor > APIs > API CRM > Nomes de API.

  • Para obter um valor de campo, use record.getFieldValue(fieldAPIName);
    O valor retornado estará no tipo de dados apt do campo solicitado. Para campos de busca e de tipo de usuário, os objetos ZCRMRecord e ZCRMUser serão retornados, respectivamente.
  • Para definir um valor de campo, use record.setFieldValue(fieldAPIName, newValue);
    Ao definir um valor de campo, verifique se o valor definido é do tipo de dados apt do campo ao qual ele será definido.

Nota:

  • ZCRMRecord().getLookupLabel() retorna o rótulo de busca do registro.

Extensões fornecidas:

Na String:

  • dateFromISO8601 : Date?
  • dateComponents : DateComponents

Na data:

  • 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 baixar a imagem de perfil de um usuário:

Os métodos disponíveis no SDK para alcançar isso são:

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

Manipulação da resposta

APIResponse e BulkAPIResponse são objetos no pacote para respostas dos APIs do Zoho CRM. Todos os API chamando métodos devem retornar um desses dois objetos.

Um método que busca uma única entidade deve retornar o objeto APIResponse, enquanto uma lista de buscas de métodos deve retornar o objeto BulkAPIResponse.

Use o método getData() para obter os dados da entidade sozinhos pelos objetos no pacote de resposta. APIResponse.getData() deve retornar um único objeto de entidade do Zoho CRM, enquanto BulkAPIResponse.getData() deve retornar uma lista de objetos de entidade do Zoho CRM.

Além de dados, esses objetos em pacote de resposta têm as seguintes propriedades.

  1. ResponseHeaders— contagem de API restantes para o dia/janela presente e tempo passado para a redefinição da janela presente.
  2. ResponseInfo— quaisquer outras informações, se fornecidas pela API, além dos dados reais.
  3. [EntityResponse]— status de entidades em uma API de lote. Por exemplo, nos registros de uma entrada, a API pode falhar parcialmente devido a alguns registros. Essa lista fornece o status de criação de registros individuais.

Erros

Todos os comportamentos inesperados, como API, respostas e anomalias de bibliotecas com falhas, são controlados pela biblioteca do cliente e lançados somente como ZCRMSDKError, com casos para erros apt. Portanto, basta capturar esse erro sozinho no código de aplicativo do cliente.

Wrappers de acesso a dados de SDK

Além do agrupamento de APIs do Zoho CRM acima, para evitar chamadas desnecessárias de API, os metadados de módulo essenciais são armazenados em cache pelo SDK no armazenamento local do dispositivo.

Atualmente, dados do CRM (registros) não são armazenados em cache e somente os metadados de módulos, como detalhes de layouts, seções, campos e de exibição personalizada são armazenados em cache.

ZCRMCachedModule

O armazenamento em cache de alguns metadados adicionais é feito pelo ZCRMCachedModule. Isso estende a classe ZCRMModule da biblioteca do cliente da API do Zoho CRM. Essa classe fornece os métodos a seguir.

  • getAllLayouts- retorna todos os layouts do módulo como um array de ZCRMLayout.
  • getAllCustomViews- retorna todos os detalhes da exibição personalizada do módulo como BulkAPIResponse.

Atualização do cache

ZCRMCachedModule armazena e usa as informações de metadados de módulos e layouts armazenados em cache no armazenamento local do dispositivo. O SDK atualiza os metadados armazenados de um módulo para cada 12 horas.

Nesse caso, você deseja forçar o SDK a soltar o cache (por exemplo: se você pretende fornecer algo como um deslize para atualizar em seu aplicativo) e atualizar os metadados por uma chamada de API do Zoho CRM, você pode forçá-lo configurando o indicador refreshCache fornecido nas versões sobrecarregadas dos métodos acima. Um exemplo de chamada é fornecido abaixo.

zcrmCachedModuleObj.getAllLayouts(true);

zcrmCachedModuleObj.getAllCustomViews(true);

Share this post : FacebookTwitter

Ainda não consegue encontrar o que você está procurando?

Escreva para nós: support@zohocrm.com