AIR.SWF, встроенный в браузер интерфейс API

Настройка файла непрерывной установки badge.swf

Помимо файла badge.swf, включенного в SDK, можно создать собственный SWF-файл для использования на странице в обозревателе. Этот SWF-файл может взаимодействовать с средой выполнения несколькими способами.

Для использования этих возможностей необходимо вызвать API-интерфейсы в SWF-файле на сайте adobe.com: air.swf. Можно настроить файл badge.swf и вызвать прикладные интерфейсы программирования air.swf из собственного SWF-файла.

Кроме того, SWF-файл, запущенный в обозревателе, может взаимодействовать с запущенным приложением AIR с помощью класса LocalConnection. Дополнительные сведения см. в разделе «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков ActionScript) или «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков HTML).

Важная информация. Функции, описанные в данном разделе (а также интерфейсы API в файле air.swf), требуют, чтобы в браузере конечного пользователя был установлен проигрыватель Adobe® Flash® 9 с обновлением 3 или более поздняя версия (в операционных системах Windows или Mac OS). В Linux для поддержки функции непрерывной установки требуется Adobe Flash Player 10 (не ниже версии 10.0.12.36). Можно написать код для проверки установленной версии Flash Player и создать интерфейс для случая, если необходимая версия не установлена. Например, если установлена более ранняя версия проигрывателя Flash Player, можно добавить ссылку для загрузки версии файла AIR (вместо использования файла badge.swf или API-интерфейса air.swf для установки приложения).

Установка приложения AIR с помощью файла badge.swf

Файл badge.swf включен в AIR SDK и Flex SDK, который позволяет легко использовать возможность автоматической установки. Файл badge.swf может установить среду выполнения и приложение AIR по ссылке с веб-страницы. Файл badge.swf и его исходный код предоставляются для распространения через веб-сайт.

Встраивание файла badge.swf на веб-страницу

  1. Найдите следующие файлы, находящиеся в каталоге samples/badge пакета AIR SDK или Flex SDK, а затем добавьте их к своему веб-серверу.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Откройте страницу default_badge.html в текстовом редакторе.

  3. На странице default_badge.html в функции JavaScript AC_FL_RunContent() настройте определение параметра FlashVars следующим образом:

    Параметр

    Описание

    appname

    Имя приложения, отображаемое в SWF-файле, если среда выполнения не установлена.

    appurl

    (Обязательное.) URL-адрес файла AIR для загрузки. Необходимо использовать абсолютный, а не относительный URL-адрес.

    airversion

    (Обязательное.) Для среды выполнения версии 1.0 укажите «1.0».

    imageurl

    URL-адрес изображения для значка (не обязательно).

    buttoncolor

    Цвет кнопки загрузки (задается в шестнадцатеричном формате, например FFCC00).

    messagecolor

    Цвет текстового сообщения, которое отображается под кнопкой, если среда выполнения не установлена (задается в шестнадцатеричном формате, например FFCC00).

  4. Минимальный размер файла badge.swf составляет 217 пикселов в ширину и 180 в высоту. Задайте нужные значения для параметров width и height функции AC_FL_RunContent().

  5. Переименуйте файл default_badge.html и измените его код в соответствии со своими требованиями (или включите его в другую HTML-страницу).

Примечание. Для тега HTML embed, который загружает файл badge.swf, не устанавливайте атрибут wmode; оставьте для него заданное по умолчанию значение ("window"). Другие значения атрибута wmode помешают установке в различных системах. Также установка других значений для wmode может приводить к ошибке: «Error #2044: Unhandled ErrorEvent:. text=Error #2074: The stage is too small to fit the download ui» («Ошибка №2044: необработанное событие ошибки:. text=Error #2074: рабочая область недостаточна для размещения пользовательского интерфейса загрузки».)

Также можно редактировать и перекомпилировать файл badge.swf. Сведения см. в разделе «Изменение файла badge.swf».

Установка приложения AIR с веб-страницы по ссылке для непрерывной установки

