我想知道用户从我的Flex 4应用程序中运行的浏览器的类型和版本。我知道我可以通过使用ExternalInterface调用Javascript获得该信息。我知道我可以从服务器获取该信息。
我正在寻找一种直接从动作脚本获取信息的方法。我的意思是,是否没有全局变量或保留此信息的内容?
最佳答案
您不能,因为您没有提到的任何全局变量。
但是,是否不使用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 );
}
}
}