`
airfans
  • 浏览: 124591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AIR 自动更新详解

阅读更多

 

AIR 1.5 加入了自动升级的类air.update.ApplicationUpdater,这样你的AIR应用程序便可以通过网络自动更新到最新版本了。

注意:Flex SDK 3.2以上才支持AIR 1.5,Flex SDK 4.0运行可能会有报错。建议采用Flex SDK3.4。

自动更新的原理:ApplicationUpdater 会去读取网络上的一个XML版本描述文件,其中包含了版本号和对应的安装文件路径以及更新描述信息,然后和当前运行的AIR程序版本进行比较,来决定是否下载和安装。

这里有一个例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="checkForUpdate()">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import air.update.events.UpdateEvent;
			import air.update.ApplicationUpdaterUI;
			private var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI();

			private function checkForUpdate():void {
				appUpdater.updateURL = "http://localhost:8400/team/xml/test-update.xml"; // Server-side XML file describing update
				appUpdater.isCheckForUpdateVisible = false; // We won't ask permission to check for an update
				appUpdater.addEventListener(UpdateEvent.INITIALIZED, onUpdate); // Once initialized, run onUpdate
				appUpdater.addEventListener(ErrorEvent.ERROR, onError); // If something goes wrong, run onError
				appUpdater.initialize(); // Initialize the update framework
			}  
			private function onError(event:ErrorEvent):void {
				Alert.show(event.toString());
			}
			private function onUpdate(event:UpdateEvent):void {
				appUpdater.checkNow(); // Go check for an update now
			}
		]]>
	</mx:Script>
</mx:WindowedApplication>
 

creationComplete=”checkForUpdate()”表示在程序加载完成后会连接到更新服务器上自动监测新版本。
服务器上的XML文件(test-update.xml)内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> 
    <version>v1.1</version> 
    <url>http://localhost:8400/team/update/test.air</url> 
<description>update</description> 
</update> 
 



注意:XML中的版本号和指定的AIR程序的版本号一定要保证匹配。
请使用发行版本来测试,调试版本不支持升级安装。

当然,你可以可以采用第三方类包来简化开发流程:
下载everythingflex的类包: everythingflexairlib.swc 把类包copy到你工程的libs文件夹。
地址:http://everythingflexairlib.googlecode.com/files/everythingflexairlib.swc

这里有一个例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script> 
        <![CDATA[ 
            import com.everythingflex.air.managers.UpdateManager; 
            private var updateManager:UpdateManager = new UpdateManager("http://localhost:8400/team/test-update.xml",false); 
        ]]> 
    </mx:Script> 
    <mx:Button click="updateManager.checkForUpdate()" label="Test for Update" 
        horizontalCenter="0" verticalCenter="0"/> 
</mx:WindowedApplication> 
 



其中UpdateManager构造函数第2个参数代表是否自动检测新版本,TRUE为是,FALSE为否。

<?xml version="1.0" encoding="utf-8"?>
<currentVersion version="v1.1"
	downloadLocation="http://localhost:8400/team/update/test.air"
	forceUpdate="false" message="Added new features" />
 


同上,你还需要一个放在服务器上的XML文件,告知程序要更新到哪一个版本:

其中:downloadLocation是更新程序的路径,forceUpdate表示是否弹出警告框来提示用户更新程序,message是警告框中的详细信息。


开发过程可能遇到的错误代码列表:
16800 Occurs during validating the downloaded update file. The subErrorID may contain additional information.
16801 Invalid Adobe AIR file (missing application.xml).
16802 Invalid Adobe AIR file (missing mimetype).
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 updateURL 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. subErrorID may provide more information.
16819 Security error while downloading. subErrorID may provide more information.
16820 Invalid HTTP status code. subErrorID may contain the invalid status code.
16821 Reserved.
16822 IO error while downloading. subErrorID may provide more information.
16823 EOF error while saving data to disk. subErrorID may provide more information.
16824 Invalid update descriptor. subErrorID 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.

 

--虾米

 

 

 

 

 

 

 

2
0
分享到:
评论
2 楼 tanni 2012-07-14  
注意:现在XML需用2.5,且XML的版本号要与APP.XML里的版本号一致;格式为
<?xml version="1.0" encoding="utf-8"?>

<update xmlns="http://ns.adobe.com/air/framework/update/description/2.5">

<versionNumber>2.0.1</versionNumber>

<url>http://localhost:8080/TestMobileDriveWeb/AirTest2.air</url>

<description>This is the latest version of the Sample application.</description>

</update>
1 楼 cvpc 2011-01-07  
先谢过,试试好不好使

相关推荐

    iPhone连接打印机airprint

    **AirPrint技术详解** AirPrint是由苹果公司推出的一项功能,主要针对iOS设备(如iPhone、iPad)和Mac OS X系统,旨在提供简单便捷的无线打印服务。这项技术使得用户无需安装额外驱动,即可直接从苹果设备上将文档...

    air 打包成 exe

    - 进入“高级”选项卡中的“自解压选项”,在“解压后运行”中输入“AdobeAIRInstaller.exe”,这样可以在解压后自动运行AIR运行环境的安装程序。 - 切换到“模式”选项卡,在这里可以设置解压时是否静默安装。...

    AirPlay 投屏协议

    ### AirPlay 投屏协议详解 #### 一、引言 AirPlay 是苹果公司开发的一套协议族,用于实现各种媒体内容(如照片、音频、视频等)在 Apple TV 上从任何 iOS 设备或 iTunes 中播放。在此文档中,“iOS 设备”特指 ...

    苹果airplay协议,Windows测试版

    **苹果AirPlay协议详解** 苹果AirPlay协议是苹果公司推出的一种多媒体流媒体技术,它允许用户将iPhone、iPad、iPod touch等iOS设备或者Mac电脑上的音频、视频、照片、镜像等内容无线传输到支持AirPlay的设备上,如...

    Air780EX电路板AD封装

    《Air780EX电路板AD封装详解》 在电子设计领域,AD(Altium Designer)是一款广泛应用的PCB设计软件,它集成了电路原理图设计、PCB布局、3D查看、仿真等功能,为工程师提供了高效的设计环境。本文将详细讲解Air780...

    file2air-1.1.tgz

    《file2air-1.1.tgz:无线网络攻击工具详解》 在信息化时代,网络安全问题日益凸显,其中无线网络由于其便捷性而被广泛使用,同时也成为了黑客攻击的重要目标。"file2air-1.1.tgz"是一个专门针对无线网络的攻击工具...

    思科AIR-CT5500-K9-8-5-161 wlc升级包和ap补充包.rar

    《思科AIR-CT5500无线控制器与AP固件升级详解》 在现代企业网络环境中,无线网络已经成为不可或缺的一部分。思科作为全球领先的网络设备供应商,其产品线广泛,其中AIR-CT5500无线控制器(WLC)是企业级无线网络的...

    使用HTML和AJAX开发AIR应用程序中文文档

    ### 使用HTML和AJAX开发Adobe AIR 1.5应用程序知识点详解 #### 一、Adobe AIR简介 Adobe AIR(Adobe Integrated Runtime)是一种由Adobe Systems开发的跨平台运行环境,支持使用HTML、CSS、JavaScript以及Flex等...

    可直接替换M26的GPRS模块Air208M

    在产品特性上,模块不仅支持GPRS多时隙等级10和GPRS编码格式CS-1至CS-4,而且具备四频段自动搜索功能,能够自动选择最佳的网络频段工作,也可通过AT命令进行频段设置。在功率方面,Air208M提供Class4(2W)的功率输出...

    Flex AIR物业管理系统

    《Flex AIR物业管理系统详解》 Flex AIR物业管理系统是一款基于Adobe AIR技术开发的桌面应用程序,它为物业管理提供了全面的解决方案。Adobe AIR(Adobe Integrated Runtime)允许开发者利用Flash、Flex或HTML5技术...

    Flex_3_RIA开发详解与精深实践.pdf

    Flex 3 RIA(Rich Internet Application)开发详解与精深实践是针对Adobe Flex 3这一技术的深度学习资料。Flex是Adobe公司推出的一种用于构建富互联网应用(RIA)的开源框架,它基于ActionScript编程语言和Flash ...

    airplay协议源码及详细协议资料

    **AirPlay协议详解** AirPlay是由Apple公司推出的一项技术,主要用于在不同的设备间无线传输音频、视频以及图像。这项技术的出现,极大地丰富了用户的多媒体体验,使得用户可以在iPhone、iPad、Mac等设备上轻松地将...

    SMC 空气组合原件选型软件Air_Combi._Selector.zip

    《SMC空气组合原件选型软件详解》 在工业自动化领域,SMC(Suzhou Mechatronics Corporation)是一家享誉全球的气动元件制造商,其产品广泛应用于各种机械设备和生产线中。为了帮助工程师们更高效地进行设备设计与...

    netbackup air功能

    ### NetBackup Air功能详解 #### 一、NetBackup Air简介 NetBackup Air(Automatic Image Replication)是Veritas NetBackup平台中的一个重要特性,主要用于实现跨数据中心的数据复制与保护。通过Air功能,用户...

    Cisco AP固件 版本:AIR-K9-ME-8-9-111-0.zip

    《思科无线接入点固件升级与管理详解》 在当今的网络环境中,无线网络扮演着至关重要的角色,而作为无线网络核心设备的无线接入点(Access Point, AP),其性能和稳定性直接影响到整个网络的运行。思科,作为全球...

    Python库 | midea-beautiful-air-0.8.40.tar.gz

    《Python库midea-beautiful-air-0.8.40详解》 在Python的世界里,库扮演着至关重要的角色,它们提供了丰富的功能,使得开发者能够更高效地编写代码。本文将详细探讨一个名为midea-beautiful-air的Python库,具体...

Global site tag (gtag.js) - Google Analytics