现在的位置: 首页 > 综合 > 正文

air 桌面软件版本自动更新 air update framework入门

2018年01月26日 ⁄ 综合 ⁄ 共 2422字 ⁄ 字号 评论关闭

AIR update framework 入门

文章分类:Flash编程

 

 

 

http://gain-loss.org/?p=734

AIR update framework 入门

 

 

 

AIR update framework可以让你的AIR应用程序支持更新,并且已经被AIR 1.5支持。

准备

AIR update framework已经加入到最新的flex sdk了。我一直用的是flex builder3,sdk是3.0.0,所以需要下载最新的sdk 3.4.0和air 1.5 sdk。上http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3http://www.adobe.com/products/air/tools/sdk分别下载吧。把他们解压到一个文件夹里(不会有覆盖的),这样最新的sdk就弄好了。下面就可以配置到flex builder里,不清楚的可以见这里

update原理

说来也比较简单(adobe的framework也不见得多高明),在网站上准备一个update.xml来定义更新的信息,比如最新的版本号和对应的AIR文件。air update framework api 会去访问那个update.xml和现在的版本号比较,如果有更新就下载update.xml定义的air文件并安装,来达到更新的目的。

开始开发

首先我们需要了解下AIR update framework API。打开livedoc,找到air.update.*,它的API不多,我们主要关注这个,ApplicationUpdaterUI,它所管理的就是update的整个过程和界面。网上有介绍说是用configuration file来定义update过程,这是可以的,不过我发现简单的设置下ApplicationUpdaterUI也有同样的效果。入门嘛当然看简单的。设置的话要关注几个isXXXXVisible样式的public property,它们就是定义某些界面是否可见,比如isCheckForUpdateVisible,就是指一个检查是否有更新的界面是否会显示,如果你想要悄悄的检测而不弹出界面的话就设false。默认的它们都是true。来看看我的代码:

private var _updater:ApplicationUpdaterUI = new ApplicationUpdaterUI();
 
private function onLoad():void
{		
	//updater framework
	_updater.updateURL = "http://gain-loss.org/wp-content/myprojects/jonftp/update.xml";
	_updater.isCheckForUpdateVisible = false;
				  _updater.addEventListener(UpdateEvent.INITIALIZED, onUpdateInitializedHandler);
	_updater.initialize();
}
 
private function onUpdateInitializedHandler(event:UpdateEvent):void
{
	_updater.checkNow();
}

差点忘了介绍updateURL,它就是前面所说的update.xml(名字可以变)。当air update framework initialized 以后就可以开始check了(方式随你),由于我把isCheckForUpdateVisible设为false,检查更新的界面就不会显示,如果有更新它就会直接弹出提醒页面的。下面?没有啦,air update framework都帮我们做掉了,开始测试吧。

我遇到的几个ERROR

  • 16824:注意下版本号的写法,反正我一开始写了v0.1什么的,好像就报这错误,如果改成0.1这样的标准格式,就没事。
  • 16828:注意了,在flex builder里测试就会遇到这样的错误,安装好了就不会。

这篇是对《AIR update framework入门》补充,那次忘了对update.xml做个介绍。建议你先浏览下那篇文章。update.xml是部署在服务器上的“更新文件”,简单的将,它是个配置文件,用来告诉你的AIR程序,比如目前的最新版本号啦,更新文件在哪里啦,还有经典的“what’s new”啦等等。下面是一个例子:

<?xml version="1.0" encoding="utf-8" ?>

- <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
  <version>1.2</version>
  <url>http://192.168.39.248:8080/Update/AutoUpdate.air</url>
- <description>
- <![CDATA[

1 This is a test appliction
2 how do you think about it.
		

  ]]>

  </description>
  </update>

相信也没啥好解释的,基本上这么个结构就能对付大多数需要了。version就是当前的更新版本号,可能会疑惑,更新包的版本号和version是不是一样呢,我个人认为不必相同(最好一样啦),因为更新包是一个打包好(压缩过)的文件,读取它的版本信息不太现实,于是才有这个version节点的出现。description的内容会显示在更新界面的下方,让用户了解下新版本有哪些改动。

其实观察下air update framework,也算比较简单易用了。如果你打算要点牛X的功能(update的确需要长远的考虑),还是建议要好好的扩展下update.xml,比如针对不同旧版本有不同的升级方案,强制升级等等

抱歉!评论已关闭.