Создание ускорителей приложений для веб-браузера
В IE8 ускорители представляют собой элементы контекстного меню, которые упрощают доступ к приложениям и веб-сервисам непосредственно с веб-страницы. Также ускорители упрощают копирование информации с одной веб-страницы на другую.
Можно выделить следующие ключевые моменты при работе с ускорителями:
- Ускорители доступны по клику правой кнопки в виде соответствующего элемента веб-страницы. Все ускорители сгруппированы по функциям таким образом, что пользователи могут получить быстрый доступ к нужным им приложениям.
- Ускорители предусматривают два типа сценариев: пользователи могут либо просмотреть информацию в эскизном варианте (preview), не покидая веб-страницу, либо переслать содержимое напрямую приложению или веб-сервису ( execute ).
- Основанный на XML ускоритель использует XML файл для описания формата HTTP -запросов к веб-серверу. Данные из целевого контента (выделение, ссылка, документ) передаются как переменные либо как параметры, входящие в URL, либо как формоподобные данные.
- Для установки ускорителя с веб-сайта можно использовать метод window.external.AddService для формирования запроса к пользователю.
Internet Explorer 8 позволяет устанавливать ускорители, размещенные на специальных веб-страницах, например, http://www.ieaddons.com/ru/ или http://ie8.mail.ru/addons.html, либо созданные самостоятельно.
При самостоятельном создании ускорителя браузера необходимо создать XML файл в соответствии со спецификацией OpenService Format Specification for Accelerators (http://msdn.microsoft.com/en-us/library/cc304163(VS.85).aspx). Этот файл должен размещать не в локальной системе, а на веб-сервере. Для установки ускорителя следует также добавить кнопку "Установить ускоритель", связанную с вызовом метода AddService.
Если веб-страница включает в себя содержимое, доступное для ускорителей, то при наведении на него курсора у верхнего левого угла должна появиться иконка:. Кликнув на ней, можно получить контекстное меню со списком доступных ускорителей.
К наиболее распространенным можно отнести следующие группы ускорителей:
- Добавить ( Add )
- Разместить в блоге ( Blog )
- Дать определение ( Define )
- Пометить на карте ( Map )
- Отправить ( Send )
- Перевести ( Translate )
Данный список является расширяемым, и при желании в него можно добавлять собственные категории.
Переменные
Для передачи содержимого и свойств документа ускорителю по протоколу HTTP с помощью методов GET или POST используются специальные переменные в виде полей форм или как URL параметры. Эти переменные могут быть указаны либо прямо в виде значения атрибута элемента os:execute или os:preview, либо в виде вложенных внутри os:parameter элементов.
В качестве таких переменных можно использовать следующие:
Переменные не доступны при просмотре эскиза вне контекста документа.
Также следует иметь в виду, что:
- имена переменных должны заключаться в скобках {};.
- символ "?" после имени переменной указывает на необязательность этой переменной, например, {documentTitle?} .
- если какая-либо обязательная переменная в URL недоступна, то ускоритель не может быть запущен (при этом он будет выделен в контекстном меню серым цветом).
- если какой-либо os:parameter элемент имеет пустое значение, то он будет пропущен в запросе.
Параметры в URL
В случае передаче запроса методом GET все параметры передаются внутри URL (сразу за символом "?"). При использовании элемента os:parameter, параметры в URL использоваться не будут.
Пример.
<os:execute method="get" action="http://example.com/service.aspx?url= {documentUrl}&title={documentTitle?}" />
Формоподобные данные
В случае передаче запроса методом POST с помощью элементов os:parameter описываются пары name/value как у веб-формы, например:
<os:execute method="post" action="http://example.com/service.aspx> <os:parameter name="url" value="{documentUrl}" /> <os:parameter name="title" value="{documentTitle?}" /> </os:execute>
При отсутствии значения обязательного параметра, последний удаляется из запроса.
Порядок выполнения работы.
Для выполнения данной лабораторной работы необходимо иметь установленный веб-сервер IIS 7.
Задание 1. Создание XML -дескриптора ускорителя.
- Для выполнения данного задания необходимо с помощью Visual Web Developer 2008 Express (запускается от имени Администратора) создать веб-сайт, например http://localhost/Accelerator/ .
-
Далее, с помощью комбинации клавиш <CTRl+N> (или через меню File > New File ) создайте XML страницу activity.xml следующего содержания:
<?xml version="1.0" encoding="UTF-8"?> <os:openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0"> <os:homepageUrl>http://localhost/Accelerator/</os:homepageUrl> <os:display> <os:name>Детализация</os:name> <os:icon>http://localhost/Accelerator/accelico.ico</os:icon> <os:description>Быстрая справка по секциям</os:description> </os:display> <os:activity category="Define"> <os:activityAction context="selection"> <os:preview action="http://localhost/php/phpinfo.php" method="get"> <os:parameter name="txt" value="{selection}" type="text" /> </os:preview> <os:execute action="http://localhost/php/phpinfo.php" method="get"> <os:parameter name="txt" value="{selection}" type="text" /> </os:execute> </os:activityAction> </os:activity> </os:openServiceDescription>
Корневым элементом документа является os:openServiceDescription. Внутри него описывается обязательной для ускорителя пространство имен http://www.microsoft.com/schemas/openservicedescription/1.0.
С помощью элемента os:homepageUrl задается URL ускорителя (для обеспечения доступа к нему пользователя). При этом все URL укпзываемые внтури ускорителя должны относиться к тому же домену, что и os:homepageUrl.
Обязательный элемент os:display предназначен для описания способа отображения ускорителя прользователю. Он содержит вложенные элементы os:name (обязательный), os:icon (необязательный) и os:description (необязательный):
- os:name - содержит имя ускорителя, отображаемое в контекстном меню.
- os:icon - содержит URL иконки размером 16x16 пикселей, отображаемой также в контекстном меню.
- os:description - содержит более полное описание ускорителя, отображаемое в диалоговом окне управления "Надстройки"
Элемент os:activity (обязательный) задает категорию акселератора и, в свою очередь, содержит как минимум один обязательный элемент os:activityAction. Последний предназначен для указания контекста запуска ускорителя. Контекст описываеся необязательным атрибутом context, значение по-умолчанию которого - selection. Допустимы следующие варианты значений для context:
Контекст Описание document Текущий документ. Всегда доступно selection По-умолчанию. Выделенный пользователем текст. Ускоритель доступен только при клике на выделенной области link Гиперссылка. Ускоритель доступен только для гиперссылок. Необязательный элемент os:preview определяет содержимое HTML окна отображаемого при наведении пользователем курсора на ускоритель.
Обязательный элемент os:execute определяет действие, выполняемое при вызове ускорителя пользователем.
Оба элемента os:preview и os:execute имеют одинаковый список атрибутов и дочерних элементов. В приведенном выше пример они содержат дочерний элемент, содержащий описание параметра, передаваемого ускорителю при запуске. Допустимы следующие атрибуты для обоих элементов:
Необязательный элемент os:parameter является альтернативным описанием, переменной, используемой для передачи данных серверу.
В данном примере использована иконка ( accelico.ico ) размером 16x16, которая должна находиться на том же сайте, что и сам ускоритель.
Для создания эскизного окна подготовьте и разместите php -сценарий следующего содержания:
<?php $selection = $_GET["txt"]; switch ($selection) { case "A1": echo "ИТ-образование: методология, методическое обеспечение"; break; case "A2": echo "e-learning, ИТ в образовании"; break; case "A3": echo "Теоретическая информатика"; break; case "A4": echo "Параллельное и распределенное программирование"; break; case "B1": echo "Научное программное обеспечение в образовании";break; case "B2": echo "Исследования и разработки в области новых ИТ и их приложений"; break; case "B3": echo "Стандартизация ИТ"; break; case "C1": echo "Образовательные ресурсы и лучшая практика ИТ-образования"; break; case "C2": echo "Школьное образование по информатике"; break; case "C3": echo "Организация обучения практическим навыкам в области IT- образования"; break; case "КС1": echo "Круглый стол - Информационные технологии в университетском управлении "; break; case "КС2": echo "Круглый стол - Технологии и инфраструктура телекоммуникаций"; break; default: echo "Не определено"; } ?>
-
Для регистрации ускорителя можно создать на веб-сайте http://localhost/Accelerator/ HTML документ, содержащий, например, кнопку следующего вида:
<button id="myButton" onclick="window.external.AddService ('http://localhost/Accelerator/activity.xml')"> Добавить ускоритель "Детализация" в список ускорителей </button>
- Загрузите веб-страницу http://localhost/webslice/confer.html. Проверьте работа ускорителя, выделяя обозначения секций в расписании.
Самостоятельное задание
Добавьте в файл activity.xml описание ускорителя для контекста гиперссылки с помощью элемента <os:activityAction context="link"> . Проверьте работу ускорителя для гиперссылок.