Webbläsar-API:er i AIR.SWF

Anpassa badge.swf för sömlös installation

Förutom att använda filen badge.swf som ingår i SDK kan du skapa en egen SWF-fil och använda den i en webbläsare. Den egna SWF-filen kan samverka med körningsversionen på följande sätt:

Du får tillgång till dessa funktioner genom att anropa API:er i en SWF-fil som finns på adobe.com: air.swf. Du kan anpassa filen badge.swf och anropa API:er för air.swf från din egen SWF-fil.

En SWF-fil som körs i webbläsaren kan dessutom kommunicera med ett AIR-program som körs genom att använda klassen LocalConnection. Mer information finns i Kommunicera med andra Flash Player- och AIR-instanser (för ActionScript-utvecklare) eller Communicating with other Flash Player and AIR instances (för HTML-utvecklare).

Viktigt! Funktionerna som beskrivs i det här avsnittet (och API:erna i filen air.swf) kräver att Adobe® Flash® Player 9 uppdatering 3 eller senare är installerat i slutanvändarens webbläsare på Windows eller Mac OS. I Linux krävs Flash Player 10 (version 10.0.12.36 eller senare) för sömlös installation. Du kan skriva kod om du vill kontrollera den installerade versionen av Flash Player och skapa ett alternativt gränssnitt till användaren om den version av Flash Player som krävs inte är installerad. Om till exempel en äldre version av Flash Player är installerad, kan du skapa en länk till hämtningsversionen av AIR-filen (i stället för att använda filen badge.swf eller API:n för air.swf för att installera ett program).

Installera ett AIR-program med filen badge.swf

I AIR SDK och Flex SDK finns filen badge.swf som gör det enklare att använda funktionen för sömlös installation. Filen badge.swf kan installera körningsversionen och ett AIR-program från en länk på en webbsida. Du kan distribuera filen badge.swf och dess källkod på din webbplats.

Bädda in filen badge.swf på en webbsida

  1. Leta reda på följande filer, som finns i katalogen samples/badge i AIR SDK eller Flex SDK, och lägg till dem på webbservern.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Öppna sidan default_badge.html i en textredigerare.

  3. Gå till sidan default_badge.html och JavaScript-funktionen AC_FL_RunContent() , och justera FlashVars -parameterdefinitionerna för följande:

    Parameter

    Beskrivning

    appname

    Namnet på programmet, som visas av SWF-filen när körningsversionen inte är installerad.

    appurl

    (Obligatoriskt.) URL:en till AIR-filen som hämtas. Du måste använda en absolut URL, inte en relativ.

    airversion

    (Obligatoriskt.) Ställ in detta på 1.0 för version 1.0 av körningsversionen.

    imageurl

    URL:en till bilden som ska visas i emblemet (valfritt).

    buttoncolor

    Färgen på hämtningsknappen (anges som ett hexadecimalt värde, till exempel FFCC00 ).

    messagecolor

    Färgen på textmeddelandet som ska visas under knappen när körningsversionen inte är installerad (anges som ett hexadecimalt värde, till exempel FFCC00 ).

  4. Filen badge.swf måste vara minst 217 pixlar bred och 180 pixlar hög. Justera värdena för parametrarna width och height för funktionen AC_FL_RunContent() efter behov.

  5. Byt namn på filen default_badge.html och justera koden (eller infoga den på en annan HTML-sida) efter eget behov.

Obs! För HTML-taggen embed , som används för att läsa in filen badge.swf, ska du inte ställa in attributet wmode , utan låta den behålla standardinställningen ( "window" ). Andra wmode -inställningar kommer att förhindra installationen i vissa system. Dessutom kommer andra wmode -inställningar att generera ett felmeddelande: "Error #2044: Unhandled ErrorEvent:. text=Error #2074: The stage is too small to fit the download ui.”

Du kan också redigera och kompilera om filen badge.swf. Mer information finns i Redigera filen badge.swf .

Installera AIR-programmet från en sömlös installationslänk på en webbsida

