air.updateApplicationUpdater Класс ApplicationUpdater определяет основные функциональные возможности инфраструктуры обновления приложений Adobe® AIR® без предоставления пользовательского интерфейса по умолчанию.flash.events:EventDispatcher Класс ApplicationUpdater определяет основные функциональные возможности инфраструктуры обновления приложений Adobe® AIR® без предоставления пользовательского интерфейса по умолчанию. (Класс ApplicationUpdaterUI включает в себя возможность обновления и пользовательский интерфейс по умолчанию.)

Этот класс включен в файл applicationupdater_ui.swc, который входит в Adobe® Flex™ SDK. applicationupdater_ui.swc файл находится в каталоге оболочек/освобо/воздуха SDK AIR.

Adobe® Flex™ Builder™ загружает этот класс автоматически при создании проекта для Adobe AIR. Вы должны включить файл SWC, компилируя программу, использующую Adobe ® Flex ™ SDK.

Управление обновлениями приложений может оказаться непростой задачей. Инфраструктура обновления AIR предоставляет API-интерфейсы, позволяющие разработчикам внедрить хорошие возможности обновления в приложения AIR. Функциональная инфраструктура обновления AIR предоставляет разработчикам следующие возможности.

  • Периодическая проверка наличия обновлений по расписанию или по запросу пользователя.

  • Загрузка файлов AIR (обновлений) из веб-источника.

  • Оповещение пользователя о первом запуске вновь установленной версии.

  • Запрос на подтверждение проверки наличия обновлений пользователем.

  • Отображение информации о версии обновления для пользователя.

  • Отображение хода загрузки и информации об ошибках для пользователя.

Инфраструктура обновления AIR позволяет сохранять информацию о версии обновления приложения AIR в простых XML-файлах конфигурации. Благодаря настройке файлов конфигурации и вставке основного кода большинство приложений способны предложить своим конечным пользователям хорошие функциональные возможности обновления.

С помощью класса AIRUpdater можно определить собственный пользовательский интерфейс для использования в инфраструктуре обновления AIR.

Процесс обновления включает в себя ряд состояний. Свойство currentState объекта программы обновления отражает текущее состояние программы обновления:

Значение currentState Описание UNINITIALIZEDПрограмма обновления не инициализирована.INITIALIZINGВыполняется инициализация программы обновления.READYПрограмма обновления инициализирована.BEFORE_CHECKINGПрограмма обновления еще не выполнила проверку наличия файла дескриптора обновления.CHECKINGПрограмма обновления выполняет проверку наличия файла дескриптора обновления.AVAILABLEОбнаружен доступный файл дескриптора обновления.DOWNLOADINGПрограмма обновления выполняет загрузку файла AIR.DOWNLOADEDПрограмма обновления завершила загрузку файла AIR.INSTALLINGПрограмма обновления выполняет установку файла AIR.PENDING_INSTALLINGПрограмма обновления инициализирована. Имеются обновления, ожидающие установки.

Однако при тестировании приложения в программе AIR Debug Launcher (ADL) попытка обновить приложение приводит к исключению IllegalOperationError.

Структура обновления AIR поддерживается только в профиле рабочего стола. Ее не поддерживают приложения расширенного рабочего стола (которые устанавливаются с помощью собственной программы установки), а также профили мобильных устройств (например, приложения iPhone, написанные с использованием ActionScript 3.0). Во время выполнения проверьте свойство Updater.isSupported, чтобы узнать, поддерживается ли структура обновления.

Подробнее об использовании инфраструктуры обновления AIR см. в главе «Обновление приложений AIR» документа Разработка приложений Adobe AIR с помощью Adobe Flash.

ApplicationUpdaterUIflash.desktop.Updatererror Отправляется при возникновении ошибки во время инициализации или процесса обновления (если произошло непредвиденное событие).flash.events.ErrorEvent.ERRORflash.events.ErrorEvent Отправляется при возникновении ошибки во время инициализации или процесса обновления (если произошло непредвиденное событие). progress Загружается файл, отправленный в качестве обновления.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Загружается файл, отправленный в качестве обновления. fileUpdateError Отправляется в случае ошибки проверки файла, переданного в качестве параметра airFile в вызов метода installFromAIRFile().air.update.events.StatusFileUpdateErrorEvent.FILE_UPDATE_ERRORair.update.events.StatusFileUpdateErrorEvent Отправляется в случае ошибки проверки файла, переданного в качестве параметра airFile в вызов метода installFromAIRFile(). fileUpdateStatus Отправляется после успешной проверки программой обновления файла в вызове метода installFromAIRFile().air.update.events.StatusFileUpdateEvent.FILE_UPDATE_STATUSair.update.events.StatusFileUpdateEvent Отправляется после успешной проверки программой обновления файла в вызове метода installFromAIRFile(). downloadError Отправляется в случае ошибки подключения к файлу обновления или его загрузки.air.update.events.DownloadErrorEvent.DOWNLOAD_ERRORair.update.events.DownloadErrorEvent Отправляется в случае ошибки подключения к файлу обновления или его загрузки. Отправляется также для неправильных состояний HTTP (например, 404 – файл не найден).

При отправке этого события периодический таймер автоматически перезапускается (если задержка больше 0).

updateError Отправляется в случае ошибки загрузки или разбора файла дескриптора обновления.air.update.events.StatusUpdateErrorEvent.UPDATE_ERRORair.update.events.StatusUpdateErrorEvent Отправляется в случае ошибки загрузки или разбора файла дескриптора обновления.

При отправке этого события программой обновления периодический таймер автоматически перезапускается (если значение настройки задержки больше 0). Приложение должно предусматривать скрытие всех сообщений об ошибках при отправке программой обновления нового события checkForUpdate.

