Mobilidade Sem Limites: Como acessar as APIs dos dispositivos móveis através do Magic xpa

Os sistemas operacionais dos dispositivos móveis oferecem uma API para uso pelas apps, afim de que elas possam interagir e usufruir dos diversos recursos existentes.

Recursos como câmera, GPS, enviar SMS, são recursos que estão nativamente disponíveis no Magic xpa. Veja mais detalhes em:

Interação com Dispositivos Móveis

Porém, nem todos os recursos disponíveis na plataforma são acessíveis diretamente pelo RIA Client do Magic xpa.

Embora cada nova versão venha disponibilizando mais e mais serviços e features, alguns recursos das APIs só serão acessíveis através de camadas desenvolvidas em linguagens nativas de cada plataforma.

Para atingir esse objetivo, a versão 2.2a do Magic xpa traz um excelente novidade: nós podemos agora customizar o Client RIA e interagir livremente com as APIs das plataformas.

Este recurso está disponível para o clients iOS® e Android®.

Obviamente, a customização para o Android vai requerer conhecimentos de Java e API Android, assim como para iOS vai exigir conhecimentos de Objetive C e API iOS.

 

Como funciona?

 O processo é simples (ao menos para quem já é desenvolvedor destas plataformas).

Nos clients RIA do Magic, há uma rotina interna chamada ‘userDefinedFunction’. Esta rotina não tem aplicação efetiva para o client. Na verdade, ela é uma rotina vazia e está ali exclusivamente para ser customizada.

No Android, ela se localiza no arquivo ‘TestApplication.java’:

No iOS, ela se localiza no arquivo ‘AppDelegate.mm’:

Esta rotina recebe um argumento, do tipo string, e deve retornar também um valor do tipo string.

Nós não podemos alterar seu nome, tipo, etc. Mas podemos alterar livremente o seu corpo (conteúdo) para incluir todo código desejado que permita realizar a integração com a API, que estamos buscando.

Desta forma, podemos usufruir dos recursos da plataforma que ainda não estão nativamente disponíveis no client RIA do Magic xpa.

Para que estas customizações tenham efeito, precisaremos gerar (compilar) uma nova app.

Veja como fazer:

Para Android

Para iOS

 

Como acessar?

Feita a customização, nós poderemos acessá-la com a função: ClientOSEnvGet().

A chamada deve seguir o seguinte formato: ClientOSEnvGet (‘device_udf|<conteúdo livre>‘).

Este formato faz com que o client RIA invoque automaticamente a função interna ‘userDefinedFunction’. <conteúdo livre> representa qualquer texto, que será enviado ao argumento string da referida função. Após a execução, o retorno (string) da função ‘userDefinedFunction’ será o valor retornado por ClientOSEnvGet() para o Magic xpa.

 

Mais algum recurso?

Sim. Além da função que mencionamos acima, estes módulos (arquivos fontes) trazem também uma rotina chamada ‘invokeExternalEvent’.

Esta rotina não deve ser alterada, mas ela pode ser chamada livremente dentro do nosso código customizado.

O que ela faz é gerar um evento (síncrono), que pode ser capturado dentro do nosso programa Magic xpa através do handler Event – Internal – External Event:

O argumento (string) passado a esta rotina, ficará disponível através do argumento do nosso event handler.

 

Agora, com a versão 2.2a do client RIA Mobile do Magic xpa, podemos ampliar livremente as funcionalidades disponíveis, segundo as nossas necessidades.

 

Manoel Frederico - Gerente de Produto e Magic Evangelista
Manoel Frederico – Gerente de Produto e Magic Evangelista

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *