Controleren of een toepassing voor de eerste keer wordt uitgevoerd

Wanneer u eenmaal een toepassing hebt bijgewerkt, kunt u desgewenst een informatief bericht of een welkomstbericht voor de gebruiker weergeven. Wanneer de toepassing wordt gestart, controleert de toepassing of deze voor het eerst wordt uitgevoerd, om te bepalen of het bericht moet worden weergegeven.

Opmerking: AIR 1.5 is voorzien van een updateframework waarmee ontwikkelaars goede updatemogelijkheden kunnen inbouwen in AIR-toepassingen. Dit framework biedt gemakkelijke methoden om te controleren of een versie van een toepassing voor de eerste keer wordt uitgevoerd. Raadpleeg Het updateframework gebruiken voor meer informatie.

Deze controle kan onder andere worden uitgevoerd als u een bestand in de opslagmap van de toepassing opslaat bij het initialiseren van de toepassing. Telkens wanneer de toepassing wordt opgestart, controleert de toepassing of dat bestand bestaat. Als het bestand niet bestaat, wordt de toepassing voor de eerste keer uitgevoerd voor de huidige gebruiker. Als het bestand bestaat, is de toepassing al ten minste één keer uitgevoerd. Als het bestand bestaat maar een versienummer bevat dat ouder is dan het huidige versienummer, weet u dat de gebruiker de nieuwe versie voor de eerste keer uitvoert.

In het volgende Flex-voorbeeld ziet u het 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>

In het volgende voorbeeld wordt het concept gedemonstreerd in 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> 

Als uw toepassing gegevens lokaal opslaat (bijvoorbeeld in de opslagmap van de toepassing), wordt u aangeraden te controleren of er eerder opgeslagen gegevens (van vorige versies) aanwezig zijn wanneer de toepassing voor het eerst wordt uitgevoerd.