updateStatus Отправляется после успешной загрузки и интерпретации файла дескриптора обновления программой обновления.air.update.events.StatusUpdateEvent.UPDATE_STATUSair.update.events.StatusUpdateEvent Отправляется после успешной загрузки и интерпретации файла дескриптора обновления программой обновления.

По умолчанию загрузка обновления начинается, если свойство available объекта StatusUpdateEvent имеет значение true. Поведения по умолчанию можно избежать только при использовании класса ApplicationUpdater, но не при использовании класса ApplicationUpdatorUI.

beforeInstall Отправляется непосредственно перед установкой обновления, после вызова метода installUpdate().air.update.events.UpdateEvent.BEFORE_INSTALLair.update.events.UpdateEvent Отправляется непосредственно перед установкой обновления, после вызова метода installUpdate(). Иногда необходимо предотвратить установку обновления на этом этапе, так как все результаты текущей работы пользователя могут быть потеряны при выходе среды выполнения из приложения для установки обновления.

Вызов метода preventDefault() этого события позволяет отложить установку до следующего запуска. При вызове метода preventDefault() ни один дополнительный процесс обновления не будет запущен во время данного сеанса работы приложения (путем вызова метода installUpdate() или проверки по расписанию).

Поведением по умолчанию для библиотеки ApplicationUpdater является загрузка файла дескриптора обновления. С помощью вызова метода preventDefault() можно отменить это поведение.

downloadComplete Отправляется при завершении загрузки файла обновления.air.update.events.UpdateEvent.DOWNLOAD_COMPLETEair.update.events.UpdateEvent Отправляется при завершении загрузки файла обновления.

Как правило, данное событие используется для отображения сообщения с запросом продолжения установки обновления.

Поведением по умолчанию для библиотеки ApplicationUpdater является автоматический вызов метода installUpdate().

downloadStart Отправляется после вызова метода downloadUpdate() и установки подключения к серверу.air.update.events.UpdateEvent.DOWNLOAD_STARTair.update.events.UpdateEvent Отправляется после вызова метода downloadUpdate() и установки подключения к серверу. При использовании библиотеки ApplicationUpdater обработчик событий для данного события может отображать индикатор выполнения, чтобы пользователь мог следить за ходом загрузки. checkForUpdate Отправляется до начала процесса обновления, непосредственно перед попыткой программы обновления загрузить файл дескриптора обновления.air.update.events.UpdateEvent.CHECK_FOR_UPDATEair.update.events.UpdateEvent Отправляется до начала процесса обновления, непосредственно перед попыткой программы обновления загрузить файл дескриптора обновления. Программа обновления может отправить это событие в результате прямого вызова метода checkNow() или по истечении времени, заданного для таймера периодической проверки. initialized Отправляется после завершения инициализации.air.update.events.UpdateEvent.INITIALIZEDair.update.events.UpdateEvent Отправляется после завершения инициализации. ApplicationUpdater Функция конструктора. Функция конструктора. cancelUpdate Отменяет процесс обновления. Отменяет процесс обновления. Вызов этого метода отменяет все ожидающие загрузки, удаляя не полностью загруженные файлы, и перезапускает таймер периодической проверки.

Процесс обновления можно отменить в любое время. Исключением являются состояния UNINITIALIZED и INITIALIZING. Вызов этого метода в состоянии UNINITIALIZED или INITIALIZING не работает.

checkForUpdate Выполняет асинхронную загрузку и интерпретацию файла дескриптора обновления. Выполняет асинхронную загрузку и интерпретацию файла дескриптора обновления. Вызов этого метода меняет состояние программы обновления на CHECKING. Этот метод следует вызывать только при отмене события checkForUpdate.

Этот метод выполняется, только если программа обновления находится в состоянии BEFORE_CHECKING.

updateStatusair.update.events:StatusUpdateEventПрограмма обновления успешно загрузила и интерпретировала файл дескриптора обновления. Программа обновления успешно загрузила и интерпретировала файл дескриптора обновления.updateErrorair.update.events:StatusUpdateErrorEventВо время загрузки или разбора файла дескриптора обновления произошла ошибка. Во время загрузки или разбора файла дескриптора обновления произошла ошибка.
checkNow Начинает процесс обновления. Начинает процесс обновления. Вызов этого метода не останавливает периодический таймер. Однако этот метод определяет, что выполняется процесс обновления, и пропускает текущую итерацию.

Этот метод выполняется только в состоянии READY.

Этот метод может вызвать объект программы обновления, отправляющий следующее событие:

checkForUpdateair.update.events:UpdateEventОтправляется непосредственно перед началом процесса обновления. Отправляется непосредственно перед началом процесса обновления.
downloadUpdate Выполняет асинхронную загрузку файла обновления. Выполняет асинхронную загрузку файла обновления. Вызов этого метода приводит к изменению состояния на DOWNLOADING. Этот метод следует вызывать только при отмене события StatusUpdateEvent.UPDATE_STATUS, если свойство available этого события имело значение true.

Этот метод выполняется только в состоянии AVAILABLE.