När du har lagt till den sömlösa installationslänken på en sida, kan användaren installera AIR-programmet genom att klicka på länken i SWF-filen.

  1. Gå till HTML-sidan i en webbläsare som har Flash Player (version 9 uppdatering 3 eller senare i Windows och Mac OS, eller version 10 i Linux) installerat.

  2. Klicka på länken i filen badge.swf på webbsidan.

    • Om du har installerat körningsversionen går du vidare till nästa steg.

    • Om du inte har installerat körningsversionen visas en dialogruta med en fråga om du vill installera den. Installera körningsversionen (se Installation av Adobe AIR ) och fortsätt med nästa steg.

  3. Låt standardinställningarna vara markerade i installationsfönstret och klicka sedan på Fortsätt.

    På en Windows-dator gör AIR följande automatiskt:

    • Installerar programmet i c:\Program\

    • Skapar en genväg till programmet på skrivbordet

    • Skapar en genväg på Start-menyn

    • Lägger till en post för programmet i Lägg till/ta bort program på Kontrollpanelen

    I Mac OS lägger installationsprogrammet till programmet i katalogen Applications (till exempel i katalogen /Applications i Mac OS).

    På en Linux-dator gör AIR följande automatiskt:

    • Installerar programmet i /opt.

    • Skapar en genväg till programmet på skrivbordet

    • Skapar en genväg på Start-menyn

    • Lägger till en post för programmet i systemets pakethanterare.

  4. Välj önskade alternativ och klicka på Installera.

  5. Klicka på Slutför när installationen är klar.

Redigera filen badge.swf

Flex SDK och AIR SDK innehåller källfilerna för filen badge.swf. Dessa filer finns i mappen samples/badge i SDK-paketet:

Källfiler

Beskrivning

badge.fla

Flash -källfilen som används för att kompilera filen badge.swf. Filen badge.fla kompileras till en SWF 9-fil (som kan läsas in i Flash Player).

AIRBadge.as

En ActionScript 3.0-klass som definierar basklassen som används i filen basdge.fla.

Du kan använda Flash Professional om du vill designa om det visuella gränssnittet för filen badge.fla.

Konstruktorfunktionen AIRBadge() , som definieras i klassen AIRBadge, läser in filen air.swf som finns på http://airdownload.adobe.com/air/browserapi/air.swf. Filen air.swf innehåller kod för funktionen för sömlös installation.

Metoden onInit() (i klassen AIRBadge) anropas när filen air.swf har lästs in:

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; 
    } 
}

Koden ställer in den globala _air -variabeln på huvudklassen för den inlästa air.swf-filen. Den här klassen omfattar följande offentliga metoder, som badge.swf använder för att anropa funktionen för sömlös installation

Metod

Beskrivning

getStatus()

Tar reda på om körningsversionen är installerad (eller kan installeras) på datorn. Mer information finns i Kontrollera om körningsversionen är installerad .
  • runtimeVersion – En sträng som anger vilken version av miljön (till exempel "1.0.M6" ) som krävs för det program som ska installeras.

installApplication()

Installerar angivet program på användarens dator. Mer information finns i Installera ett AIR-program från webbläsaren .

  • url – En sträng som definierar URL:en. Du måste använda en absolut URL-sökväg, inte en relativ.

  • runtimeVersion – En sträng som anger vilken version av miljön (till exempel "2.5" ) som krävs för det program som ska installeras.

  • arguments – Argument som ska skickas till programmet om det startar vid installationen. Programmet startar vid installationen om elementet allowBrowserInvocation ställs in på true i programbeskrivningsfilen. (Mer information om programbeskrivningsfilen finns i AIR-programbeskrivningsfiler .) Om programmet startar med anledning av en sömlös installation från webbläsaren (där användaren väljer att starta vid installation), skickar programmets NativeApplication-objekt ett BrowserInvokeEvent-objekt bara om argument skickas. Ta hänsyn till datasäkerheten när du skickar programmet. Mer information finns i Starta ett installerat AIR-program från webbläsaren .

Inställningarna för url och runtimeVersion skickas till SWF-filen via FlashVars-inställningarna i HTML-sidan som fungerar som behållare.

Om programmet startar automatiskt vid installationen kan du använda LocalConnection-kommunikation så att det installerade programmet kontaktar filen badge.swf vid ett anrop. Mer information finns i Kommunicera med andra Flash Player- och AIR-instanser (för ActionScript-utvecklare) eller Communicating with other Flash Player and AIR instances (för HTML-utvecklare).

Du kan också anropa metoden getApplicationVersion() för filen air.swf om du vill kontrollera om ett program är installerat. Du kan anropa den här metoden innan programmet installeras eller efter att installationen har startat. Mer information finns i Kontrollera från en webbsida om ett AIR-program är installerat .

Läsa in filen air.swf

Du kan skapa en egen SWF-fil som använder API:erna i filen air.swf om du vill samverka med körnings- och AIR-programmen från en webbsida i en webbläsare. Filen air.swf finns på http://airdownload.adobe.com/air/browserapi/air.swf. Om du vill referera till API:erna för air.swf från SWF-filen läser du in air.swf till samma programdomän som SWF-filen. I följande kod visas ett exempel på hur filen air.swf läses in i programdomänen när SWF-filen läses in:

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; 
}