После добавления на страницу ссылки для непрерывной установки пользователь может установить приложение AIR, щелкнув по ссылке в SWF-файле.

  1. Перейдите на страницу HTML в веб-обозревателе, в котором установлен Adobe Flash Player (не ниже версии 9 с обновлением 3 в Windows или Mac OS или версии 10 в Linux).

  2. На веб-странице щелкните по ссылке в файле badge.swf.

    • Если среда выполнения уже установлена, пропустите этот шаг.

    • Если среда выполнения не установлена, отображается диалоговое окно, запрашивающее согласие на установку. Установите среду выполнения (см. раздел «Установка Adobe AIR») и переходите к следующему шагу.

  3. В окне установки оставьте все параметры по умолчанию и нажмите кнопку «Продолжить».

    В ОС Windows AIR автоматически выполняет следующее:

    • устанавливает приложение в папку С:\Program Files\

    • создает ярлык приложения на рабочем столе;

    • создает ярлык в меню «Пуск»;

    • записывает приложение в раздел панели управления «Установка и удаление программ»

    В Mac OS программа установки добавляет приложение в каталог программ (например, /Applications в Mac OS).

    На компьютере с ОС Linux AIR автоматически выполняет следующее:

    • Приложение устанавливается в каталог /opt.

    • создает ярлык приложения на рабочем столе;

    • создает ярлык в меню «Пуск»;

    • Добавляет для приложения запись в диспетчере пакетов системы

  4. Выберите нужные параметры и нажмите кнопку «Установить».

  5. После завершения установки нажмите кнопку «Готово».

Изменение файла badge.swf

Flex SDK и AIR SDK предоставляют исходные файлы для badge.swf. Эти файлы содержатся в папке samples/badge пакета SDK:

Исходные файлы

Описание

badge.fla

Исходный файл Flash для компиляции файла badge.swf. Файл badge.fla компилирует файл формата SWF 9 (для загрузки во Flash Player).

AIRBadge.as

Класс ActionScript 3.0, определяющий базовый класс, который используется в файле basdge.fla.

С помощью Flash Professional можно изменить дизайн графического интерфейса файла badge.fla.

Функция-конструктор AIRBadge(), заданная классом AIRBadge, загружает файл air.swf, размещенный по адресу http://airdownload.adobe.com/air/browserapi/air.swf. Файл air.swf содержит код для использования функции непрерывной установки.

Метод onInit() (в классе AIRBadge) вызывается при успешной загрузке файла air.swf:

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

Код задает глобальную переменную _air основному классу загруженного файла air.swf. Этот класс содержит ряд публичных методов, к которым обращается файл badge.swf для вызова функциональности непрерывной загрузки.

Метод

Описание

getStatus()

Определяет, установлена ли на компьютер среда выполнения (или может ли она быть установлена). Дополнительные сведения см. в разделе «Проверка наличия установленной среды выполнения».
  • runtimeVersion — строка, указывающая версию среды выполнения (например, «1.0.M6»), которая необходима для установки приложения.

installApplication()

Устанавливает указанное приложение на компьютер пользователя. Дополнительные сведения см. в разделе «Установка приложений AIR из обозревателя».

  • url — строка, задающая URL-адрес. Необходимо использовать абсолютный, а не относительный URL-адрес.

  • runtimeVersion — строка, указывающая версию среды выполнения (например, «2.5»), которая необходима для установки приложения.

  • arguments — аргументы, передаваемые приложению, если оно запускается после установки. Приложение запускается сразу после установки, если значение элемента allowBrowserInvocation равно true в файле дескриптора приложения. (Дополнительные сведения о файле дескриптора приложения см. в разделе «Файлы дескриптора приложения AIR».) Если приложение запускается в конце непрерывной установки из обозревателя (когда пользователь выбрал автоматический запуск после установки), объект приложения NativeApplication отправляет объект BrowserInvokeEvent, только если передаются какие-либо аргументы. Не забывайте об ограничениях безопасности, наложенных на данные, которые вы отправляете приложению. Дополнительные сведения см. в разделе «Запуск установленных приложений AIR из обозревателя».

Параметры url и runtimeVersion передаются в SWF-файл через параметры FlashVars в контейнере HTML-страницы.

Если приложение автоматически запускается после установки, то подключение LocalConnection можно использовать для связи установленного приложения с файлом badge.swf после его вызова. Дополнительные сведения см. в разделе «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков ActionScript) или «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков HTML).

Проверить, установлено ли приложение, можно и с помощью метода getApplicationVersion() в файле air.swf. Этот метод можно вызвать или до начала процесса установки приложения, или после его начала. Дополнительные сведения см. в разделе «Проверка наличия установленного AIR с веб-страницы».

Загрузка файла air.swf

Можно создать собственный SWF-файл, использующий API-интерфейсы файла air.swf для взаимодействия с средой выполнения и приложениями AIR со страницы в обозревателе. Файл air.swf расположен по адресу http://airdownload.adobe.com/air/browserapi/air.swf. Чтобы сослаться на API-интерфейсы файла air.swf из своего SWF-файла, загрузите файл air.swf на тот же домен, что и свой SWF-файл. В коде ниже показано, как загружать файл air.swf на тот же домен приложения, что и SWF-файл:

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