downloadStartair.update.events:UpdateEventОтправляется после установки подключения к серверу. Отправляется после установки подключения к серверу.progressflash.events:ProgressEventОтправляется после завершения инициализации. Отправляется после завершения инициализации.downloadErrorair.update.events:DownloadErrorEventОтправляется в случае ошибки подключения к файлу обновления или его загрузки. Отправляется также для неправильных состояний HTTP (например, 404 – файл не найден). Отправляется в случае ошибки подключения к файлу обновления или его загрузки.
initialize Выполняет инициализацию программы обновления. Выполняет инициализацию программы обновления. При вызове данного метода происходит следующее:

  1. Выполняется инициализация инфраструктуры обновления с автоматической (и синхронной) установкой ожидающих обновлений. Этот метод следует вызывать при запуске приложения, так как он может вызвать перезапуск приложения.

  2. Выполняется проверка наличия отложенных обновлений и их установка.

  3. Если во время установки предыдущего обновления произошла ошибка, выполняется очистка файла обновления и данных о версии в области хранилища.

  4. Если срок задержки периодического таймера истек, начинается процесс обновления; в противном случае запускается периодический таймер. Однако при тестировании приложения в программе AIR Debug Launcher (ADL) попытка обновить приложение приводит к исключению IllegalOperationError.

initializedair.update.events:UpdateEventИнициализация завершена. Инициализация завершена.errorflash.events:ErrorEventВо время инициализации произошла ошибка. Во время инициализации произошла ошибка.
installFromAIRFile Начинает процесс обновления с помощью локального файла AIR.fileflash.filesystem:FileЛокальный файл AIR для установки. Начинает процесс обновления с помощью локального файла AIR.

Вызов этого метода не работает, если выполняется процесс обновления (т. е. не в состоянии DOWNLOADED).

Эта функция полезна для приложения, в котором элемент customUpdateUI в файле дескриптора приложения имеет значение true.

При тестировании приложения с помощью AIR Debug Launcher (ADL) вызов этого метода приводит к исключению IllegalOperationError.

fileUpdateStatusair.update.events:StatusFileUpdateEventОтправляется после успешной проверки файла AIR программой обновления. Отправляется после успешной проверки файла AIR программой обновления.updateErrorair.update.events:StatusFileUpdateErrorEventОтправляется в случае ошибки разбора файла дескриптора обновления. Отправляется в случае ошибки разбора файла дескриптора обновления.
installUpdate Выполняет установку файла обновления. Выполняет установку файла обновления. Вызов этого метода изменяет состояние на INSTALLING. Его следует вызывать только при отмене события downLoadComplete.

Этот метод следует вызывать, когда программа обновления находится в состоянии DOWNLOADED. Вызов этого метода в другом состоянии не работает.

При тестировании приложения с помощью AIR Debug Launcher (ADL) вызов этого метода приводит к исключению IllegalOperationError.

beforeInstallair.update.events:UpdateEventОтправляется непосредственно перед установкой обновления. Иногда необходимо предотвратить установку обновления на этом этапе, так как все результаты текущей работы пользователя могут быть потеряны при выходе среды выполнения из приложения для установки обновления. Отправляется непосредственно перед установкой обновления.
configurationFile Местоположение файла конфигурации, в котором заданы значения свойств delay и updateURL.flash.filesystem:File Местоположение файла конфигурации, в котором заданы значения свойств delay и updateURL. Если свойство указывает на несуществующий файл, вызов метода initialize() приведет к ошибке.

Образец файла конфигурации:

<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0" > <url>app:/server/update.xml</url> <delay>1</delay> </configuration>

Вместо загрузки файла конфигурации для определения свойств delay и updateURL можно использовать код ActionScript.

delayupdateURL
currentState Внутреннее состояние программы обновления.String Внутреннее состояние программы обновления. Для этого свойства можно задать следующие значения:

  • UNINITIALIZED – программа обновления не инициализирована.

  • INITIALIZING – выполняется инициализация программы обновления.

  • READY – программа обновления инициализирована.

  • BEFORE_CHECKING – программа обновления еще не выполнила проверку наличия файла дескриптора обновления.

  • CHECKING – программа обновления выполняет проверку наличия файла дескриптора обновления.

  • AVAILABLE – обнаружен доступный файл дескриптора обновления.

  • DOWNLOADING – программа обновления выполняет загрузку файла AIR.

  • DOWNLOADED – программа обновления завершила загрузку файла AIR.

  • INSTALLING – программа обновления выполняет установку файла AIR.

  • PENDING_INSTALLING – программа обновления инициализирована. Имеются обновления, ожидающие установки.

currentVersion Текущая версия приложения.String Текущая версия приложения. Значение для этого свойства задается во время вызова метода initialize(). Значением свойства является версия, указанная в файле дескриптора приложения. delay Интервал в днях между периодическими проверками наличия новых обновлений.Number0 Интервал в днях между периодическими проверками наличия новых обновлений.

Значение 0 (по умолчанию) указывает на неактивное состояние таймера, поэтому периодическая проверка не выполняется. Это значение можно задать в данном свойстве или в файле конфигурации. Если значение задано с помощью обоих методов, используется значение, заданное в свойстве.

isFirstRun Является ли этот запуск первым после успешного обновления (true) или нет (false).Boolean Является ли этот запуск первым после успешного обновления (true) или нет (false). Программа обновления задает это значение во время вызова метода initialize(). Если требуется выполнить перенос данных из одной версии в другую, разработчик должен убедиться, что для свойства isFirstRun задано значение true. wasPendingUpdateisNewerVersionFunction Функция, используемая программой обновления для сравнения версий.Function Функция, используемая программой обновления для сравнения версий. По умолчанию инфраструктура обновления выполняет сравнение версий с целью определить, является ли версия с удаленного сайта более новой, чем версия установленного приложения. Однако иногда сравнение по умолчанию не соответствует схеме версий разработчика. Задайте для данного свойства новую функцию для выполнения сравнения.

Функция сравнения по умолчанию может работать с версиями формата x.y.z, где элементы x, y и z могут состоять из цифр и букв. Существуют некоторые особые условия, которые учитывает функция сравнения по умолчанию. Если функция проверки обнаруживает alpha, beta или rc в строках версий, принимается порядок alpha < beta < rc.