När filen air.swf har lästs in (när Loader-objektets contentLoaderInfo -objekt skickar händelsen init ), kan du anropa någon av API:erna för air.swf, vilket beskrivs i nedanstående avsnitt.

Obs! Filen badge.swf, som finns i AIR SDK och i Flex SDK, läser automatiskt in filen air.swf. Se Installera ett AIR-program med filen badge.swf . Instruktionerna i det här avsnittet gäller bara när du skapar en egen SWF-fil som läser in filen air.swf.

Kontrollera om körningsversionen är installerad

En SWF-fil kan kontrollera om körningsversionen är installerad genom att anropa metoden getStatus( ) i filen air.swf som läses in från http://airdownload.adobe.com/air/browserapi/air.swf. Mer information finns i Läsa in filen air.swf .

När filen air.swf har lästs in kan SWF-filen anropa air.swf-filens getStatus( )-metod så här:

var status:String = airSWF.getStatus();

Metoden getStatus() returnerar ett av följande strängvärden, baserat på statusen för körningsversionen på datorn:

Strängvärde

Beskrivning

"available"

Körningsversionen kan installeras på den här datorn men är för närvarande inte installerad.

"unavailable"

Körningsversionen kan inte installeras på den här datorn.

"installed"

Körningsversionen är installerad på den här datorn.

getStatus() -metoden returnerar ett fel om den obligatoriska versionen av Flash Player (version 9 uppdatering 3 eller senare i Windows och Mac OS, eller version 10 i Linux) inte är installerad i webbläsaren.

Kontrollera från en webbsida om ett AIR-program är installerat

En SWF-fil kan kontrollera om ett AIR-program (med matchande program-ID och utgivar-ID) är installerat genom att anropa metoden getApplicationVersion( ) i filen air.swf som läses in från http://airdownload.adobe.com/air/browserapi/air.swf. Mer information finns i Läsa in filen air.swf .

När filen air.swf har lästs in kan SWF-filen anropa air.swf-filens getApplicationVersion( )-metod så här:

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. 
    } 
}

Metoden getApplicationVersion() har följande parametrar:

Parametrar

Beskrivning

appID

Program-ID:t för programmet. Mer information finns i id .

pubID

Utgivar-ID:t för programmet. Mer information finns i publisherID . Om programmet i fråga inte har ett utgivar-ID anger du en tom sträng (“”) som parametern pubID .

callback

En callback-funktion som fungerar som hanterarfunktion. Metoden getApplicationVersion() arbetar asynkront, och när den installerade versionen identifieras (eller om det inte finns någon installerad version), anropas den här callback-metoden. Callback-metodens definition måste innehålla en parameter, en sträng, som ställs in på versionssträngen för det installerade programmet. Om programmet inte är installerat, skickas ett null-värde till funktionen, vilket visas i föregående kodexempel.

getApplicationVersion() -metoden returnerar ett fel om den obligatoriska versionen av Flash Player (version 9 uppdatering 3 eller senare i Windows och Mac OS, eller version 10 i Linux) inte är installerad i webbläsaren.

Obs! Från och med AIR 1.5.3 används inte utgivar-ID längre. Utgivar-ID tilldelas inte längre automatiskt till ett program. För bakåtkompatibilitet kan program fortsätta att ange ett utgivar-ID.

Installera ett AIR-program från webbläsaren

En SWF-fil kan installera ett AIR-program genom att anropa metoden installApplication( ) i filen air.swf som läses in från http://airdownload.adobe.com/air/browserapi/air.swf . Mer information finns i Läsa in filen air.swf .

När filen air.swf har lästs in kan SWF-filen anropa air.swf-filens installApplication( )-metod så här:

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

Metoden installApplication() installerar angivet program på användarens dator. Den här metoden har följande parametrar:

Parameter

Beskrivning

url

En sträng som definierar URL:en för AIR-filen som ska installeras. Du måste använda en absolut URL-sökväg, inte en relativ.

runtimeVersion

En sträng som anger vilken körningsversion (till exempel ”1.0”) som krävs för programmet som installeras.

argument

En array med argument som ska skickas till programmet om det startar vid installationen. Endast alfanumeriska tecken kan identifieras i argumenten. Om du vill överföra andra värden bör du använda ett annat kodningsschema.

Programmet startar vid installationen om elementet allowBrowserInvocation ställs in på true i programbeskrivningsfilen. (Mer information om programbeskrivningsfilen finns i AIR-programbeskrivningsfiler .) Om programmet startar på grund av en sömlös installation från webbläsaren (där användaren väljer att starta vid installation), skickar programmets NativeApplication-objekt ett BrowserInvokeEvent-objekt bara om argument skickas. Mer information finns i Starta ett installerat AIR-program från webbläsaren .

