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!