Следующий код определяет пользовательскую функцию customFn для объекта appUpdate программы обновления. Пример функции нарочито простой. Ваша пользовательская функция должна возвращать логическое значение, исходя из правил схемы версий. appUpdate.isNewerVersionFunction = customFn; function customFn (currentVersion:String, updateVersion:String):Boolean { return updateVersion > currentVersion; }
previousApplicationStorageDirectory Предыдущее местоположение каталога хранилища приложения, если оно изменилось после обновления.flash.filesystem:File Предыдущее местоположение каталога хранилища приложения, если оно изменилось после обновления. Каталог хранилища приложения меняет свое местоположение при обновлении с переносом сертификата. Если перенос сертификата не выполняется, то при обновлении приложения пользователем местоположение каталога хранилища приложения не изменяется. и это свойство имеет значение null. Значение для этого свойства задается во время вызова метода initialize().

Разработчик может подписать новую версию приложения AIR с помощью нового сертификата, если при упаковке файла AIR с помощью ADT используется команда -migrate. Если в новой версии приложения AIR используется новый сертификат подписи, локальный каталог хранилища приложения меняет свое местоположение при установке новой версии. С помощью этого свойства можно перенести данные из старого каталога хранилища приложения в новый (File.applicationStorageDirectory). Дополнительную информацию см. в разделе «Подписание файла AIR с изменением сертификата приложения» главы «Создание приложения AIR с использованием инструментов командной строки» в руководстве разработчика Adobe AIR.

previousVersion Предыдущая версия приложения.String Предыдущая версия приложения. Значение для этого свойства задается во время вызова метода initialize(). Возвращает предыдущую версию приложения перед обновлением (задано, только если свойство isfirstRun имеет значение true); в противном случае имеет значение null. updateDescriptor Содержимое файла дескриптора обновления, загруженного с URL-адреса обновления.XML Содержимое файла дескриптора обновления, загруженного с URL-адреса обновления. Это свойство не имеет значение null, только если объект программы обновления отправляет событие updateStatus. updateURL Местоположение файла дескриптора обновления.String Местоположение файла дескриптора обновления. Допустимо любое действительное для пути URLRequest местоположение. Это единственная обязательная для программы обновления настройка. URL-адрес обновления можно задать либо в этом свойстве либо в файле конфигурации. Если значение задано с помощью обоих методов, программа обновления использует значение, заданное в свойстве. wasPendingUpdate Имеется ли отложенное обновление, даже если его не удалось установить (true); в противном случае – false.Boolean Имеется ли отложенное обновление, даже если его не удалось установить (true); в противном случае – false. Программа обновления задает значение для этого свойства во время вызова метода initialize(). С помощью свойств wasPendingUpdate и isFirstRun можно проверить, была ли попытка установки обновления неудачной (в этом случае свойство wasPendingUpdate имеет значение true, а свойство isFirstRun имеет значение false). isFirstRun
ApplicationUpdaterUI Класс ApplicationUpdaterUI определяет основные функциональные возможности инфраструктуры обновления приложений Adobe&#xAE; AIR&#xAE; и предоставляет пользовательский интерфейс по умолчанию.flash.events:EventDispatcher Класс ApplicationUpdaterUI определяет основные функциональные возможности инфраструктуры обновления приложений Adobe® AIR® и предоставляет пользовательский интерфейс по умолчанию. (Класс ApplicationUpdater включает в себя возможность обновления без реализации пользовательского интерфейса по умолчанию.)

Этот класс включен в файл applicationupdater_ui.swc, который входит в Adobe® Flex™ SDK. applicationupdater_ui.swc файл находится в каталоге оболочек/освобо/воздуха SDK AIR. Версия в каталоге оболочек/освобо/воздуха в AIR 2 SDK является для Flex 4 разработками. Если Вы используете Flex 3, используйте версию в подкаталоге frameworks/libs/air/flex3.

Adobe® Flex™ Builder™ загружает этот класс автоматически при создании проекта для Adobe AIR. Вы должны включить файл SWC, компилируя программу, использующую Adobe ® Flex ™ SDK.

Управление обновлениями приложений может оказаться непростой задачей. Инфраструктура обновления AIR предоставляет API-интерфейсы, позволяющие разработчикам внедрить хорошие возможности обновления в приложения AIR. Функциональная инфраструктура обновления AIR предоставляет разработчикам следующие возможности.

  • Периодическая проверка наличия обновлений по расписанию или по запросу пользователя.

  • Загрузка файлов AIR (обновлений) из веб-источника.

  • Оповещение пользователя о первом запуске вновь установленной версии.

  • Запрос на подтверждение проверки наличия обновлений пользователем.

  • Отображение информации о версии обновления для пользователя.

  • Отображение хода загрузки и информации об ошибках для пользователя.

Инфраструктура обновления AIR позволяет сохранять информацию о версии обновления приложения AIR в простых XML-файлах конфигурации. Благодаря настройке файлов конфигурации и вставке основного кода большинство приложений способны предложить своим конечным пользователям хорошие функциональные возможности обновления.

Класс AIRUpdateUI реализует пользовательский интерфейс по умолчанию, который может использоваться вашим приложением. Он предоставляет пользователю основную информацию и параметры, связанные с обновлением приложения.

Процесс обновления включает в себя ряд состояний.