Metoden installApplication() fungerar bara när den anropas i händelsehanteraren för en användarhändelse, till exempel ett musklick.

installApplication() -metoden returnerar ett fel om den obligatoriska versionen av Flash Player (version 9 uppdatering 3 eller senare i Windows och Mac OS, eller version 10 i Linux) inte är installerad i webbläsaren.

För att installera en uppdaterad version av ett program i Mac OS måste användaren ha tillräcklig behörighet för att installera i programkatalogen (och administrativa behörigheter om programmet uppdaterar körningsversionen). I Windows måste en användare ha administrativ behörighet.

Du kan också anropa metoden getApplicationVersion() för filen air.swf om du vill kontrollera om ett program redan är installerat. Du kan anropa den här metoden innan programmet börjar installeras eller efter att installationen har startat. Mer information finns i Kontrollera från en webbsida om ett AIR-program är installerat . När programmet körs kan det kommunicera med SWF-innehållet i webbläsaren genom att använda klassen LocalConnection. Mer information finns i Kommunicera med andra Flash Player- och AIR-instanser (för ActionScript-utvecklare) eller Communicating with other Flash Player and AIR instances (för HTML-utvecklare).

Starta ett installerat AIR-program från webbläsaren

Om du vill använda funktionen för webbläsaranrop (så att programmet kan startas från webbläsaren) måste programbeskrivningsfilen för målprogrammet innehålla följande sträng:

<allowBrowserInvocation>true</allowBrowserInvocation>

Mer information om programbeskrivningsfilen finns i AIR-programbeskrivningsfiler .

En SWF-fil i webbläsaren kan starta ett AIR-program genom att anropa metoden launchApplication( ) i filen air.swf som läses in från http://airdownload.adobe.com/air/browserapi/air.swf. Mer information finns i Läsa in filen air.swf .

När filen air.swf har lästs in kan SWF-filen anropa air.swf-filens launchApplication( )-metod så här:

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

Metoden launchApplication() definieras på den översta nivån i filen air.swf (som läses in i programdomänen för användargränssnittets SWF-fil). När den här metoden anropas startar AIR angivet program (om det är installerat och webbläsaranrop tillåts, via inställningen allowBrowserInvocation i programbeskrivningsfilen). Metoden har följande parametrar:

Parameter

Beskrivning

appID

Program-ID:t för programmet som ska starta. Mer information finns i id .

pubID

Utgivar-ID:t för programmet som ska starta. Mer information finns i publisherID . Om programmet i fråga inte har ett utgivar-ID anger du en tom sträng (“”) som parametern pubID .

argument

En array med argument som ska skickas till programmet. Objektet NativeApplication för programmet skickar en BrowserInvokeEvent-händelse som har egenskapen arguments inställd på den här arrayen. Endast alfanumeriska tecken kan identifieras i argumenten. Om du vill överföra andra värden bör du använda ett annat kodningsschema.

Metoden launchApplication() fungerar bara när den anropas i händelsehanteraren för en användarhändelse, till exempel ett musklick.

launchApplication() -metoden returnerar ett fel om den obligatoriska versionen av Flash Player (version 9 uppdatering 3 eller senare i Windows och Mac OS, eller version 10 i Linux) inte är installerad i webbläsaren.

Om elementet allowBrowserInvocation ställs in på false i programbeskrivningsfilen har ett anrop till metoden launchApplication() ingen effekt.

Innan användargränssnittet som startar programmet visas, kanske du vill anropa metoden getApplicationVersion( ) i filen air.swf. Mer information finns i Kontrollera från en webbsida om ett AIR-program är installerat .

När programmet anropas via funktionen för webbläsaranrop skickar programmets NativeApplication-objekt ett BrowserInvokeEvent-objekt. Mer information finns i Anropa ett AIR-program från webbläsaren (för ActionScript-utvecklare) eller Invoking an AIR application from the browser (för HTML-utvecklare).

Om du använder funktionen för webbläsaranrop måste du tänka på säkerheten. Dessa konsekvenser beskrivs i Anropa ett AIR-program från webbläsaren (for ActionScript developers) och Invoking an AIR application from the browser (för HTML-utvecklare).

När programmet körs kan det kommunicera med SWF-innehållet i webbläsaren genom att använda klassen LocalConnection. Mer information finns i Kommunicera med andra Flash Player- och AIR-instanser (för ActionScript-utvecklare) eller Communicating with other Flash Player and AIR instances (för HTML-utvecklare).

Obs! Från och med AIR 1.5.3 används inte utgivar-ID längre. Utgivar-ID tilldelas inte längre automatiskt till ett program. För bakåtkompatibilitet kan program fortsätta att ange ett utgivar-ID.