2010-02-19 9 views
7

Desidero conoscere il tipo e la versione del browser che l'utente sta eseguendo dall'interno dell'applicazione Flex 4. So che posso ottenere quell'informazione usando ExternalInterface per chiamare Javascript. So che posso ottenere queste informazioni dal server.Rileva il tipo e la versione del browser da Flash

Sto cercando un modo per ottenere tali informazioni direttamente da ActionScript. Voglio dire, non c'è una variabile globale o qualcosa che mantenga queste informazioni?

+0

la mia ipotesi è che non è possibile, di più Speravo che ci fosse di più in flash.capabilities ma lì puoi trovare solo il sistema operativo e il tipo di lettore. – Les

risposta

9

Non è possibile poiché non si dispone di variabili globali come si menziona.

Ma non utilizzare ExternalInterface e JavaScript ?.

var method:XML = <![CDATA[ 
    function(){ 
     return { appName: navigator.appName, version:navigator.appVersion};} 
    ]]> 

var o:Object = ExternalInterface.call(method); 
trace("app name ",o.appName,"version ", o.version) 

Se lo metti in una classe come un metodo statico, per voi sarebbe trasparente come chiamare una classe intrinseca ...

package { 
    import flash.external.ExternalInterface; 


    public class BrowserUtils { 

     private static const CHECK_VERSION:XML = <![CDATA[ 
      function() { 
       return { appName: navigator.appName, version:navigator.appVersion }; 
       } 
      ]]>; 

     public static function getVersion():Object { 
      if (!ExternalInterface.available) return null;    

      return ExternalInterface.call(CHECK_VERSION); 
     } 

    } 

} 
+0

@Lars: la funzione viene eseguita nel browser a causa della funzione ExternalInterface.call() utilizzata per chiamarla. @goliatone, grazie per la risposta dettagliata, probabilmente lo farò. Mi stavo chiedendo se esistesse già una variabile globale che potrei usare, ma che non ho trovato nella documentazione. – Jaffer

+0

@Lars: in sostanza, l'interfaccia esterna proverà ad eseguire qualsiasi stringa che passi ad essa. Ho avvolto il metodo in un tag cdata xml solo così posso creare quella stringa in modo comodo nel mio editor. @jaffer: Capisco, sarebbe più comodo in questo modo. – goliatone