Состояние Описание UninitializedПрограмма обновления не инициализирована.InitializingВыполняется инициализация программы обновления.ГотовоПрограмма обновления инициализирована.Before checkingПрограмма обновления еще не выполнила проверку наличия файла дескриптора обновления.CheckingПрограмма обновления выполняет проверку наличия файла дескриптора обновления.ДоступенОбнаружен доступный файл дескриптора обновления.DownloadingПрограмма обновления выполняет загрузку файла AIR.DownloadedПрограмма обновления завершила загрузку файла AIR.InstallingПрограмма обновления выполняет установку файла AIR.Pending installПрограмма обновления инициализирована. Имеются обновления, ожидающие установки.

Однако при тестировании приложения в программе AIR Debug Launcher (ADL) попытка обновить приложение приводит к исключению IllegalOperationError.

Структура обновления AIR поддерживается только в профиле рабочего стола. Ее не поддерживают приложения расширенного рабочего стола (которые устанавливаются с помощью собственной программы установки), а также профили мобильных устройств (например, приложения iPhone, написанные с использованием ActionScript 3.0). Во время выполнения проверьте свойство Updater.isSupported, чтобы узнать, поддерживается ли структура обновления.

Подробнее об использовании инфраструктуры обновления AIR см. в главе «Обновление приложений AIR» документа Разработка приложений Adobe AIR с помощью Adobe Flex.

Подробнее об использовании инфраструктуры обновления AIR см. в главе «Обновление приложений AIR» документа Разработка приложений Adobe AIR с помощью Adobe Flash.

ApplicationUpdaterflash.desktop.Updatererror Отправляется при возникновении ошибки во время инициализации или процесса обновления (если произошло непредвиденное событие).flash.events.ErrorEvent.ERRORflash.events.ErrorEvent Отправляется при возникновении ошибки во время инициализации или процесса обновления (если произошло непредвиденное событие). progress Загружается файл, отправленный в качестве обновления.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Загружается файл, отправленный в качестве обновления. fileUpdateError Отправляется в случае ошибки проверки файла, переданного в качестве параметра airFile в вызов метода installFromAIRFile().air.update.events.StatusFileUpdateErrorEvent.FILE_UPDATE_ERRORair.update.events.StatusFileUpdateErrorEvent Отправляется в случае ошибки проверки файла, переданного в качестве параметра airFile в вызов метода installFromAIRFile(). fileUpdateStatus Отправляется после успешной проверки программой обновления файла в вызове метода installFromAIRFile().air.update.events.StatusFileUpdateEvent.FILE_UPDATE_STATUSair.update.events.StatusFileUpdateEvent Отправляется после успешной проверки программой обновления файла в вызове метода installFromAIRFile(). downloadError Отправляется в случае ошибки подключения к файлу обновления или его загрузки.air.update.events.DownloadErrorEvent.DOWNLOAD_ERRORair.update.events.DownloadErrorEvent Отправляется в случае ошибки подключения к файлу обновления или его загрузки. Отправляется также для неправильных состояний HTTP (например, 404 – файл не найден).

При отправке этого события периодический таймер автоматически перезапускается (если задержка больше 0).

updateError Отправляется в случае ошибки загрузки или разбора файла дескриптора обновления.air.update.events.StatusUpdateErrorEvent.UPDATE_ERRORair.update.events.StatusUpdateErrorEvent Отправляется в случае ошибки загрузки или разбора файла дескриптора обновления.

При отправке этого события программой обновления периодический таймер автоматически перезапускается (если значение настройки задержки больше 0). Приложение должно предусматривать скрытие всех сообщений об ошибках при отправке программой обновления нового события checkForUpdate.

updateStatus Отправляется после успешной загрузки и интерпретации файла дескриптора обновления программой обновления.air.update.events.StatusUpdateEvent.UPDATE_STATUSair.update.events.StatusUpdateEvent Отправляется после успешной загрузки и интерпретации файла дескриптора обновления программой обновления. beforeInstall Отправляется непосредственно перед установкой обновления, после вызова метода installUpdate().air.update.events.UpdateEvent.BEFORE_INSTALLair.update.events.UpdateEvent Отправляется непосредственно перед установкой обновления, после вызова метода installUpdate(). Иногда необходимо предотвратить установку обновления на этом этапе, так как все результаты текущей работы пользователя могут быть потеряны при выходе среды выполнения из приложения для установки обновления.

Вызов метода preventDefault() этого события позволяет отложить установку до следующего запуска. При вызове метода preventDefault() ни один дополнительный процесс обновления не будет запущен во время данного сеанса работы приложения (путем вызова метода installUpdate() или проверки по расписанию).

downloadComplete Отправляется при завершении загрузки файла обновления.air.update.events.UpdateEvent.DOWNLOAD_COMPLETEair.update.events.UpdateEvent Отправляется при завершении загрузки файла обновления. downloadStart Отправляется после вызова метода downloadUpdate() и установки подключения к серверу.air.update.events.UpdateEvent.DOWNLOAD_STARTair.update.events.UpdateEvent Отправляется после вызова метода downloadUpdate() и установки подключения к серверу. При использовании библиотеки ApplicationUpdater обработчик событий для данного события может отображать индикатор выполнения, чтобы пользователь мог следить за ходом загрузки. checkForUpdate Отправляется до начала процесса обновления, непосредственно перед попыткой программы обновления загрузить файл дескриптора обновления.air.update.events.UpdateEvent.CHECK_FOR_UPDATEair.update.events.UpdateEvent Отправляется до начала процесса обновления, непосредственно перед попыткой программы обновления загрузить файл дескриптора обновления. Программа обновления может отправить это событие в результате прямого вызова метода checkNow() или по истечении времени, заданного для таймера периодической проверки. initialized Отправляется после завершения инициализации.air.update.events.UpdateEvent.INITIALIZEDair.update.events.UpdateEvent Отправляется после завершения инициализации.

