Packageair.update
Classpublic class ApplicationUpdater
InheritanceApplicationUpdater Inheritance EventDispatcher Inheritance Object

Runtime Versions: AIR 1.5, AIR 1.5

The ApplicationUpdater class defines the basic functionality of the update framework for Adobe AIR applications, without providing any default user interface. (The ApplicationUpdaterUI class includes a default user interface.)

Managing updates of applications can be complicated. The AIR update framework provides APIs to assist developers in providing good update capabilities in AIR applications. The functionality in that AIR update framework assists developers in the following:

The AIR update framework lets you store information about the update version of an AIR application in simple XML configuration files. For most applications, setting up these configuration files and including some basic code provides good update functionality to the end user.

Use the AIRUpdater class if you want to define your own user interface for use with the AIR update framework.

See also

ApplicationUpdaterUI
flash.desktop.Updater


Public Properties
 PropertyDefined By
  AIR-only configurationFile : File
The location of the configuration file that sets the values for updateURL and delay.
ApplicationUpdater
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  AIR-only currentState : String
[read-only] The internal state of the updater.
ApplicationUpdater
  AIR-only currentVersion : String
[read-only] The current version of the application.
ApplicationUpdater
  AIR-only delay : Number
The interval used for the periodical checker of the new updates.
ApplicationUpdater
  AIR-only isFirstRun : Boolean
[read-only] Set to true if this is the first run after a successful update.
ApplicationUpdater
  AIR-only isNewerVersionFunction : Function
By default, the update framework does a version comparison in order to detect whether the version from the remote site is newer than the version of the installed application.
ApplicationUpdater
  AIR-only previousApplicationStorageDirectory : File
[read-only] The application storage directory location.
ApplicationUpdater
  AIR-only previousVersion : String
[read-only] The previous version of the application.
ApplicationUpdater
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  AIR-only updateDescriptor : XML
[read-only] The content of the update descriptor file downloaded from the update URL.
ApplicationUpdater
  AIR-only updateURL : String
The location of the update descriptor file.
ApplicationUpdater
  AIR-only wasPendingUpdate : Boolean
[read-only] Set to true if there was a postponed update, even if it failed to install; false otherwise.
ApplicationUpdater
Public Methods
 MethodDefined By
  
The constructor function.
ApplicationUpdater
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
  
Cancels the update process.
ApplicationUpdater
  
Asynchronously downloads and interprets the update descriptor file.
ApplicationUpdater
  
Starts the update process on demand.
ApplicationUpdater
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
Asynchronously downloads the update file.
ApplicationUpdater
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
  
Initializes the updater.
ApplicationUpdater
  
Starts the update process using a local AIR file.
ApplicationUpdater
  
Installs the update file.
ApplicationUpdater
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when Flash Player gains operating system focus and becomes active.EventDispatcher
  Dispatched just before installing the update (cancellable) Dispatched just before installing the update, after the installUpdate() method was called.ApplicationUpdater
  Dispatched just before the update process begins Dispatched just before trying to download the update descriptor file.ApplicationUpdater
 Inherited[broadcast event] Dispatched when Flash Player loses operating system focus and is becoming inactive.EventDispatcher
  Dispatched when the download of the update file is complete.ApplicationUpdater
  Dispatched if there is an error during connecting or downloading the update file.ApplicationUpdater
  Dispatched after a call to the downloadUpdate() method and the connection to the server is established.ApplicationUpdater
  Dispatched when an error occurred either during initialization or during the update process (if something unexpected happens).ApplicationUpdater
  Dispatched when an error occurs validating the file passed as the airFile parameter in a call to the installFromAIRFile() method.ApplicationUpdater
  Dispatched after the updater successfully validates the file in the call to the installFromAIRFile() method.ApplicationUpdater
  Dispatched after the initialization is complete This event has the following read-only properties: isFirstRun (Boolean) true if this is the first run after a successful update; false otherwise. previousVersion (String) The previous version of the application before the upgrade (set only if isfirstRun is true).ApplicationUpdater
  Dispatched after the initialization is complete.ApplicationUpdater
  Dispatched when an error occured while trying to download or parse the update descriptor file.ApplicationUpdater
  Dispatched after the updater successfully downloads and interprets the update descriptor file.ApplicationUpdater
