AIR.SWF API interne browser

Het bestand badge.swf voor naadloze installatie aanpassen

Naast het bestand badge.swf in de SDK kunt u ook zelf een SWF-bestand voor gebruik in een browserpagina maken. Uw aangepaste SWF-bestand kan op de volgende manieren interageren met de runtime:

Deze functies worden mogelijk gemaakt door het oproepen van API's in een SWF-bestand op adobe.com: air.swf. U kunt het bestand badge.swf aanpassen, zodat u de air.swf-API's kunt oproepen vanuit uw eigen SWF-bestand.

Een SWF-bestand dat in de browser wordt uitgevoerd, kan ook met een gestarte AIR-toepassing communiceren met behulp van de klasse LocalConnection. Zie Verbinding maken met andere instanties van Flash Player en AIR (voor ActionScript-ontwikkelaars) of Verbinding maken met andere instanties van Flash Player en AIR (voor HTML-ontwikkelaars) voor meer informatie.

Belangrijk: de functies die in dit deel worden beschreven (en de API's in het bestand air.swf), vereisen dat de eindgebruiker Adobe® Flash® Player 9 update 3 of een latere versie heeft geïnstalleerd in de webbrowser op Windows of Mac OS. Op Linux vereist de naadloze installatiefunctie Flash Player 10 (versie 10,0,12,36 of hoger). U kunt code schrijven om de geïnstalleerde versie van Flash Player te controleren en de gebruiker een alternatieve interface bieden als de vereiste versie van Flash Player niet is geïnstalleerd. Als er bijvoorbeeld een oudere versie van Flash Player is geïnstalleerd, kunt u een koppeling naar de downloadbare versie van het AIR-bestand opnemen (in plaats van het bestand badge.swf of de air.swf-API te gebruiken voor de installatie van de toepassing).

AIR-toepassingen installeren met het bestand badge.swf

In de SDK van AIR en de SDK van Flex is het bestand badge.swf opgenomen waarmee u de functie voor naadloze installatie eenvoudig kunt gebruiken. Met badge.swf kunt u de runtime en een AIR-toepassing installeren via een koppeling op een webpagina. Het bestand badge.swf en de broncode worden geleverd voor distributie op uw website.

Het bestand badge.swf insluiten in een webpagina

  1. Zoek de volgende bestanden in de map samples/badge van de SDK van AIR of de SDK van Flex en voeg deze toe aan uw webserver.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Open de pagina default_badge.html in een teksteditor.

  3. Pas in de pagina default_badge.html in de JavaScript-functie AC_FL_RunContent() de FlashVars -parameters als volgt aan:

    Parameter

    Beschrijving

    appname

    De naam van de toepassing. Deze wordt door het SWF-bestand weergegeven wanneer de runtime niet is geïnstalleerd.

    appurl

    (Vereist.) De URL van het AIR-bestand dat moet worden gedownload. U moet een absolute en geen relatieve URL opgeven.

    airversion

    (Vereist.) Voor versie 1.0 van de runtime stelt u deze in op 1.0.

    imageurl

    De URL van de afbeelding (optioneel) die wordt weergegeven in de badge.

    buttoncolor

    De kleur van de downloadknop (opgegeven als een hexadecimale waarde, zoals FFCC00 ).

    messagecolor

    De kleur van het tekstbericht dat onder de knop wordt weergegeven als de runtime niet is geïnstalleerd (opgegeven als een hexadecimale waarde, zoals FFCC00 ).

  4. De minimale grootte van het bestand badge.swf file is 217 pixels breed en 180 pixels hoog. Pas de waarden van de parameters width en height van de functie AC_FL_RunContent() aan uw wensen aan.

  5. Wijzig de naam van het bestand default_badge.html en pas de code aan uw wensen aan (of neem deze op in een andere HTML-pagina).

Opmerking: stel het kenmerk wmode niet in voor de HTML-tag embed waarmee het bestand badge.swf wordt geladen, maar laat de standaardinstelling ( "window" ) ongewijzigd. Met andere wmode -instellingen wordt installtie op bepaalde systemen voorkomen. Wanneer u andere wmode -instellingen gebruikt, leidt dit tot een fout: “Error #2044: Unhandled ErrorEvent:. text=Error #2074: The stage is too small to fit the download ui.”

U kunt het bestand badge.swf ook bewerken en opnieuw compileren. Zie Het bestand badge.swf wijzigen voor meer informatie.

AIR-toepassingen installeren via een koppeling voor naadloze installatie op een webpagina

Wanneer u de koppeling voor naadloze installatie aan een pagina hebt toegevoegd, kan de gebruiker de AIR-toepassing installeren door op de koppeling in het SWF-bestand te klikken.

  1. Navigeer naar de HTML-pagina in een webbrowser waarin Flash Player (versie 9 update 3 of hoger op Windows en Mac OS, of versie 10 op Linux) is geïnstalleerd.

  2. Klik op de webpagina op de koppeling in het bestand badge.swf.

    • Als u de runtime hebt geïnstalleerd, gaat u verder met de volgende stap.

    • Als u de runtime niet hebt geïnstalleerd, wordt een dialoogvenster geopend met de vraag of u deze wilt installeren. Installeer de runtime (zie Adobe AIR installeren ) en ga verder met de volgende stap.

  3. Laat de standaardinstellingen geselecteerd in het installatievenster en klik op Doorgaan.

    Op een Windows-computer voert AIR automatisch de volgende bewerkingen uit:

    • De toepassing wordt geïnstalleerd in C:\Program Files\.

    • Op het bureaublad wordt een snelkoppeling voor de toepassing gemaakt.

    • In het menu Start wordt een snelkoppeling gemaakt.

    • De toepassing wordt toegevoegd aan het onderdeel Software in het Configuratiescherm.

    In Mac OS wordt de toepassing toegevoegd aan de programmamap (bijvoorbeeld in de map /Applications in Mac OS).

    Op een Linux-computer voert AIR automatisch de volgende bewerkingen uit:

    • Installeert de toepassing in /opt.

    • Op het bureaublad wordt een snelkoppeling voor de toepassing gemaakt.

    • In het menu Start wordt een snelkoppeling gemaakt.

    • Voegt een item voor de toepassing toe in het systeempakketbeheer

  4. Selecteer de gewenste opties en klik op de knop Installeren.

  5. Klik op Voltooien wanneer de installatie is voltooid.

Het bestand badge.swf wijzigen

De Flex SDK en AIR SDK bieden de bronbestanden voor het bestand badge.swf. Deze bestanden zijn te vinden in de map samples/badge van de SDK:

Bronbestanden

Beschrijving

badge.fla

Het Flash -bronbestand om het bestand badge.swf te compileren. Het bestand badge.fla wordt gecompileerd naar een SWF 9-bestand (dat kan worden geladen in Flash Player).

AIRBadge.as

Een ActionScript 3.0-klasse waarin de klasse base is gedefinieerd die in het bestand badge.fla wordt gebruikt.

U kunt de visuele interface van het bestand badge.fla opnieuw ontwerpen met Flash Professional.

Met de constructorfunctie AIRBadge() , die in de klasse AIRBadge is gedefinieerd, laadt u het bestand air.swf dat zich bevindt op http://airdownload.adobe.com/air/browserapi/air.swf. Het bestand air.swf bevat code voor het gebruik van de functie voor naadloze installatie.

De methode onInit() (in de klasse AIRBadge) wordt opgeroepen nadat het bestand air.swf file is geladen:

private function onInit(e:Event):void { 
    _air = e.target.content; 
    switch (_air.getStatus()) { 
        case "installed" : 
            root.statusMessage.text = ""; 
            break; 
        case "available" : 
            if (_appName && _appName.length > 0) { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run " + _appName +  
                        ", this installer will also set up Adobe® AIR®.</font></p>"; 
            } else { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run this application, " 
                        + "this installer will also set up Adobe® AIR®.</font></p>"; 
            } 
            break; 
        case "unavailable" : 
            root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor  
                        + "'>Adobe® AIR® is not available for your system.</font></p>"; 
            root.buttonBg_mc.enabled = false; 
            break; 
    } 
}

Met de code wordt de globale variabele _air ingesteld op de hoofdklasse van het geladen bestand air.swf. In deze klasse zijn de volgende openbare methoden opgenomen, die in het bestand badge.swf worden gebruikt om de functionaliteit voor naadloze installatie op te roepen:

Methode

Beschrijving

getStatus()

Hiermee wordt bepaald of de runtime is geïnstalleerd (of kan worden geïnstalleerd) op de computer. Zie Controleren of de runtime is geïnstalleerd voor meer informatie.
  • runtimeVersion : een tekenreeks die de versie van de runtime bevat (bijvoorbeeld "1.0.M6" ) die is vereist voor de toepassing die wordt geïnstalleerd.

installApplication()

Hiermee wordt de opgegeven toepassing geïnstalleerd op de computer van de gebruiker. Zie AIR-toepassingen installeren vanuit de browser voor meer informatie.

  • url : een tekenreeks waarmee de URL wordt gedefinieerd. U moet een absoluut en geen relatief URL-pad opgeven.

  • runtimeVersion —Een tekenreeks die de runimteversie aangeeft (zoals "2.5" ) die wordt vereist door de te installeren toepassing.

  • arguments : argumenten die aan de toepassing worden doorgegeven als deze na de installatie wordt gestart. De toepassing wordt na de installatie gestart als het element allowBrowserInvocation op true is ingesteld in het descriptorbestand van de toepassing. (Zie AIR-toepassingsdescriptorbestanden voor meer informatie over het descriptorbestand van de toepassing.) Als de toepassing wordt gestart als gevolg van een naadloze installatie vanuit de browser (en de gebruiker de toepassing na de installatie start), verzendt het NativeApplication-object van de toepassing alleen een BrowserInvokeEvent-object als er argumenten zijn doorgegeven. Houd rekening met de gevolgen voor de beveiliging van gegevens die u aan de toepassing doorgeeft. Zie Geïnstalleerde AIR-toepassingen starten vanuit de browser voor meer informatie.

De instellingen voor url en runtimeVersion worden aan het SWF-bestand doorgegeven via de FlashVars-instellingen in de HTML-containerpagina.

Als de toepassing na de installatie automatisch wordt gestart, kunt u via communicatie met LocalConnection de geïnstalleerde toepassing bij het oproepen contact laten opnemen met het bestand badge.swf. Zie Verbinding maken met andere instanties van Flash Player en AIR (voor ActionScript-ontwikkelaars) of Verbinding maken met andere instanties van Flash Player en AIR (voor HTML-ontwikkelaars) voor meer informatie.

U kunt ook de methode getApplicationVersion() van het bestand air.swf oproepen om te controleren of een toepassing is geïnstalleerd. U kunt deze methode oproepen voordat de toepassing wordt geïnstalleerd of nadat de installatie is gestart. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie.

Het bestand air.swf laden

U kunt zelf een SWF-bestand maken waarin u de API's van het bestand air.swf gebruikt voor de interactie met de runtime en AIR-toepassingen vanuit een webpagina in een browser. Het bestand air.swf bevindt zich op http://airdownload.adobe.com/air/browserapi/air.swf. Als u vanuit uw SWF-bestand wilt verwijzen naar de API's van air.swf, laadt u het bestand air.swf in hetzelfde toepassingsdomein als uw SWF-bestand. In het volgende voorbeeld ziet u code voor het laden van het bestand air.swf in het toepassingsdomein van het SWF-bestand:

var airSWF:Object; // This is the reference to the main class of air.swf 
var airSWFLoader:Loader = new Loader(); // Used to load the SWF 
var loaderContext:LoaderContext = new LoaderContext();  
                                // Used to set the application domain  
 
loaderContext.applicationDomain = ApplicationDomain.currentDomain; 
 
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit); 
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),  
                    loaderContext); 
 
