Adobe Air, Monitor Online/Offline


adobe-airJá muitos se depararam com a necessidade de verificar se a vossa aplicação adobe air têm disponivel ligação à internet, ora… eu ja vi alguns exemplos com URLRequest, URLLoader e até Remote Object. Por seu lado, isto numa aplicação Flex poderia ser uma das hipoteses, mas numa aplicação AIR é muito mais simples.

No meio das classes da framework disponiveis pro AIR é o URLMonitor (air.net.URLMonitor) que com apenas 2/3 linhas de código permite saber se a aplicação dispõe de ligação à internet, se não dispõe e como a ajuda de 1 ou 2 eventos permite-nos controlar o estado da nossa aplicação.

Eu fiz uma class bem simples, que fica aqui para quem quiser, o seu uso é muito facil, basta na aplicação principal (ou onde quiserem) colocar o seguinte:

import com.as3.msdevstudio.iMonitor;
 
private function init():void {
 
var monitor:iMonitor = new iMonitor();
 
monitor.addEventListener("NET_CHANGE", statusAlterado);
 
monitor.start();
 
}
 
private function statusAlterado(e:Event):void {
 
monitor.isAlive()==true ? Alert.show("Foi detectada uma ligação à internet!!") : Alert.show("Foi perdida a ligação à internet!")
 
}

É tão simples quanto isto…

Segue a class para download :  iMonitor

Deixe um comentário ou um Trackback
   

3 Comentários

  1. Outubro 2, 2009 às 2:55 pm | Permalink

    Boa, Mário!!!

    Gostei da solução.

    Um abraço!

    Elvis Fernandes

  2. Outubro 2, 2009 às 4:24 pm | Permalink

    opa valeu
    isso é bem útil =D

  3. Outubro 9, 2009 às 2:43 pm | Permalink

    Qual o principal problema da Adobe nessa abordagem?

    Bem, basicamente ele verifica uma URL e os seus status (404, 200, etc).

    Agora se como o endereço de conexão eu indicar uma servlet, o que acontece? Tcharan – a servlet vai entender aquilo como uma conexão, vai retornar o status OK (200) e vai executar a ação prevista!

    Pois é, tive um sério problema com isso. Tente usar isso com o BlazeDS, o que acontece? Ele sai criando sessão pra todos os lados.

    E eu ainda tenho outro problema: descobrir se o cabo de rede está conectado pelo Air.

    Um outro quesito que não gosto do URL monitor é o consumo de banda. Já viu como fica usando o ZoneAlarm? Alto.

    A melhor abordagem que eu consegui até agora pra monitorar conexão é ter um cliente em C# no cliente e me comunicar com ele por Socket. Vamos ver o que a Adobe vai fazer lá na frente…

    []’s!!!

Deixe um comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios estão marcados com um *

*
*