Vérifications permettant de savoir si l’application est exécutée pour la première fois

Après avoir mis à jour une application, vous pouvez afficher un message de bienvenue ou de mise en route destiné à l’utilisateur. Au démarrage, l’application vérifie si elle est exécutée pour la première fois afin d’afficher ou non ce message.

Remarque : AIR 1.5 comprend une structure de mise à jour qui aide les développeurs à doter les applications AIR de bonnes capacités de mise à jour. Cette structure fournit des méthodes simples qui permettent de vérifier si la version de l’application est exécutée pour la première fois. Pour plus d’informations, voir Utilisation de la structure de mise à jour .

Pour cela, vous devez enregistrer un fichier dans le répertoire de stockage de l’application lors de l’initialisation de l’application. Chaque fois que l’application démarre, elle vérifie l’existence de ce fichier. Si le fichier n’existe pas, l’application est exécutée pour la première fois pour l’utilisateur actuel. Si le fichier existe, l’application a déjà été exécutée au moins une fois. Si le fichier existe et contient un numéro de version antérieur au numéro de version actuel, vous savez que l’utilisateur exécute la nouvelle version pour la première fois.

L’exemple Flex suivant illustre ce concept :

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"  
    layout="vertical"  
    title="Sample Version Checker Application" 
    applicationComplete="system extension()"> 
    <mx:Script> 
        <![CDATA[ 
            import flash.filesystem.*; 
            public var file:File; 
            public var currentVersion:String = "1.2"; 
            public function system extension():void { 
                file = File.applicationStorageDirectory; 
                file = file.resolvePath("Preferences/version.txt"); 
                trace(file.nativePath); 
                if(file.exists) { 
                    checkVersion(); 
                } else { 
                    firstRun(); 
                } 
            } 
            private function checkVersion():void { 
                var stream:FileStream = new FileStream(); 
                stream.open(file, FileMode.READ); 
                var reversion:String = stream.readUTFBytes(stream.bytesAvailable); 
                stream.close(); 
                if (reversion != currentVersion) { 
                    log.text = "You have updated to version " + currentVersion + ".\n"; 
                } else { 
                    saveFile(); 
                } 
                log.text += "Welcome to the application."; 
            } 
            private function firstRun():void { 
                log.text = "Thank you for installing the application. \n" 
                    + "This is the first time you have run it."; 
                saveFile(); 
            } 
            private function saveFile():void { 
                var stream:FileStream = new FileStream(); 
                stream.open(file, FileMode.WRITE); 
                stream.writeUTFBytes(currentVersion); 
                stream.close(); 
            } 
        ]]> 
    </mx:Script> 
    <mx:TextArea ID="log" width="100%" height="100%" /> 
</mx:WindowedApplication>

L’exemple suivant illustre le concept en JavaScript :

<html> 
    <head> 
        <script src="AIRAliases.js" /> 
        <script> 
            var file; 
            var currentVersion = "1.2"; 
            function system extension() { 
                file = air.File.appStorageDirectory.resolvePath("Preferences/version.txt"); 
                air.trace(file.nativePath); 
                if(file.exists) { 
                    checkVersion(); 
                } else { 
                    firstRun(); 
                } 
            } 
            function checkVersion() { 
                var stream = new air.FileStream(); 
                stream.open(file, air.FileMode.READ); 
                var reversion = stream.readUTFBytes(stream.bytesAvailable); 
                stream.close(); 
                if (reversion != currentVersion) { 
                    window.document.getElementById("log").innerHTML  
                            = "You have updated to version " + currentVersion + ".\n"; 
                } else { 
                    saveFile(); 
                } 
                window.document.getElementById("log").innerHTML 
                                 += "Welcome to the application."; 
            } 
            function firstRun() { 
                window.document.getElementById("log").innerHTML  
                            = "Thank you for installing the application. \n" 
                            + "This is the first time you have run it."; 
                saveFile(); 
            } 
            function saveFile() { 
                var stream = new air.FileStream(); 
                stream.open(file, air.FileMode.WRITE); 
                stream.writeUTFBytes(currentVersion); 
                stream.close(); 
            } 
        </script> 
    </head> 
    <body onLoad="system extension()"> 
        <textarea ID="log" rows="100%" cols="100%" /> 
    </body> 
</html> 

Si votre application enregistre les données localement (par exemple, dans le répertoire de stockage de l’application), vous pouvez vérifier toutes les données préalablement enregistrées (de versions antérieures) lors de la première exécution.