Continuamos com a série de artíulos em Adobe Air . Agora, tente um tema é curioso como detectar se o cliente tem acesso à Internet. Qual o benefício pode um sabe? Simples, permitir que o aplicativo funcione em modo offline e modos online.

Esta parte é muito bem explicado no manual. Não é um evento "NETWORK_CHANGE", que serve nosso propósito : | . O que é isso? Para detectar mudanças nas interfaces de rede em geral. Esse evento é acionado sempre que ocorrerem alterações em qualquer uma das interfaces de rede na máquina que está executando a aplicação, o que não significa que a mudança do status da conectividade com a Internet, porque este evento não sabe se deve ou não sair Internet ou através do qual você interface de saída. Qual o benefício pode ser, então eu não sei : P Mas aqui está o caso se você deseja usar para alguma coisa ...

  1. ( Event. NETWORK_CHANGE , onNetworkChange ) ; NativeApplication. NativeApplication. AddEventListener (Event. NETWORK_CHANGE, onNetworkChange)
  2. event:Event ) função onNetworkChange (evento: Event)
  3. (
  4. / / Verificar disponibilidade de recursos
  5. )

Para nossos propósitos, nós usamos a classe URLMonitor , como o próprio nome sugere, serve para monitorar uma URL. Na verdade, o AIR é como detecta o status da conexão, periodicamente, a ligação ao URL que você indicar. Se você não consegue alcançá-lo pressupõe que você ficar fora da Internet. Vamos lá, que se você estava esperando algo que ultrapassa e cafetão, você pode ficar esperando, é o método tradicional que existe: o leite, eu não posso ligar para o Google, que terá perdido o wifi. É o mesmo : P .

  1. . URLMonitor ; ar de importação. líquido. URLMonitor;
  2. . URLRequest ; flash de importação. líquido. URLRequest;
  3. . StatusEvent ; flash de importação. acontecimentos. StatusEvent;
  4. var monitor: URLMonitor;
  5. new URLRequest ( 'http://www.adobe.com' ) ) ; monitor = URLMonitor novo (novo URLRequest ("http://www.adobe.com '));
  6. StatusEvent. STATUS , announceStatus ) ; monitor. addEventListener (StatusEvent. STATUS, announceStatus)
  7. ; monitor. iniciar ();
  8. e :StatusEvent ) : void { função announceStatus (e: StatusEvent): void (
  9. "Status change. Current status: " + monitor. available ) ; trace ("a mudança de status. atual status:" monitor +. disponíveis);
  10. )

Dentro da função, o que nos interessa é o valor da monitor.available, verdadeiras ou falsas, que indicará ou não se conectar à URL. Esta é, na verdade, o conceito de URLMonitor, determinar se uma URL é acessível ou não. Que uma URL não é acessível não significa que você não tem acesso à Internet, só não tem com que a URL. A auditoria, portanto, deve ser feito com a URL do backend do nosso aplicativo e não com qualquer URL em geral, porque a nossa aplicação depende de quem é o nosso back-end, e não Google : P .

O mesmo sistema pode ser usado para verificar o status de qualquer aplicação que escuta em uma porta diferente da 80. A explicação é exactamente o mesmo e gostaríamos de fazer isso:

  1. . ServiceMonitor ; ar de importação. líquido. ServiceMonitor;
  2. . StatusEvent ; flash de importação. acontecimentos. StatusEvent;
  3. 'www.adobe.com' , 6667 ) ; socketMonitor = SocketMonitor novo ('www.adobe.com', 6667);
  4. StatusEvent. STATUS , socketStatusChange ) ; socketMonitor. addEventListener (StatusEvent. STATUS, socketStatusChange)
  5. ; socketMonitor. start ();
  6. e :StatusEvent ) : void { função announceStatus (e: StatusEvent): (void
  7. "Status change. Current status: " + socketMonitor. available ) ; trace ("a mudança de status. atual status:" socketMonitor +. disponíveis);
  8. )

No próximo capítulo veremos como adicionar o poder a seus aplicativos usando SqlLite para armazenar dados offline. Se combinarmos a capacidade de salvar dados no aplicativo para verificar o status da rede do backend que fazemos a nossa aplicação em modo offline trabalho mantendo o que você precisa quando você envia e conexão do processo. Eu acho que é bem compreendido, digamos, um exemplo prático.

Tenho uma aplicação que lhe permite enviar SMS para telemóveis através de um gateway HTTP que será um para fazer observações. A minha aplicação chama o número de destino eo texto a enviar, ele se conecta ao portal e passa a mensagem que enviar. Claro que, se no momento do envio eu não tenho nenhuma ligação com o gateway, não consigo enviar SMS. Vamos agora apresentar o que vimos neste artigo ... eu posso saber a qualquer momento se o gateway HTTP é alcançável! Se eu vou fazer a transferência não tenho conexão, eu continuo na minha SqlLite banco de dados como alterações do estado conexão (URLMonitor aconselhar-me) jogou todos os itens pendentes.

Certamente, se você pensar nisso também encontrar algumas útil :) . Dito isto, no próximo capítulo ... SqlLite.