Comunidad de diseño web y desarrollo en internet online

Obtener información de la dirección URL desde Actionscript 3

En este Tip les dejo una clase que encontré el otro día perdida por el disco rígido (y que justo andaba necesitando algo igual). Se trata de una clase que se encarga de proveer a Flex datos provenientes de la URL de la aplicación, o sea, la url, el path relativo, el puerto, etc.

Código :

package com.alfathenus.core.utils
{
   import flash.external.ExternalInterface;

   import mx.core.Application;
   import mx.collections.ArrayCollection;
   import mx.controls.Alert;
   /**
    * 
    * Clase que maneja el window del browser de la aplicacion
    * 
    */
   public class HTTPUtil
   {
      //--------------------------------------------------------------------------
      // Constructor
      //--------------------------------------------------------------------------
      /**
       * 
       * Construcgor
       * 
       */
      public function HTTPUtil()
      {
      }
      /**
       * 
       * Me devuelve la url de la página
       * 
       */
      public static function getUrl():String
      {
         return ExternalInterface.call( "window.location.href.toString" );
      }
      /**
       * 
       * Me devuelve el host de la pag
       * 
       * @example: http://www.flexpasta.com/?x=1&y=2 => me devuelve => www.flexpasta.com
       * 
       */ 
      public static function getHostName():String
      {
         return ExternalInterface.call( "window.location.hostname.toString" );
      }
      /**
       * 
       * Me devuelve el protocolo (http:, https:, etc)
       * 
       */
      public static function getProtocol():String
      {
         return ExternalInterface.call( "window.location.protocol.toString" );
      } 
      /**
       * 
       * Me devuelve el puerto de la aplicaicon
       * 
       */ 
      public static function getPort():String
      {
         return ExternalInterface.call( "window.location.port.toString" );
      }
      /**
       * 
       * Me devuelve el path relativo a la aplicacion
       * 
       * @example http://www.ejemplo.com/test?x=1&y=2 => devuelve => /test
       */ 
      public static function getContext():String
      {
         return ExternalInterface.call( "window.location.pathname.toString" );
      }
      /**
       * 
       * Me devuelve el valor de un parámetro del QueryString
       * 
       */ 
      public static function getParameterValue(key:String):String
      { 
         var value:String;
         var uparam:String = ExternalInterface.call( "window.location.search.toString" );
          
         if(uparam == null)
         {
            return null;
         }
         var paramArray:ArrayCollection = new ArrayCollection( uparam.split( '&' ) );
         for(var x:int = 0; x < paramArray.length ; x++)
         {
            var p:String = paramArray.getItemAt( x ) as String;
            if(p.indexOf( key + '=' ) > -1)
            {
               value = (p.replace( (key + '=') , '' )).replace( '?' , '' );
               x = paramArray.length;
            }
         }
          
         return value;
      }
   }
}


Se aceptan como siempre sugerencias para su mejora.

Saludos!

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate