Adobe Air : comment proposer une "air express install" ?
UPDATE cet article est rendu obsolète par la sortie de la béta 2 : voir nouveau système de seamless.
L’un des problèmes avec les applications Air, c’est qu’elles nécessitent… AIR justement. Ce qui veut dire télécharger l’installeur, installer le runtime, ensuite télcharger et installer l’appli. Comme pour le lecteur flash depuis la version 8, Air permet heureusement de proposer une « air express install », beaucoup plus simple pour l’utilisateur. Je ne sais pas si vous avez jeté un coup d’oeil à Adobe ‘Digital Edition’, une appli de lecture/gestion de pdf. Sur la page Adobe, le lien proposant l’installation, on voit un petit bandeau « Install now ». Ce lien est en fait un fichier swf capable d’installer de manière transparente le runtime air ainsi que l’application .air souhaitée sur la machine de l’utilisateur. Cet installeur automatisé vérifie la présence du Runtime, le télécharge et l’installe si nécessaire, télécharge le .air, l’installe et ‘boooom’… l’appli est lancée
. On a tout simplement l’impression d’avoir ouvert une « popup Air ».
-UPDATE : – Comme Tekool me l’a fait remarqué, et l’explique dans son article, la fonctionnalité n’est pas entièrement supportée par la version béta de Air, et pour le moment seule l’installation du runtime peut être faite via le navigateur, ensuite, contrairement à Digital Edition, c’est une fenêtre « applicative » qui propose l’installation du fichier .air. –
Pour proposer l’installation « express » du runtime Adobe Air :
- récupérez le SDK Air
- à l’intérieur, vous trouverez un dossier source contenant un fichier ‘badge.fla’ et un ‘install.as’, copiez les et placer les dans le dossier de votre projet.
- vous pouvez « personnaliser » le Fla
- Publiez votre swf
Une fois le swf prêt il ne reste plus qu’à l’intégrer dans un page html. Pour fonctionner le badge à besoin de trois variables obligatoires :
- appname : le nom de l’application
- appurl : l’adresse du fichier
- airversion : pour le moment : 1.0.M4
Vous pouvez également transmetre une couleur de fond pour le bouton :
- buttoncolor
Il va donc falloir transmettre ces variables depuis la page html, grâce aux FlashVars. Au final, avec le AC_RunActiveContent.js ( script de gestion du Active Content pour tous navigateurs, automatique avec Flash CS3 mais nécessite cette extension pour Flash 8 ), ca donne :
voir l’exemple / Télécharger les sources de l’exemple
Chose un peu étonnante, j’ai regardé comment Adobe l’avait intégré sur leur site, et j’ai eu la surprise de voir qu’il préfére le JS de swfobject, à celui qu’ils fournissent eux même pour gérer l’Active content (AC_RunActiveContent.js )… J’ai essayé vite fait de faire pareil, mais j’ai dû faire une bourde, çà bug ! à suivre…