Property Detail
AIR-only configurationFileproperty
configurationFile:File  [read-write]

Runtime Versions: AIR 1.5

The location of the configuration file that sets the values for updateURL and delay. If this property points to a non-existent file, calling the initialize() method results in an Error being thrown.


Implementation
    public function get configurationFile():File
    public function set configurationFile(value:File):void
AIR-only currentStateproperty 
currentState:String  [read-only]

Runtime Versions: AIR 1.5

The internal state of the updater. The property can be set to the following values:


Implementation
    public function get currentState():String
AIR-only currentVersionproperty 
currentVersion:String  [read-only]

Runtime Versions: AIR 1.5

The current version of the application. This property is set during a call to the initialize() method. It is set to the version from the application descriptor file.


Implementation
    public function get currentVersion():String
AIR-only delayproperty 
delay:Number  [read-write]

Runtime Versions: AIR 1.5

The interval used for the periodical checker of the new updates.

The default value is 0, which indicates that the timer is not active, so no periodical check is done. This can be set either via this property or via the configuration file. When the value is set using both methods, the value set using the property is used.


Implementation
    public function get delay():Number
    public function set delay(value:Number):void
AIR-only isFirstRunproperty 
isFirstRun:Boolean  [read-only]

Runtime Versions: AIR 1.5

Set to true if this is the first run after a successful update. This property is set during the call to the initialize() method. The developer should check that isFirstRun is set to true if there is a need to migrate data from one version to another.


Implementation
    public function get isFirstRun():Boolean
AIR-only isNewerVersionFunctionproperty 
isNewerVersionFunction:Function  [read-write]

Runtime Versions: AIR 1.5

By default, the update framework does a version comparison in order to detect whether the version from the remote site is newer than the version of the installed application. However, sometimes the default comparison does not match the developer?s versioning scheme. Set this property to set a new function that does the comparison.

The default compare functions will accept versions like x.y.z, where x, y, and z can contain letters and digits.

There are some special conditions that the updater recognizes. If the test function finds alpha, beta or rc, the order is alpha < beta < rc.

Example:

