miércoles, 15 de junio de 2011

Verificar si hay conexión de internet con Adobe AIR

Para verificar si hay o no conexión a internet desde una aplicación AIR, deberá de importar:
  • la clase URLRequest,
  • la clase URLMonitor que supervisa la disponibilidad de un servicio basado en HTTP o en HTTPS. Esta clase se encuentra en el paquete air.
  • La clase StatusEvent: Un objeto distribuye objetos StatusEvent cuando un dispositivo (por ejemplo, una cámara o un micrófono) o un objeto, como un objeto LocalConnection, informa sobre su estado.
Para utilizar el paquete air.net en Adobe Flash CS4 Professional:
  1. Seleccione el comando Archivo > Configuración de publicación.
  2. En el panel Flash, haga clic en el botón Configuración de Seleccionar ruta de biblioteca de ActionScript 3.0.
  3. Haga clic en el botón Navegar hasta el archivo SWC. En la carpeta de instalación de Adobe Flash CS4, navegue hasta Adobe Flash CS4/AIK1.1/frameworks/libs/air/ y seleccione el archivo servicemoniter.swc.
  4. Haga clic en el botón Aceptar.
  5. Añada la siguiente sentencia import al código ActionScript 3.0: import air.net.*;
Librería para el componente de monitoreo en Adobe AIR
En Flash CS3 se cuenta con un componente para ello.
Nota: Si no importa este paquete, la aplicación le marcará error.

CODIGO:

//Imports
import air.net.URLMonitor;
import flash.net.URLRequest;
import flash.events.StatusEvent;
//El monitoreo se hace tratando de acceder a una dirección de Internet.
//Puede ser la URL de la aplicación o una dirección confiable, digamos www.google.com.
var q:URLRequest = new URLRequest("http://www.google.com");
//El método de la solicitud será en HEAD. Su uso es exclusivo para AIR.
q.method = "HEAD";
//Creamos un objeto de monitoreo de la clase ya señalada:
var monitor:URLMonitor = new URLMonitor(q);
//Recibiremos el status en un listener
monitor.addEventListener( StatusEvent.STATUS, onStatusEvent);
//Pooleamos el servicio cada segundo
monitor.pollInterval = 1000;
//Iniciamos el monitoreo
monitor.start();
/*************************************************************************************/
//La función listener:
function onStatusEvent(e:StatusEvent):void {
//Recibimos el status del monitoreo
var monitor:URLMonitor = e.target as URLMonitor;
//Preguntamos si hay servicio
    if (monitor.available) {
       //Acciones si hay servicio

    } else {

       //Acciones si no hay servicio

   }

}

1 comentario:

  1. Hola Paco, soy Salvador Morales, te felicito por poner estos artículos para todo público. Yo seré uno más de tus seguidores. Saludos.

    ResponderEliminar