首先,你需要了解一下通用的程序自动更新的原理和基本实现方式,引用自网络的一个描述:
“需要自动更新的时候,客户端软件提交更新请求给固定的网址,然后网址返回最新版本的版本号。客户端软件和自己的版本号对比,如果发现服务器的版本和自己的版本不一样,那么就请求下载升级补丁。服务器响应请求,提供补丁下载;下载成功后,手动或自动安装一下就可以了。”
知道了这个原理,就好办多了,然后查阅AIR的相关资料,你会发现它提供了一个很便捷的更新机制,即:使用Updater.update()方法。
具体的实现方式,可以遵循以下步骤:
(1).在WEB上提供一个供AIR应用检测版本的方法,比如说建立一个版本更新的XML,里面包括最新的版本号,和最新的AIR应用安装包的地址。
<?xml version=”1.0″ encoding=”utf-8″?>
<example>
<version>v2</version>
<lastpublic>testAIR.air</lastpublic>
</example>
(2).在你的AIR应用中,部署一个自动更新的机制,使用HTTP请求到WEB地址,将获得的版本号与当前版本号做比较,如果有最新的版本,则可以将最新版本下载到用户的电脑上,然后使用Updater.update()方法自动更新你的AIR应用。
示例代码:
public function checkVersion(event:ResultEvent):void {
var result:XML = new XML(event.result);
if(version!=result.version) {
newVersion=result.version;
urlString=”http://localhost/testUpdate/”+result.lastpublic;
Alert.show(”马上更新到最新版吗?”, “有新的更新”, 3, this, alertClickHandler);
}
}
private function writeAirFile():void {
var file:File = File.desktopDirectory.resolvePath(”lastPublish.air”);
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.CLOSE, fileClosed);
fileStream.openAsync(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
}
private function fileClosed(event:Event):void {
Alert.show(”The AIR file is written.”);
var updater:Updater = new Updater();
var airFile:File = File.desktopDirectory.resolvePath(”lastPublish.air”);
updater.update(airFile,newVersion);
}