Packageflash.desktop
Classpublic final class Updater
InheritanceUpdater Inheritance Object

Language version: ActionScript 3.0
Runtime version: AIR 1.0

The Updater class is used to update the currently running application with a different version. To use it, instantiate an Updater object and then call its update() method.

The Updater class is only supported in the desktop profile. It is not supported for extended desktop applications (applications installed with a native installer), and it is not supported on the AIR mobile profile or AIR for TV profiles. Check the Updater.isSupported property.

Extended desktop application (applications installed with a native installer) can download a new version of the native installer and launch it using the File.openWithDefaultApplication() method.

See also

air.update.ApplicationUpdater
air.update.ApplicationUpdaterUI


Public Properties
 PropertyDefined by
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  isSupported : Boolean
[static][read-only] The isSupported property is set to true if the Updater class is available on the current platform, otherwise it is set to false.
Updater
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
Public Methods
 MethodDefined by
  
The constructor function for the Updater class.
Updater
 Inherited
Indicates whether an object has a specified property defined.
Object
 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
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
  
update(airFile:File, version:String):void
Updates the currently running application with the version of the application contained in the specified AIR file.
Updater
 Inherited
Returns the primitive value of the specified object.
Object
Property detail
isSupportedproperty
isSupported:Boolean  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 2

The isSupported property is set to true if the Updater class is available on the current platform, otherwise it is set to false.

Implementation
    public static function get isSupported():Boolean
Constructor detail
Updater()constructor
public function Updater()

Runtime version: AIR 1.0

The constructor function for the Updater class. Note that the update() method is not a static member of the class. You must instantiate an Updater object and call the update() method on it.

Method detail
update()method
public function update(airFile:File, version:String):void

Language version: ActionScript 3.0
Runtime version: AIR 1.0

Updates the currently running application with the version of the application contained in the specified AIR file. The application in the AIR file must have the same application identifier (appID) as the currently running application.

Calling this method causes the current application to exit (as if the NativeApplication.exit() method had been called). This is necessary because Adobe AIR cannot fully update an application while the application is running. Upon successfully installing the new version of the application, the application launches. If the runtime cannot successfully install the new version (for example, if its application ID does not match the existing version), the AIR installer presents an error message to the user, and then the old version relaunches.

The update process relaunches the application whether or not the update is successful. Updates can fail for a variety of reasons, including some that the application cannot control (such as the user having insufficient privileges to install the application). Applications should take care to detect failures and avoid reattempting the same failed update repeatedly. The resulting infinite loop would effectively disable the application. One way to check for a successful update is to write the current version number to a file before starting the update, and then compare that to the version number when the application is relaunched.

When testing an application using the AIR Debug Launcher (ADL) application, calling the update() method results in an IllegalOperationError exception.

On Mac OS, to install an updated version of an application, the user needs to have adequate system privileges to install to the application directory. On Windows or Linux, the user needs to have adminstrative privileges.

If the updated version of the application requires an updated version of the runtime, the new runtime version is installed. To update the runtime, a user needs to have administrative privileges for the computer.

Note: Specifying the version parameter is required for security reasons. By requiring the application to verify the version number in the AIR file, the application will not inadvertantly install an older version, which might contain a security vulnerability that has been fixed.

Parameters
airFile:File — The File object pointing to the AIR file that contains the update version of the application.
 
version:String — The required version in the new AIR file. The string in the version attribute of the main application element of the application descriptor file for the AIR file must match this value in order for the update to succeed.

Throws
Error — The method was called when running in ADL.

See also

air.update.ApplicationUpdater
air.update.ApplicationUpdaterUI

Example
Note that the update() method is not a static method of the class. You instantiate an Updater object and call the update() method of that object.
import flash.fileSystem.File;
import flash.desktop.Updater;
 
var updater:Updater = new Updater();
var airFile:File = File.applicationStorageDirectory.resolvePath("Example Application.air");
var version:String = "2.01";
updater.update(airFile, version);