function onInit(e:Event):void  
{ 
    airSWF = e.target.content; 
}

Nadat het bestand air.swf is geladen (wanneer het contentLoaderInfo -object van het Loader-object de init -gebeurtenis verzendt), kunt u elke API van air.swf oproepen, zoals hieronder wordt beschreven.

Opmerking: met het bestand badge.swf, dat aanwezig is in de SDK van AIR en de SDK van Flex, wordt het bestand air.swf automatisch geladen. Zie AIR-toepassingen installeren met het bestand badge.swf . De instructies in deze sectie zijn van toepassing wanneer u zelf een SWF-bestand maakt waarmee het bestand air.swf wordt geladen.

Controleren of de runtime is geïnstalleerd

Een SWF-bestand kan controleren of de runtime is geïnstalleerd door de methode getStatus( ) op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie.

Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode getStatus( ) van het bestand air.swf als volgt oproepen:

var status:String = airSWF.getStatus();

De methode getStatus() retourneert een van de volgende tekenreekswaarden, afhankelijk van de status van de runtime op de computer:

Tekenreekswaarde

Beschrijving

"available"

De runtime kan op deze computer worden geïnstalleerd, maar is momenteel niet geïnstalleerd.

"unavailable"

De runtime kan niet op deze computer worden geïnstalleerd.

