Apollo - Mise à jour
Je continue mon mouton sur Apollo. J’y ai ajouté quelques animations et comportements, mais on s’en fout un peu. J’ai surtout regardé comment marchait la mise à jour d’une application.
Récupérer la version actuelle
Quand on veut mettre à jour une application, il faut pouvoir vérifier si la version actuelle est la plus récente, on est d’accord. Il faut donc récupérer la version de l’application qui est indiquée dans le fichier de configuration. Sauf que je n’ai pas trouvé où était disponible l’information de la version actuelle dans les Class.
Mais en regardant le dossier des ressources, on retrouve le fichier de configuration. J’arrive à récupérer la version comme ça :
var file:File = File.appResourceDirectory.resolve("META-INF/AIR/application.xml");
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(IOErrorEvent.IO_ERROR, _onError);
fileStream.open(file, FileMode.READ);
var fileString:String = fileStream.readUTFBytes(fileStream.bytesAvailable);
fileStream.close();
var appConfig:XML = XML(fileString);
trace(appConfig.@version);
Récupérer la dernière version
Aucun problème, j’héberge un fichier texte qui contient la dernière version et je récupère l’information avec un URLLoader
.
Télécharger puis mettre à jour
Comme dans la documentation :
var urlString:String = "http://download.neolao.com/flash/sheep.air";
var urlReq:URLRequest = new URLRequest(urlString);
var urlStream:URLStream = new URLStream();
urlStream.addEventListener(Event.COMPLETE, _airLoaded);
urlStream.load(urlReq);
private function _airLoaded(pEvent:Event):void
{
var fileData:ByteArray = new ByteArray();
pEvent.target.readBytes(fileData, 0, pEvent.target.bytesAvailable);
var temp:File = File.createTempFile();
var fileStream:FileStream = new FileStream();
fileStream.openAsync(temp, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
var updater:Updater = new Updater();
updater.update(temp);
}
Conclusion
Plutôt facile de mettre à jour une application Apollo, sauf que j’aurai bien aimé récupérer la version actuelle autrement que par l’analyse d’un fichier.
Sinon, je m’attendais aussi à une fenêtre de dialogue pour confirmer la mise à jour, mais je n’ai rien eu. Si la machine est un peu lente, on peut voir une fenêtre indiquant la progression de l’installation, c’est tout.
Commentaires