Как только загружается файл air.swf (объект contentLoaderInfo объекта Loader отправляет событие init), можно вызывать любые API-интерфейсы air.swf, описанные в следующих разделах.

Примечание. Файл badge.swf, поставляемый с AIR SDK и Flex SDK, автоматически загружает файл air.swf. См. раздел «Установка приложения AIR с помощью файла badge.swf». Инструкции в этом разделе применимы к созданию собственного SWF-файла, загружающего файл air.swf.

Проверка наличия установленной среды выполнения

SWF-файл может проверять, установлена ли среда выполнения. Для этого он вызывает метод getStatus( в файле air.swf, загружаемом с домена http://airdownload.adobe.com/air/browserapi/air.swf. Дополнительные сведения см. в разделе «Загрузка файла air.swf».

После загрузки файла air.swf ваш SWF-файл может вызывать его метод getStatus(), как показано ниже:

var status:String = airSWF.getStatus();

Метод getStatus() возвращает одно из показанных ниже строковых значений, в зависимости от состояния среды выполнения:

Строковое значение

Описание

"available"

Среда выполнения может быть установлена, но в настоящий момент не установлена на компьютер.

"unavailable"

Среда выполнения не может быть установлена на компьютер.

"installed"

Среда выполнения установлена на компьютер.

Метод getStatus() возвращает ошибку, если требуемая версия Adobe Flash Player (не ниже версии 9 с обновлением 3 в Windows и Mac OS или версия 10 в Linux) не установлена в обозревателе.

Проверка наличия установленного AIR с веб-страницы

SWF-файл может проверять, установлено ли приложение AIR (с совпадающими ID приложения и ID издателя), с помощью метода getApplicationVersion() в файле air.swf, загружаемом с http://airdownload.adobe.com/air/browserapi/air.swf. Дополнительные сведения см. в разделе «Загрузка файла air.swf».

После загрузки файла air.swf SWF-файл может вызывать его метод getApplicationVersion(), как показано ниже:

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

Для метода getApplicationVersiom() предусмотрены следующие параметры:

Параметры

Описание

appID

ID данного приложения. Дополнительные сведения см. в разделе «id».

pubID

ID издателя данного приложения. Дополнительные сведения см. в разделе «publisherID». Если в рассматриваемом приложении отсутствует идентификатор издателя, задайте для параметра pubID пустую строку ("").

callback

Функция обратного вызова, играющая роль функции-обработчика. Метод getApplicationVersion() работает асинхронно, он вызывается при обнаружении установленной версии (или ее отсутствии). Метод обратного вызова должен включать один параметр в виде строки, содержащей версию установленного приложения. Если приложение не установлено, то функции передается значение null, как показано в предыдущем примере.

Метод getApplicationVersion() возвращает ошибку, если требуемая версия Adobe Flash Player (не ниже версии 9 с обновлением 3 в Windows и Mac OS или версия 10 в Linux) не установлена в обозревателе.

Примечание. Начиная с версии AIR 1.5.3, идентификатор издателя не используется. Идентификаторы издателей больше не назначаются приложению автоматически. В целях обеспечения обратной совместимости в приложениях по-прежнему может использоваться идентификатор издателя.

Установка приложений AIR из обозревателя

SWF-файл может устанавливать приложение AIR, вызывая метод installApplication() в файле air.swf, загружаемом с http://airdownload.adobe.com/air/browserapi/air.swf. Дополнительные сведения см. в разделе «Загрузка файла air.swf».

После загрузки файла air.swf ваш SWF-файл может вызывать его метод installApplication(), как показано ниже:

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

Метод installApplication() устанавливает заданное приложение на компьютер пользователя. Ниже перечислены параметры этого метода:

Параметр

Описание

url

Строка, задающая URL-адрес устанавливаемого файла AIR. Необходимо использовать абсолютный, а не относительный URL-адрес.

runtimeVersion

Строка, указывающая версию среды выполнения (например, «1.0»), которая необходима для установки приложения.

arguments

Аргументы, передаваемые приложению, если оно запускается после установки. В аргументах распознаются только алфавитно-цифровые символы. Если требуется передать другие значения, рассмотрите возможность применения схемы кодирования.

Приложение запускается сразу после установки, если значение элемента allowBrowserInvocation равно true в файле дескриптора приложения. (Дополнительные сведения о файле дескриптора приложения см. в разделе «Файлы дескриптора приложения AIR».) Если приложение запускается в конце непрерывной установки из обозревателя (когда пользователь выбрал автоматический запуск после установки), объект приложения NativeApplication отправляет объект BrowserInvokeEvent только если были переданы какие-либо аргументы. Дополнительные сведения см. в разделе «Запуск установленных приложений AIR из обозревателя».

Метод installApplication() работает только при вызове в обработчике пользовательского события, например щелчка мыши.

Метод installApplication() возвращает ошибку, если требуемая версия Adobe Flash Player (не ниже версии 9 с обновлением 3 в Windows и Mac OS или версия 10 в Linux) не установлена в обозревателе.

В Mac OS для установки обновленной версии приложения пользователю требуются права, разрешающие установку в каталог приложений (и администраторские права, если требуется обновить среду выполнения). В Windows пользователю нужны права администратора.

Проверить, установлено ли приложение, можно и с помощью метода getApplicationVersion() файла air.swf. Этот метод можно вызвать или до начала процесса установки приложения, или после его начала. Дополнительные сведения см. в разделе «Проверка наличия установленного AIR с веб-страницы». Когда приложение уже запущено, оно может взаимодействовать с SWF-содержимым в обозревателе с помощью класса LocalConnection. Дополнительные сведения см. в разделе «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков ActionScript) или «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков HTML).