Данное событие имеет следующие свойства только для чтения:

  • isFirstRun (логическое) true, если это первый запуск после успешного обновления; в противном случае – false.

  • previousVersion (строка) Предыдущая версия приложения до обновления (задано, только если свойство isfirstRun имеет значение true).

  • currentVersion (строка) Версия, указанная в файле дескриптора текущей установленной версии приложения.

ApplicationUpdaterUI Функция конструктора. Функция конструктора. addResources Динамически добавляет новый пакет ресурсов для указанного языка.langStringКод языка (например, ro для румынского). resObjectЭтот объект содержит ключи и значения для перевода. Ключи берутся из файла свойств языка. В таблице ниже приведены возможные ключи (названия свойств).

Ключ Русское значение Диалоговое окно Описание appWidth 530 Все Ширина диалогового окна. titleWindow Обновление: Все Отображается в строке заголовка собственного окна перед именем приложения. titleCheck Проверить наличие обновлений Проверка наличия обновлений Заголовок диалогового окна. msgCheck Разрешить приложению выполнить проверку наличия обновлений? Проверка наличия обновлений Сообщение диалогового окна. btnCheck Проверить наличие обновлений Проверка наличия обновлений Метка кнопки «Проверить наличие обновлений». btnCancel Отмена Все диалоговые окна с кнопкой «Отмена» Метка кнопки «Отмена». titleCheckNoUpdates Нет доступных обновлений Проверка наличия обновлений – Нет доступных обновлений Заголовок диалогового окна. msgCheckNoUpdates Нет доступных обновлений для приложения. Проверка наличия обновлений – Нет доступных обновлений Сообщение диалогового окна. btnClose Закрыть Все диалоговые окна с кнопкой «Закрыть» Метка кнопки «Закрыть». titleCheckError Ошибка обновления Проверка наличия обновлений – Ошибка подключения Заголовок диалогового окна. msgCheckError Во время проверки обновлений произошла ошибка. Ошибка# {0} Проверка наличия обновлений — Ошибка подключения Сообщение диалогового окна. Символ {0} будет заменен на идентификатор ошибки. titleUpdate Доступно обновление Доступно обновление Заголовок диалогового окна. msgUpdate Обновленная версия приложения доступна для загрузки. Доступно обновление Сообщение диалогового окна. lblApplication Приложение: Доступно обновление Метка, отображаемая перед именем приложения. lblInstalledVersion Установленная версия: Доступно обновление Метка, отображаемая перед обозначением установленной версии. lblAvailableVersion Версия обновления: Доступно обновление Метка, отображаемая перед обозначением версии обновления. btnDownload Загрузить сейчас Доступно обновление Метка кнопки «Загрузить сейчас» btnDownloadLater Загрузить позже Доступно обновление Метка кнопки «Загрузить позже» lnkReleaseNotes Заметки о выпуске Все со ссылкой на заметки о выпуске Имя ссылки «Заметки о выпуске». titleProgress Ход загрузки... Ход загрузки Заголовок диалогового окна. msgProgress Загрузка обновления Ход загрузки Сообщение диалогового окна. titleDownloadError Ошибка загрузки Ошибка загрузки Заголовок диалогового окна. msgDownloadError Во время загрузки обновления произошла ошибка. Ошибка# {0} Ошибка загрузки Сообщение диалогового окна. Символ {0} будет заменен на идентификатор ошибки. titleInstall Установить обновление Установка обновления Заголовок диалогового окна. msgInstall Обновление для приложения загружено и готово к установке. Установка обновления Сообщение диалогового окна. btnInstall Установить сейчас Установка обновления Метка кнопки «Установить» btnInstallLater Отложить до следующего запуска Установка обновления Метка кнопки «Отложить до следующего запуска» titleFileUpdate Доступно обновление Файл – Доступно обновление Заголовок диалогового окна. msgFileUpdate Файл содержит обновленную версию приложения. Установить? Файл — Доступно обновление Сообщение диалогового окна. lblFile Файл: Файл — Доступно обновление Метка, отображаемая перед именем файла titleFileNoUpdate Нет доступных обновлений Файл — Нет доступных обновлений Заголовок диалогового окна. msgFileNoUpdate Файл не содержит более новую версию приложения. Файл – Нет доступных обновлений Сообщение диалогового окна. titleFileError Ошибка файла Файл — Ошибка Заголовок диалогового окна. msgFileError Во время проверки файла обновления произошла ошибка. Ошибка# {0} Файл – Ошибка Сообщение диалогового окна. Символ {0} будет заменен на идентификатор ошибки. titleUnexpectedError Непредвиденная ошибка Непредвиденная ошибка Заголовок диалогового окна. msgUnexpectedError Произошла непредвиденная ошибка. Ошибка# {0} Непредвиденная ошибка Сообщение диалогового окна. Символ {0} будет заменен на идентификатор ошибки.

Динамически добавляет новый пакет ресурсов для указанного языка. Разработчики JavaScript используют этот метод для динамического добавления нового языка для диалоговых окон, отображаемых в интерфейсе программы обновления приложения. (Разработчики Flex могут напрямую добавлять новый язык в пакет ресурсов ApplicationUpdaterDialogs.)
localeChain
cancelUpdate Отменяет процесс обновления. Отменяет процесс обновления. Вызов этого метода отменяет все ожидающие загрузки, удаляя не полностью загруженные файлы, и перезапускает таймер периодической проверки.

Процесс обновления можно отменить в любое время. Исключением являются состояния uninitialized и initializing. Вызов этого метода в состоянии uninitialized или initializing не работает.

