Как я могу прочитать версию из файла дескриптора приложений

StackOverflow https://stackoverflow.com/questions/3470358

Вопрос

Поэтому у меня есть базовый файл дескриптора приложений для моего воздушного приложения. Это выглядит что-то подобное, сокращенное здравомыслие:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0">
  <version>1.0.10</version>
</application>

Теперь я хочу в приложении отображать версию, но я не хочу поддерживать версию в нескольких местах, так как я могу прочитать этот номер версии из приложения?

Это было полезно?

Решение

Проверьте следующий код:

            var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
            var ns:Namespace = appXml.namespace(); 
            trace(appXml.ns::version); 

Другие советы

Это немного изменилось в последних версиях воздуха (воздушная версия 3.x). Вместо appxml.ns :: версия, вы вместо этого используете Appxml.ns :: версию.

Обратите внимание, что appxml.ns :: версийныйanumber - это xmllist, состоящий из одного объекта XML, поэтому он требует немного копания, если вы хотите добраться до фактического значения строка:

var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appXml.namespace();
var appVersion:String = appXml.ns::versionNumber[0].toString();
trace("appVersion", appVersion);

Обновление, 17 марта 2017: В какой-то момент они снова поменяли Applicate ApplicationDescriptor. Следующий код работает в Air 23:

var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:String = appXml.namespace().toString();
var nsArray:Array = ns.split("/");
var appVersion:Number = nsArray[nsArray.length - 1];
trace("appVersion:", appVersion); // appVersion: 23.0
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top