原理:在应用配置文件有一个版本号配置,<versionNumber>1.0.2</versionNumber>;在远程服务器端的xml文件也有一个版本号配置。程序运行时,二者的版本号一比较,若发现远程xml文件的版本号比本地大,应用将会提示下载和安装新版本。
AS3代码:
package
{
import air.update.ApplicationUpdaterUI;
import air.update.events.StatusUpdateEvent;
import air.update.events.UpdateEvent;
import flash.desktop.NativeApplication;
import flash.display.NativeWindow;
import flash.display.Sprite;
import flash.events.ErrorEvent;
/**
* 应用更新升级检查类
*/
public class AppUpgrade
{
private var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI();
public function AppUpgrade()
{
}
/**
* 检查是否有更新
*/
public function checkUpdate():void {
appUpdater.updateURL = "http://127.0.0.1:8080/update.xml";
appUpdater.addEventListener(UpdateEvent.INITIALIZED, onUpdate);
appUpdater.addEventListener(ErrorEvent.ERROR, onError);
appUpdater.isCheckForUpdateVisible = false;//“检查更新”对话框不可见
appUpdater.isFileUpdateVisible = false;//“文件更新”对话框不可见
appUpdater.isDownloadProgressVisible = false;//“下载进度”对话框不可见
appUpdater.isDownloadUpdateVisible = false;//“下载更新”对话框不可见
appUpdater.isInstallUpdateVisible = false;//“安装更新”对话框不可见
appUpdater.initialize();
}
private function onUpdate(event:UpdateEvent):void {
appUpdater.checkNow();
}
private function onError(event:ErrorEvent):void {
trace(event.toString());
}
}
}
远程xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
<versionNumber>1.0.2</versionNumber>
<versionLabel>V1.0</versionLabel>
<url>http://127.0.0.1:8080/QTQJDeskApp.air</url>
<description>
<!-- <text xml:lang="en_US">AIR AutoUpdate</text> -->
<text xml:lang="zh_CN">
1、增加新功能a
2、增加新功能b
3、增加新功能c
</text>
</description>
</update>
1、本地和远程的versionNumber格式要一致
2、xml配置文件中的版本号,一定要与url指定下载文件的版本号一致,否则会安装失败。