"installed"

De runtime is op deze computer geïnstalleerd.

De methode getStatus() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd.

Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd

Een SWF-bestand kan controleren of een AIR-toepassing (met een overeenkomstige toepassings-id en uitgevers-id) is geïnstalleerd door de methode getApplicationVersion( ) op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie.

Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode getApplicationVersion( ) van het bestand air.swf als volgt oproepen:

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
airSWF.getApplicationVersion(appID, pubID, versionDetectCallback); 
 
function versionDetectCallback(version:String):void 
{ 
    if (version == null) 
    { 
        trace("Not installed."); 
        // Take appropriate actions. For instance, present the user with 
        // an option to install the application. 
    } 
    else 
    { 
        trace("Version", version, "installed."); 
        // Take appropriate actions. For instance, enable the 
        // user interface to launch the application. 
    } 
}

De methode getApplicationVersion() heeft de volgende parameters:

Parameters

Beschrijving

appID

De toepassings-id voor de toepassing. Zie voor details id .

pubID

De uitgevers-id voor de toepassing. Zie publisherID voor meer informatie. Als de desbetreffende toepassing geen uitgevers-id heeft, stelt u de parameter pubID in als een lege tekenreeks (“”).

callback

Een callbackfunctie die optreedt als de handlerfunctie. De methode getApplicationVersion() werkt asynchroon en wanneer de geïnstalleerde versie is aangetroffen (of juist ontbreekt), wordt deze callbackmethode opgeroepen. In de definitie van de callbackmethode moet één parameter zijn opgenomen: een tekenreeks die de versie van de geïnstalleerde toepassing bevat. Als de toepassing niet is geïnstalleerd, wordt de waarde null doorgegeven aan de functie, zoals in het vorige codevoorbeeld.