appUpdate.isNewerVersionFunction = customFn; 
  function customFn (currentVersion:String, updateVersion:String):Boolean {// A simple examplereturn updateVersion > currentVersion;}


Implementation
    public function get isNewerVersionFunction():Function
    public function set isNewerVersionFunction(value:Function):void
AIR-only previousApplicationStorageDirectoryproperty 
previousApplicationStorageDirectory:File  [read-only]

Runtime Versions: AIR 1.5

The application storage directory location. This property is set during a call to the initialize() method. Returns the previous local storage of the application before an upgrade with a certificate migration; otherwise it is set to null.


Implementation
    public function get previousApplicationStorageDirectory():File
AIR-only previousVersionproperty 
previousVersion:String  [read-only]

Runtime Versions: AIR 1.5

The previous version of the application. This property is set during a call to the initialize() method. Returns the previous version of the application before the upgrade (set only if isfirstRun is true); otherwise it is set to null.


Implementation
    public function get previousVersion():String
AIR-only updateDescriptorproperty 
updateDescriptor:XML  [read-only]

Runtime Versions: AIR 1.5

The content of the update descriptor file downloaded from the update URL. It will return a non-null value only if it is called after a StatusUpdateEvent.UPDATE_STATUS was dispatched.


Implementation
    public function get updateDescriptor():XML
AIR-only updateURLproperty 
updateURL:String  [read-write]

Runtime Versions: AIR 1.5

The location of the update descriptor file. Any location valid for a URLRequest path is accepted. This is the only mandatory setting required by the updater. You can set this either via this property or via the configuration file. When the value is set using both methods, the updater uses the value set using the property.


Implementation
    public function get updateURL():String
    public function set updateURL(value:String):void
AIR-only wasPendingUpdateproperty 
wasPendingUpdate:Boolean  [read-only]

Runtime Versions: AIR 1.5

Set to true if there was a postponed update, even if it failed to install; false otherwise. This property is set during a call to the initialize() method. Use the wasPendingUpdate and isFirstRun properties to check if an update failed to install (wasPendingUpdate && !isFirstRun).


Implementation
    public function get wasPendingUpdate():Boolean
Constructor Detail
AIR-only ApplicationUpdater()Constructor
public function ApplicationUpdater()

Runtime Versions: AIR 1.5, AIR 1.5

The constructor function.

Method Detail
AIR-only cancelUpdate()method
public function cancelUpdate():void

Runtime Versions: AIR 1.5

Cancels the update process. Cancels any pending downloads, deleting any incomplete downloaded files and restarts the periodical check timer.

The update process can be canceled at any time except when the state machine is in "Unitialized" or "Initializing" state. It does nothing when it is called in one of the "Unitialized" or "Initializing" states.

AIR-only checkForUpdate()method 
public function checkForUpdate():void

Runtime Versions: AIR 1.5

Asynchronously downloads and interprets the update descriptor file. Calling this method advances the updater state to "Checking". Call this method only if the checkForUpdate event was cancelled.

This method only executes when the updater is in the "Before_Checking" state.


Events
updateStatus
 
updateError
AIR-only checkNow()method 
public function checkNow():void

Runtime Versions: AIR 1.5

Starts the update process on demand. Calling this method does not stop the periodical timer; however it detects that an update process is running and will skip the current iteration.

This method only executes if the current state is "Ready".

This method can result in the updater object dispatching the following event:


Events
checkForUpdate — Dispatched just before the update process begins.
AIR-only downloadUpdate()method 
public function downloadUpdate():void

Runtime Versions: AIR 1.5

Asynchronously downloads the update file. It advances the state machine to "Downloading". It needs to be called only if the StatusUpdateEvent.UPDATE_STATUS event was cancelled when the available property of the event was true.

This method only executes if the current state is "Available". (For information on states, see The update process.)


Events
downloadStart
 
progress
 
downloadError
 
updateEvent
AIR-only initialize()method 
public function initialize():void

Runtime Versions: AIR 1.5

Initializes the updater. Calling this method does the following:

This method takes no parameters and returns no value (void).


Events
initialized — The initialization is complete.
 
error:ErrorEvent — There is an error during initialization.
AIR-only installFromAIRFile()method 
public function installFromAIRFile(file:File):void

Runtime Versions: AIR 1.5

Starts the update process using a local AIR file.

Calling this method has no effect if an update process is running (if the state is not "Downloaded").

This function is useful for an application that has the customUpdateUI element set to true in the application descriptor file.

Parameters

file:File — The local AIR file to install.


Events
fileUpdateStatus
 
updateError
AIR-only installUpdate()method 
public function installUpdate():void

Runtime Versions: AIR 1.5

Installs the update file. Calling the method advances the state machine to "Installing" and needs to be called only if the downLoadComplete event was cancelled.

Call this method when the updater is in the "Downloaded" state. Calling it in any other state will do nothing.


Events
beforeInstall
Event Detail
AIR-only beforeInstall Event
Event Object Type: air.update.events.UpdateEvent
property UpdateEvent.type = air.update.events.UpdateEvent.BEFORE_INSTALL

Runtime Versions: AIR 1.5

Dispatched just before installing the update (cancellable)

Dispatched just before installing the update, after the installUpdate() method was called. Sometimes, it is useful to prevent the installation of the update at this time, because the user will lose all current work as the runtime gets total control of the installation.

Calling this event?s preventDefault() method postpones the installation until the next restart. Canceling this and no additional update process can be started (via a call to the method or because of the periodical check).

The default behavior for ApplicationUpdater library is to download the update descriptor file. You can call the preventDefault() method to cancel this behavior.

The UpdateEvent.BEFORE_INSTALL constant defines the value of the type property of the event object for a beforeInstall event.
AIR-only checkForUpdate Event  
Event Object Type: air.update.events.UpdateEvent
property UpdateEvent.type = air.update.events.UpdateEvent.CHECK_FOR_UPDATE

Runtime Versions: AIR 1.5

Dispatched just before the update process begins

Dispatched just before trying to download the update descriptor file. The updater can dispatch this event as a result of directly calling the checkNow() method or because the periodical check timer expired.

The UpdateEvent.CHECK_FOR_UPDATE constant defines the value of the type property of the event object for a checkForUpdate event.
AIR-only downloadComplete Event  
Event Object Type: air.update.events.UpdateEvent
property UpdateEvent.type = air.update.events.UpdateEvent.DOWNLOAD_COMPLETE.

Runtime Versions: AIR 1.5

Dispatched when the download of the update file is complete.

Usually this event will be used to show the install update dialog box to ask the user if he wants to install the update.

The default behavior for the the ApplicationUpdater library is to automatically call the installUpdate() method. The default behavior can be prevented only when using the ApplicationUpdater class.

AIR-only downloadError Event  
Event Object Type: air.update.events.DownloadErrorEvent
property DownloadErrorEvent.type = air.update.events.DownloadErrorEvent.DOWNLOAD_ERROR

Runtime Versions: AIR 1.5

Dispatched if there is an error during connecting or downloading the update file. It is also dispatched for invalid HTTP statuses (such as 404 - File not found).

When this event is dispatched the periodical timer is automatically restarted (if the delay is greater than 0).

This event has an errorID property. This is an integer defining additional error information (see the following table). An additional subErrorID property may contain more error information.

errorID Error code

Description

16800

Occurs during validating the downloaded update file. The subErrorID property may contain additional information.

16801

Invalid Adobe AIR file (missing application.xml).

16802

Invalid Adobe AIR file (missing mime type).

16807

Invalid Adobe AIR file (format).

16804

Invalid Adobe AIR file (invalid flags).

16805

Invalid Adobe AIR file (unknown compression).

16806

Invalid Adobe AIR file (invalid filename).

16807

Invalid Adobe AIR file (corrupt).

16808

Configuration file does not exist.

16809

The updateURL property is not set.

16810

Reserved.

16811

Invalid configuration file (unknown configuration version).

16812

Invalid configuration file (URL missing).

16813

Invalid configuration file (delay format).

16814

Invalid configuration file (invalid defaultUI values).

16815

Invalid update descriptor (unknown descriptor version).

16816

Invalid update descriptor (missing update version).

16817

Invalid update descriptor (invalid description).

16818

IO error while saving data to disk. The subErrorID property may provide more information.

16819

Security error while downloading. The subErrorID property may provide more information.

16820

Invalid HTTP status code. The subErrorID property may contain the invalid status code.

16821

Reserved.

16822

I/O error while downloading. The subErrorID property may provide more information.

16823

End-of-file error while saving data to disk. The subErrorID property may provide more information.

16824

Invalid update descriptor. The subErrorID property may provide more information.

16825

The update file contains an application with a different application ID.

16826

The update file does not contain a newer version of the application.

16827

The version contained in the update file does not match the version from the update descriptor.

16828

Cannot update application, usually because the application is running in the AIR Debug Launcher (ADL).

16829

Missing update file at install time.

The DownloadErrorEvent.DOWNLOAD_ERROR constant defines the value of the type property of the event object for a downloadError event.
AIR-only downloadStart Event  
Event Object Type: air.update.events.UpdateEvent
property UpdateEvent.type = air.update.events.UpdateEvent.DOWNLOAD_START

Runtime Versions: AIR 1.5

Dispatched after a call to the downloadUpdate() method and the connection to the server is established. When using ApplicationUpdater library, you may want the event handler for this event to display a progress bar to report the download progress to the user.

The UpdateEvent.DOWNLOAD_START constant defines the value of the type property of the event object for a downloadStart event.
AIR-only error Event  
Event Object Type: flash.events.ErrorEvent
property ErrorEvent.type = flash.events.ErrorEvent.ERROR

Runtime Versions: AIR 1.5

Dispatched when an error occurred either during initialization or during the update process (if something unexpected happens).

Defines the value of the type property of an error event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe object experiencing a network operation failure.
textText to be displayed as an error message.
AIR-only fileUpdateError Event  
Event Object Type: air.update.events.StatusFileUpdateErrorEvent
property StatusFileUpdateErrorEvent.type = air.update.events.StatusFileUpdateErrorEvent.FILE_UPDATE_ERROR

Runtime Versions: AIR 1.5

Dispatched when an error occurs validating the file passed as the airFile parameter in a call to the installFromAIRFile() method.

The StatusUpdateErrorEvent.UPDATE_ERROR constant defines the value of the type property of the event object for a statusUpdateError event.
AIR-only fileUpdateStatus Event  
Event Object Type: air.update.events.StatusFileUpdateEvent
property StatusFileUpdateEvent.type = air.update.events.StatusFileUpdateEvent.FILE_UPDATE_STATUS

Runtime Versions: AIR 1.5

Dispatched after the updater successfully validates the file in the call to the installFromAIRFile() method.

The default behavior is to install the update if the available of the available property of the StatusFileUpdateEvent object is set to true. The default behavior can be prevented only when using the ApplicationUpdater class.

This event has the following properties:

The StatusUpdateEvent.UPDATE_STATUS constant defines the value of the type property of the event object for a updateStatus event.
AIR-only initialized Event  
Event Object Type: air.update.events.UpdateEvent
property UpdateEvent.type = air.update.events.UpdateEvent.INITIALIZED

Runtime Versions: AIR 1.5

Dispatched after the initialization is complete

This event has the following read-only properties:

The UpdateEvent.INITIALIZED constant defines the value of the type property of the event object for a initialized event.
AIR-only progress Event  
Event Object Type: flash.events.ProgressEvent
property ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

Runtime Versions: AIR 1.5

Dispatched after the initialization is complete.

Defines the value of the type property of a progress event object.

This event has the following properties:

PropertyValue
bubblesfalse
bytesLoadedThe number of items or bytes loaded at the time the listener processes the event.
bytesTotalThe total number of items or bytes that ultimately will be loaded if the loading process succeeds.
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe object reporting progress.
AIR-only updateError Event  
Event Object Type: air.update.events.StatusUpdateErrorEvent
property StatusUpdateErrorEvent.type = air.update.events.StatusUpdateErrorEvent.UPDATE_ERROR

Runtime Versions: AIR 1.5

Dispatched when an error occured while trying to download or parse the update descriptor file.

When the updater dispatches this event, the periodical timer is automatically restarted (if the delay setting is greater than 0). The application should consider hiding any error dialog boxes when the updater dispatches a new checkForUpdate event.

The StatusUpdateErrorEvent.UPDATE_ERROR constant defines the value of the type property of the event object for a statusUpdateError event.
AIR-only updateStatus Event  
Event Object Type: air.update.events.StatusUpdateEvent
property StatusUpdateEvent.type = air.update.events.StatusUpdateEvent.UPDATE_STATUS

Runtime Versions: AIR 1.5

Dispatched after the updater successfully downloads and interprets the update descriptor file.

The default behavior is to start downloading the update if the available of the available property of the StatusUpdateEvent object is set to true. The default behavior can be prevented only when using the ApplicationUpdater class.

This event has the following properties:

The StatusUpdateEvent.UPDATE_STATUS constant defines the value of the type property of the event object for a updateStatus event.