我想知道用户在我的Flex 4应用程序中运行的浏览器的类型和版本。我知道我可以通过使用ExternalInterface来调用Javascript来获取该信息。我知道我可以从服务器获取该信息。
我正在寻找一种直接从actionscript获取信息的方法。我的意思是,是不是存在全局变量或保留此信息的东西?
答案 0 :(得分:9)
你不能,因为你没有提到任何全局变量。
但是没有使用ExternalInterface和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 )
如果你把它作为一个静态方法放在一个类中,对你来说它就像调用一个内部类一样透明......
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 );
}
}
}