Français
--> 29 juin 2007 ( 21:08 )
C’est clairement excellent, mais j’ai peur de comprendre que les applications doivent être signées pour que l’installation et le lancement direct depuis l’application web soit autorisé.
Si c’est le cas, espérons qu’on ne doive pas passer par une étape de validation soumise à l’acquiescement des services commerciaux d’Adobe, ce serait vraiment le début de la fin.
--> 1 juillet 2007 ( 15:03 )
Salut Tek,
je ne pense pas que cette fonctionnalité nécessite quelque accord d’Adobe. Qu’est ce qui te fait penser çà ?
PS : ca fait bien plaisir d’avoir un commentaire d’un des 1ers tritureurs de flash francais à m’avoir laissé coi. Big up !!!
--> 1 juillet 2007 ( 18:08 )
Dans l’application Adobe Digital Editions, il y a trois choses : l’Express-Install de Air, l’Express-Install d’une application Air et la possibilité de lancer une application Air d’un seul clic depuis le web.
Dans ton exemple il n’y a que l’Express-Install du runtime de Air qui fonctionne (en tout cas chez moi), pas celui de ton application. À chaque fois que tu cliques, Air est bien lancé, mais ça te demande de télécharger le fichier, de le sauver ou de l’ouvrir. Puis aprés téléchargement (par un pop-up externe au navigateur) ça te redemande confirmation pour le lancement de l’application.
C’est pour ça, et surtout en lisant d’autres commentaires sur le Net, qu’aux premiers abords j’ai cru que ça serait limité à certains sites ou à des applications signées. Mais en désinstallant l’application "Adobe Digital Editions" puis en la re-installant, j’ai remarqué qu’on te demande confirmation pour l’installation et le lancement d’un exécutable, je n’avais pas fait attention à ça au départ. Donc après réflexion, effectivement semble être possible à n’importe qui de lancer une appli Air par ce système, mais au final c’est étrange que chez toi ça ne fonctionne pas correctement du coup.
Je n’ai pas eu le temps de tester, je vais essayer de le prendre. Je te dirais ce qu’il en est si j’ai des nouvelles.
--> 1 juillet 2007 ( 19:03 )
Dans la doc Air on trouve quelque chose qui devrait répondre à ma question : " Important: The seamless install functionality does not apply in the pre-release version of the beta version of AIR. This information is included to provided you with information on how the feature is planned to work in the upcoming public beta release."
Ce qui n’explique pas pourquoi ça fonctionne quand même avec "Adobe Digital Editions". Je me suis dit qu’à défaut de gérer les applications signées, peut-être que le lecteur en bêta comporte une autorisation uniquement pour les url provenance de adobe.com (de la manière la plus simple, en autorisant uniquement adobe.com dans le *allowDomain* associé au canal LocalConnection de réception de la bêta de Air utilisé dans leur système d’installation). Donc j’ai testé avec ServiceCapture en faisant croire au navigateur qu’il était sur le site adobe.com mais en utilisant les fichiers de ton exemple à la place des leurs, ça ne fonctionne quand même pas. Il doit falloir fouiller un peu plus.
--> 1 juillet 2007 ( 20:32 )
Tu as raison le fonctionnement de Digital Edition est très particulier. En fait, c’était pas un bon exemple, il n’est pas développé avec la béta de Air
. Sur Mac, après installation on retrouve 2 fichiers : digitalEditions2x0 et digitalEditions2x0.app. Le 1er pèse 8,8 Mo, soit à peu près le poids de l’installeur du runtime Air. Digital Edition a peut être une sorte de runtime intégré, un peu comme pour les projectors Flash. Est ce qu’il sera possible de distribuer les applis Air de cette façon dès la version 1.0 finale??? Ca serait intérressant dans certains cas.
Concernant le fonctionnement de ce système avec la version béta actuelle, après quelques tests et relectures :
Bon j’avoue que plus je fais des tests, moins j’ai l’impression de vraiment obtenir toujours les résultats escomptés. Et encore, j’ai pas testé sous windows…Comme quoi les bétas…Mais bon c’est déjà un moyen de pas renvoyer les utilisateurs potentiels vers le site d’Adobe pour faire télécharger le runtime. De toute faàon vivement la release finale
!
--> 1 juillet 2007 ( 23:05 )
>Est ce qu’il sera possible de distribuer
>les applis Air de cette façon dès la version
>1.0 finale???
En tout cas ce serait vraiment une erreur stratégique de ne pas l’autoriser.
Sinon moi qui suis sous Windows. Aprés plusieurs tests en désinstallant ton appli et la version Air 1.0 bêta 1, je n’ai eu l’express-install qu’une fois. Les autres fois il semble que le fichier d’installation soit mis en cache quelque part, parce que quand je coche la case "install Air 1.0 beta1", ça prend juste le temps du téléchargement de ton appli et l’installation de Air est immédiate. Je n’ai pas trouvé le fichier d’installation dans le cache du navigateur, ni "Downloaded Installations", ni "Downloaded Program Files", ni apparemment nul part dans C:\Windows. C’est magique, je vois apparaitre et disparaitre l’installation de Air dans "Ajout/Suppression de programmmes".
Il faut espérer qu’Adobe rationalise tout ça pour la version finale.