Запуск установленных приложений AIR из обозревателя

Для использования функции вызова из обозревателя (разрешающей запуск из обозревателя) в файл дескриптора целевого приложения необходимо включить следующий параметр:

<allowBrowserInvocation>true</allowBrowserInvocation>

Дополнительные сведения о файле дескриптора приложения см. в разделе «Файлы дескриптора приложения AIR».

SWF-файл может запускать в обозревателе приложение AIR, вызывая метод launchApplication() в файле air.swf, загружаемом с http://airdownload.adobe.com/air/browserapi/air.swf. Дополнительные сведения см. в разделе «Загрузка файла air.swf».

После загрузки файла air.swf ваш SWF-файл может вызывать его метод launchApplication(), как показано ниже:

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

Метод launchApplication() определен на верхнем уровне файла air.swf (загружаемого с домена приложения пользовательского интерфейса SWF-файла). Вызов этого метода заставляет AIR запускать указанное приложение (если оно установлено и разрешена функция запуска из обозревателя, что осуществляется с помощью параметра allowBrowserInvocation в файле дескриптора приложения). Ниже перечислены параметры этого метода:

Параметр

Описание

appID

ID запускаемого приложения. Дополнительные сведения см. в разделе «id».

pubID

ID издателя запускаемого приложения. Дополнительные сведения см. в разделе «publisherID». Если в рассматриваемом приложении отсутствует идентификатор издателя, задайте для параметра pubID пустую строку ("")

arguments

Массив аргументов, передаваемых приложению. Объект приложения NativeApplication отправляет событие BrowserInvokeEvent, свойство arguments которого указывает на этот массив. В аргументах распознаются только алфавитно-цифровые символы. Если требуется передать другие значения, рассмотрите возможность применения схемы кодирования.

Метод launchApplication() работает только при вызове в обработчике пользовательского события, например щелчка мыши.

Метод launchApplication() возвращает ошибку, если требуемая версия Adobe Flash Player (не ниже версии 9 с обновлением 3 в Windows и Mac OS или версия 10 в Linux) не установлена в обозревателе.

Если элемент allowBrowserInvocation имеет значение false в файле дескриптора приложения, вызов метода launchApplication() ни к чему не приведет.

Прежде чем выводить пользовательский интерфейс для запуска приложения, может потребоваться вызвать метод getApplicationVersion() в файле air.swf. Дополнительные сведения см. в разделе «Проверка наличия установленного AIR с веб-страницы».

Когда приложение вызывается с помощью функции вызова из обозревателя, его объект NativeApplication отправляет объект BrowserInvokeEvent. Дополнительные сведения см. в разделе «Вызов приложения AIR из обозревателя» (для разработчиков ActionScript) или «Вызов приложения AIR из обозревателя» (для разработчиков HTML).

Если используется функция вызова обозревателя, не забывайте об ограничениях безопасности. Эти·ограничения·описаны·в разделе «Вызов приложения AIR из обозревателя« (для разработчиков ActionScript) и «Вызов приложения AIR из обозревателя» (для разработчиков HTML).

Когда приложение уже запущено, оно может взаимодействовать с SWF-содержимым в обозревателе с помощью класса LocalConnection. Дополнительные сведения см. в разделе «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков ActionScript) или «Взаимодействие с другим экземплярами Flash Player и AIR» (для разработчиков HTML).

Примечание. Начиная с версии AIR 1.5.3, идентификатор издателя не используется. Идентификаторы издателей больше не назначаются приложению автоматически. В целях обеспечения обратной совместимости в приложениях по-прежнему может использоваться идентификатор издателя.