checkNow Начинает процесс обновления. Начинает процесс обновления. Вызов этого метода не останавливает периодический таймер. Однако этот метод определяет, что выполняется процесс обновления, и пропускает текущую итерацию.

Этот метод выполняется только в состоянии Ready.

Этот метод может вызвать объект программы обновления, отправляющий следующее событие:

checkForUpdateair.update.events:UpdateEventОтправляется непосредственно перед началом процесса обновления. Отправляется непосредственно перед началом процесса обновления.
initialize Выполняет инициализацию программы обновления. Выполняет инициализацию программы обновления. При вызове данного метода происходит следующее:

  1. Выполняется инициализация инфраструктуры обновления с автоматической (и синхронной) установкой ожидающих обновлений. Этот метод следует вызывать при запуске приложения, так как он может вызвать перезапуск приложения.

  2. Выполняется проверка наличия отложенных обновлений и их установка.

  3. Если во время установки предыдущего обновления произошла ошибка, выполняется очистка файла обновления и данных о версии в области хранилища.

  4. Если срок задержки периодического таймера истек, начинается процесс обновления; в противном случае запускается периодический таймер. Однако при тестировании приложения в программе AIR Debug Launcher (ADL) попытка обновить приложение приводит к исключению IllegalOperationError.

initializedair.update.events:UpdateEventИнициализация завершена. Инициализация завершена.errorflash.events:ErrorEventВо время инициализации произошла ошибка. Во время инициализации произошла ошибка.
installFromAIRFile Начинает процесс обновления с помощью локального файла AIR.fileflash.filesystem:FileЛокальный файл AIR для установки. Начинает процесс обновления с помощью локального файла AIR.

Вызов этого метода не работает, если выполняется процесс обновления (т. е. не в состоянии Downloaded).

Эта функция полезна для приложения, в котором элемент customUpdateUI в файле дескриптора приложения имеет значение true.

При тестировании приложения с помощью AIR Debug Launcher (ADL) вызов этого метода приводит к исключению IllegalOperationError.

fileUpdateStatusair.update.events:StatusFileUpdateEventОтправляется после успешной проверки файла AIR программой обновления. Отправляется после успешной проверки файла AIR программой обновления.updateErrorair.update.events:StatusFileUpdateErrorEventОтправляется в случае ошибки разбора файла дескриптора обновления. Отправляется в случае ошибки разбора файла дескриптора обновления.
configurationFile Местоположение файла конфигурации, в котором заданы значения свойств delay и updateURL.flash.filesystem:File Местоположение файла конфигурации, в котором заданы значения свойств delay и updateURL. В файле также имеются настройки, определяющие, будет ли приложение отображать различные диалоговые окна с запросом на подтверждение операции во время процесса обновления. Если свойство указывает на несуществующий файл, вызов метода initialize() приведет к ошибке.

Образец файла конфигурации:

<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0" > <url>app:/server/update.xml</url> <delay>1</delay> <defaultUI> <dialog name="checkForUpdate" visible="true" /> <dialog name="downloadUpdate" visible="false" /> <dialog name="downloadProgress" visible="true" /> <dialog name="installUpdate" visible="true" /> </defaultUI> </configuration>

Вместо загрузки файла конфигурации можно использовать код ActionScript для определения следующих свойств объекта ApplicationUpdaterUI: delay, isCheckForUpdateVisible, isDownloadProgressVisible, isDownloadUpdateVisible, isFileUpdateVisible, isInstallUpdateVisible и updateURL.

delayupdateURL
currentVersion Текущая версия приложения.String Текущая версия приложения. Значение для этого свойства задается во время вызова метода initialize(). Значением свойства является версия, указанная в файле дескриптора приложения. delay Интервал в днях между периодическими проверками наличия новых обновлений.Number0 Интервал в днях между периодическими проверками наличия новых обновлений.

Значение 0 (по умолчанию) указывает на неактивное состояние таймера, поэтому периодическая проверка не выполняется. Значение задержки можно задать в данном свойстве или в файле конфигурации. Если значение задано с помощью обоих методов, используется значение, заданное в свойстве.

configurationFile
isCheckForUpdateVisible Включает видимость диалоговых окон «Проверка наличия обновлений», «Нет доступных обновлений» и «Ошибка обновления».Boolean Включает видимость диалоговых окон «Проверка наличия обновлений», «Нет доступных обновлений» и «Ошибка обновления». При значении true программа обновления отображает эти диалоговые окна в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isDownloadProgressVisible Включает видимость диалогового окна «Загрузка обновления».Boolean Включает видимость диалогового окна «Загрузка обновления». При значении true программа обновления отображает это диалоговое окно в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isDownloadUpdateVisible Включает видимость диалогового окна «Загрузка обновления».Boolean Включает видимость диалогового окна «Загрузка обновления». При значении true программа обновления отображает эти диалоговые окна в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isFileUpdateVisible Включает видимость диалоговых окон «Файл – Доступно обновление», «Файл – Нет доступных обновлений» и «Файл – Ошибка».Boolean Включает видимость диалоговых окон «Файл – Доступно обновление», «Файл – Нет доступных обновлений» и «Файл – Ошибка». При значении true программа обновления отображает эти диалоговые окна в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isFirstRun Является ли этот запуск первым после успешного обновления (true) или нет (false).Boolean Является ли этот запуск первым после успешного обновления (true) или нет (false). Программа обновления задает это значение во время вызова метода initialize(). Если требуется выполнить перенос данных из одной версии в другую, разработчик должен убедиться, что для свойства isFirstRun задано значение true. wasPendingUpdateisInstallUpdateVisible Включает видимость диалогового окна «Установка обновления».Boolean Включает видимость диалогового окна «Установка обновления». При значении true программа обновления отображает это диалоговое окно в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isNewerVersionFunction Функция, используемая программой обновления для сравнения версий.Function Функция, используемая программой обновления для сравнения версий. По умолчанию инфраструктура обновления выполняет сравнение версий с целью определить, является ли версия с удаленного сайта более новой, чем версия установленного приложения. Однако иногда сравнение по умолчанию не соответствует схеме версий разработчика. Задайте для данного свойства новую функцию для выполнения сравнения.

