Acesso a dados do Salesforce em aplicativos hÃbridos
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Utilizar a biblioteca force.js para acessar a API REST do Salesforce a partir de um aplicativo hÃbrido.
- Utilizar controladores do Apex para acessar dados do Salesforce a partir de um aplicativo hÃbrido remoto.
Como acessar a API do Salesforce com Force.js
Em nossa inspeção do aplicativo ContactExplorer, você viu a biblioteca force.js em ação. Essa biblioteca fornece um conjunto de funções avançadas para efetuar operações em registros do Salesforce. Além de criar, excluir, atualizar e atualizar/inserir, a biblioteca oferece suporte a consultas SOQL, pesquisas SOSL, descrições de metadados e gerenciamento de arquivos.
Você pode baixar force.js e outras bibliotecas de JavaScript do Mobile SDK dos repositórios GitHub SalesforceMobileSDK-Shared/libs e SalesforceMobileSDK-Shared/dependencies.
Introdução ao force.js e ao Mobile SDK
Para começar, carregue os seus recursos essenciais do aplicativo na nuvem do Salesforce.
- Crie um arquivo de arquivamento, como um arquivo ZIP, contendo cordova.js, force.js e quaisquer outros recursos estáticos exigidos pelo seu projeto.
- No Salesforce, carregue o arquivo de arquivamento em Seu nome | Configuração do aplicativo | Desenvolver | Recursos estáticos.
Exemplo de uma página simples do Visualforce
Como usar controladores do Apex em um aplicativo hÃbrido remoto
Com aplicativos hÃbridos remotos, você normalmente acessa dados do Salesforce através de uma página do Visualforce e do seu controlador do Apex associado. Caso a sua página do Visualforce contenha um código JavaScript, esse código pode interagir e compartilhar dados com o controlador do Apex do lado do servidor.
- Oferece maior flexibilidade e melhor desempenho que apex:actionFunction.
- Oferece suporte a parâmetros e tipos de retorno no método de controlador do Apex com mapeamento automático entre os tipos Apex e JavaScript.
- Utiliza um modelo de processamento assÃncrono com retorno de chamadas.
- Ao contrário de apex:actionFunction, a solicitação AJAX não inclui o estado de visualização para a página do Visualforce. Isso resulta em um tempo de ida e volta mais rápido.
No exemplo a seguir, um código JavaScript é inserido em uma marca <script> na página do Visualforce. Esse código chama o método invokeAction() no objeto do gerenciador remoto do Visualforce. Ele transmite à invokeAction() os metadados necessários para chamar uma função denominada getItemId() no objeto do controlador do Apex objName. Uma vez que invokeAction() é executada de forma assÃncrona, o código também define uma função de retorno de chamada para processar o valor retornado de getItemId(). No controlador do Apex, a anotação @RemoteAction expõe a função getItemId() ao código JavaScript externo.
No método getItemId(), por exemplo, você pode chamar uma API do Salesforce e capturar o valor de retorno em JavaScript.
Recursos
- Guia do desenvolvedor da API REST
- Centro do desenvolvedor de API REST e integração
- Como aceder a dados do Salesforce: Controladores vs. APIs
- Como chamar a API REST a partir de páginas do Visualforce, Revisitado (Blog de desenvolvedores do Salesforce)
- https://github.com/forcedotcom/SalesforceMobileSDK-Shared
- InÃcio rápido: Conectar o Postman ao Salesforce