Adobe Air, Monitor Online/Offline

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:

[coolcode lang=”actionscript” linenum=”off”]

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!”)

}

[/coolcode]

É tão simples quanto isto…

Segue a class para download :  iMonitor


3 comments

add yours
  • Elvis Fernandes October 2, 2009

    Boa, Mário!!!

    Gostei da solução.

    Um abraço!

    Elvis Fernandes

  • Erko Bridee October 2, 2009

    opa valeu
    isso é bem útil =D

  • Sergio October 9, 2009

    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!!!

Leave a Comment

Post