Функция сравнения по умолчанию может работать с версиями формата x.y.z, где элементы x, y и z могут состоять из цифр и букв. Существуют некоторые особые условия, которые учитывает функция сравнения по умолчанию. Если функция проверки обнаруживает alpha, beta или rc в строках версий, принимается порядок alpha < beta < rc.

Следующий код определяет пользовательскую функцию customFn для объекта appUpdate программы обновления. Пример функции нарочито простой. Ваша пользовательская функция должна возвращать логическое значение, исходя из правил схемы версий. appUpdate.isNewerVersionFunction = customFn; function customFn (currentVersion:String, updateVersion:String):Boolean { return updateVersion > currentVersion; }
isUnexpectedErrorVisible Включает видимость диалогового окна «Непредвиденная ошибка».Boolean Включает видимость диалогового окна «Непредвиденная ошибка». При значении true компонент Application Updater отображает это диалоговое окно в процессе обновления. Этот параметр можно задать также в файле конфигурации обновления. Значение, заданное с помощью этого свойства, переопределяет настройку в файле конфигурации обновления. isUpdateInProgress Свойство, принимающее логическое значение true, если выполняется обновление, и значение false, если нет.Boolean Свойство, принимающее логическое значение true, если выполняется обновление, и значение false, если нет. localeChain Массив, определяющий цепочку языковых стандартов, используемых в пользовательском интерфейсе.Array Массив, определяющий цепочку языковых стандартов, используемых в пользовательском интерфейсе. Как правило, только разработчики JavaScript (HTML) используют это свойство.

Разработчики Flex могут использовать ResourceManager для обработки цепочки языковых стандартов.

По умолчанию в приложении HTML сортировка происходит среди языков массива Capabilities.languages и десяти языков, поддерживаемых пользовательским интерфейсом. Если соответствие не найдено, в пользовательском интерфейсе используется английский язык.

В этом примере на языке JavaScript используется инфраструктура локализации AIR HTML, входящая в комплект AIR SDK. Она сортирует языки в соответствии со списком языков, а затем устанавливает английский язык в качестве базового языка по умолчанию.

appUpdater.addResources("ro_RO", {titleCheck: "Titlu", msgCheck: "Mesaj", btnCheck: "Buton"}); appUpdater.addResources("hu", {titleCheck: "Cím", msgCheck: "Üzenet"}); var languages = ["ro", "hu"]; languages = languages.concat(air.Capabilities.languages); var sortedLanguages = air.Localizer.sortLanguagesByPreference(languages, air.Capabilities.language, "en-US"); sortedLanguages.push("en-US"); appUpdater.localeChain = sortedLanguages;
addResources()
previousApplicationStorageDirectory Предыдущее местоположение каталога хранилища приложения, если оно изменилось после обновления.flash.filesystem:File Предыдущее местоположение каталога хранилища приложения, если оно изменилось после обновления. Каталог хранилища приложения меняет свое местоположение при обновлении с переносом сертификата. Если перенос сертификата не выполняется, то при обновлении приложения пользователем местоположение каталога хранилища приложения не изменяется. и это свойство имеет значение null. Значение для этого свойства задается во время вызова метода initialize().

Разработчик может подписать новую версию приложения AIR с помощью нового сертификата, если при упаковке файла AIR с помощью ADT используется команда -migrate. Если в новой версии приложения AIR используется новый сертификат подписи, локальный каталог хранилища приложения меняет свое местоположение при установке новой версии. С помощью этого свойства можно перенести данные из старого каталога хранилища приложения в новый (File.applicationStorageDirectory). Дополнительную информацию см. в разделе «Подписание файла AIR с изменением сертификата приложения» главы «Создание приложения AIR с использованием инструментов командной строки» в руководстве разработчика Adobe AIR.

previousVersion Предыдущая версия приложения.String Предыдущая версия приложения. Значение для этого свойства задается во время вызова метода initialize(). Возвращает предыдущую версию приложения перед обновлением (задано, только если свойство isfirstRun имеет значение true); в противном случае имеет значение null. updateDescriptor Содержимое файла дескриптора обновления, загруженного с URL-адреса обновления.XML Содержимое файла дескриптора обновления, загруженного с URL-адреса обновления. Это свойство не имеет значение null только после того, как объект программы обновления отправляет событие updateStatus. updateURL Местоположение файла дескриптора обновления.String Местоположение файла дескриптора обновления. Допустимо любое действительное для пути URLRequest местоположение. Это единственная обязательная для программы обновления настройка. URL-адрес обновления можно задать либо в этом свойстве либо в файле конфигурации. Если значение задано с помощью обоих методов, программа обновления использует значение, заданное в свойстве. configurationFilewasPendingUpdate Имеется ли отложенное обновление, даже если его не удалось установить (true); в противном случае – false.Boolean Имеется ли отложенное обновление, даже если его не удалось установить (true); в противном случае – false. Программа обновления задает значение для этого свойства во время вызова метода initialize(). С помощью свойств wasPendingUpdate и isFirstRun можно проверить, была ли попытка установки обновления неудачной (в этом случае свойство wasPendingUpdate имеет значение true, а свойство isFirstRun имеет значение false). isFirstRun