本文来自:我的博客
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+3和http://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里测试就会遇到这样的错误,安装好了就不会。