De methode getApplicationVersion() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd.

Opmerking: vanaf AIR 1.5.3 is de uitgevers-id afgekeurd. Uitgevers-id's worden niet meer automatisch toegewezen aan een toepassing. Voor compatibiliteit met oudere versies kunnen toepassingen alsnog een uitgevers-id opgeven.

AIR-toepassingen installeren vanuit de browser

Een SWF-bestand kan een AIR-toepassing installeren door de methode installApplication( ) op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf . Zie Het bestand air.swf laden voor meer informatie.

Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode installApplication( ) van het bestand air.swf als volgt oproepen:

var url:String = "http://www.example.com/myApplication.air"; 
var runtimeVersion:String = "1.0"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.installApplication(url, runtimeVersion, arguments); 

Met de methode installApplication() wordt de opgegeven toepassing geïnstalleerd op de computer van de gebruiker. Deze methode heeft de volgende parameters:

Parameter

Beschrijving

url

Een tekenreeks die de URL bevat van het AIR-bestand dat wordt geïnstalleerd. U moet een absoluut en geen relatief URL-pad opgeven.

runtimeVersion

Een tekenreeks die de versie van de runtime bevat (bijvoorbeeld "1.0") die is vereist voor de toepassing die wordt geïnstalleerd.

arguments

Een array met argumenten die aan de toepassing worden doorgegeven als deze na de installatie wordt gestart. Alle alfanumerieke tekens worden in de argumenten herkend. Als u andere waarden moet doorgeven, kunt u het gebruik van een coderingsschema overwegen.

De toepassing wordt na de installatie gestart als het element allowBrowserInvocation op true is ingesteld in het descriptorbestand van de toepassing. (Zie AIR-toepassingsdescriptorbestanden voor meer informatie over het descriptorbestand van de toepassing.) Als de toepassing wordt gestart als gevolg van een naadloze installatie vanuit de browser (en de gebruiker de toepassing na de installatie start), verzendt het NativeApplication-object van de toepassing alleen een BrowserInvokeEvent-object als er argumenten zijn doorgegeven. Zie Geïnstalleerde AIR-toepassingen starten vanuit de browser voor meer informatie.

De methode installApplication() werkt alleen wanneer deze wordt opgeroepen in de gebeurtenishandler voor een gebruikersgebeurtenis, zoals een muisklik.

De methode installApplication() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd.

Als een gebruiker in Mac OS een recentere versie van een toepassing wil installeren, moet de gebruiker over voldoende toegangsrechten beschikken om te installeren in de toepassingsmap (en over beheerdersrechten als de toepassing de runtime bijwerkt). In Windows moet de gebruiker over beheerdersrechten beschikken.

U kunt ook de methode getApplicationVersion() van het bestand air.swf oproepen om te controleren of een toepassing al is geïnstalleerd. U kunt deze methode oproepen voordat het installatieproces van de toepassing begint of nadat de installatie is gestart. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie. Wanneer de toepassing is gestart, kan deze met de SWF-inhoud in de browser communiceren via de klasse LocalConnection. Zie Verbinding maken met andere instanties van Flash Player en AIR (voor ActionScript-ontwikkelaars) of Communicating with other Flash Player and AIR instances (voor HTML-ontwikkelaars) voor meer informatie.

