Flex e Javascript interagindo com o Apollo

Olá amigos, primeiramente desculpa pela demora, faz tempo que não posto nada neste humilde blog e espero que vocês compreendam que estou ralando pra caramba!

Alguns dias atrás um amigo estava com uma dúvida cruel, perguntou-me como ele poderia interagir uma aplicação que esta rodando no browser com uma aplicação Apollo, e esta rodando em backgorund em seu desktop.

Bom, já que sobrou aqui 5 minutos fiz uma pequena aplicação para demonstrar como funciona o processo. A idéia básica é ter um “proxy” swf que faz o meio de campo entre o Javascript e a Aplicação Apollo.

Assim:

Aplicação web <-> Proxy < -> Aplicação Apollo

Onde aplicação web pode ser uma página html/javascrit normal, e o proxy é um swf que ficará na mesma página da aplicação e escondido, é ele que irá falar com a aplicação Apollo através de um LocalConnection.

Então:

Aplicação web envia um comando em javascript para o proxy/swf.

function comunica(){
idDoProxySWF.funcaoInterna(valores…..);
}

Agora o proxy é iniciado adicionando um callBack.

ExternalInterface.addCallback(“funcaoInterna”, conversaComOApollo);

E por fim a função que conversa com o Apollo através de um LocalConnection.

public function enviaFrase(msg:String):void{
try {
lcEnvia.send( “_pontes”, “recebeFrase”, msg);
}catch(err:Error){
Alert.show(“Hey olha isso.\nErro: ” + err);
}
}

Aqui temos:

lcEnvia.send( “_pontes”, “recebeFrase”, msg);

lcEnvia é o nome do LocalConnection instanciado e carregado assim que o proxy é aberto.
_pontes é o nome da conexão aberta na aplicação Apollo.
msg é uma string qualquer enviada a aplicação Apollo

Agora no Apollo temos um LocalConnection que abriu uma conexão chamada _pontes e é ela que libera a aplicação para receber chamadas de outros contextos.

lc = new LocalConnection();
lc.allowDomain(“*”);
lc.connect(“_pontes”);
lc.client = this;

Isso aê, rápido fácil e indolor.

Aqui esta os fontes das duas aplicações Ok.

Grande abraço e até a próxima!

  1. No comments yet.
  1. No trackbacks yet.