Geïnstalleerde AIR-toepassingen starten vanuit de browser

Als u de browseroproepfunctie wilt gebruiken (zodat een toepassing kan worden gestart vanuit de browser), moet in het descriptorbestand van de doeltoepassing de volgende instelling zijn opgenomen:

<allowBrowserInvocation>true</allowBrowserInvocation>

(Zie AIR-toepassingsdescriptorbestanden voor meer informatie over het descriptorbestand van de toepassing.)

Een SWF-bestand in de browser kan een AIR-toepassing starten door de methode launchApplication( ) op te roepen in het bestand air.swf dat is geladen vanaf http://airdownload.adobe.com/air/browserapi/air.swf. Zie Het bestand air.swf laden voor meer informatie.

Nadat het bestand air.swf is geladen, kunt u vanuit het SWF-bestand de methode launchApplication( ) van het bestand air.swf als volgt oproepen:

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.launchApplication(appID, pubID, arguments);

De methode launchApplication() is gedefinieerd op het hoogste niveau van het bestand air.swf (dat is geladen in het toepassingsdomein van het SWF-bestand van de gebruikersinterface). Als u deze methode oproept, wordt de opgegeven toepassing gestart (als deze is geïnstalleerd en oproepen via de browser is toegestaan via de instelling van allowBrowserInvocation in het descriptorbestand van de toepassing). De methode heeft de volgende parameters:

Parameter

Beschrijving

appID

De toepassings-id voor de toepassing die moet worden gestart. Zie voor details id .

pubID

De uitgevers-id voor de toepassing die moet worden gestart. Zie voor details publisherID . Als de desbetreffende toepassing geen uitgevers-id heeft, stelt u de parameter pubID in als een lege tekenreeks (“”)

arguments

Een array met argumenten die worden doorgegeven aan de toepassing. Het NativeApplication-object van de toepassing verzendt een BrowserInvokeEvent-gebeurtenis waarvoor de eigenschap arguments is ingesteld op deze array. Alle alfanumerieke tekens worden in de argumenten herkend. Als u andere waarden moet doorgeven, kunt u het gebruik van een coderingsschema overwegen.

De methode launchApplication() werkt alleen wanneer deze wordt opgeroepen in de gebeurtenishandler voor een gebruikersgebeurtenis, zoals een muisklik.

De methode launchApplication() meldt een fout als de vereiste versie van Flash Player (versie 9 upgrade 3 op Windows en Mac OS, of versie 10 op Linux) niet in de browser is geïnstalleerd.

Als het element allowBrowserInvocation op false is ingesteld in het descriptorbestand van de toepassing, heeft het oproepen van de methode launchApplication() geen effect.

Voordat u de gebruikersinterface weergeeft om de toepassing te starten, kunt u het best de methode getApplicationVersion( ) in het bestand air.swf oproepen. Zie Vanuit een webpagina controleren of een AIR-toepassing is geïnstalleerd voor meer informatie.

Wanneer de toepassing wordt opgeroepen via de browseroproepfunctie, verzendt het NativeApplication-object van de toepassing een BrowserInvokeEvent-object. Zie AIR-toepassingen aanroepen vanuit de browser (voor ActionScript-ontwikkelaars) of Invoking an AIR application from the browser (voor HTML-ontwikkelaars) voor meer informatie.

Als u de browseroproepfunctie gebruikt, moet u rekening houden met de gevolgen voor de beveiliging. Deze gevolgen worden beschreven in AIR-toepassingen aanroepen vanuit de browser (voor ActionScript-ontwikkelaars) en Invoking an AIR application from the browser (voor HTML-ontwikkelaars).

Wanneer de toepassing is gestart, kan deze met de SWF-inhoud in de browser communiceren via de klasse LocalConnection. Zie Verbinding maken met andere instanties van Flash Player en AIR (voor ActionScript-ontwikkelaars) of Communicating with other Flash Player and AIR instances (voor HTML-ontwikkelaars) voor meer informatie.

Opmerking: vanaf AIR 1.5.3 is de uitgevers-id afgekeurd. Uitgevers-id's worden niet meer automatisch toegewezen aan een toepassing. Voor compatibiliteit met oudere versies kunnen toepassingen alsnog een uitgevers-id opgeven.