Internet Explorer 8 для разработчиков
Часть 3. Создание ускорителей
Российские веб-сервисы, доступные через механизм ускорителей
В предыдущей статье данного цикла, посвященного ключевым возможностям Internet Explorer 8, предназначенным для веб-разработчиков, рассматривались вопросы ускорения и упрощения разработки приложений для Internet Explorer 8.
Помимо механизмов обеспечения безопасного и надежного использования различных ресурсов Интернета и создания веб-приложений и сайтов, поддерживающих самые современные стандарты, Windows Explorer 8 позволяет реализовать ряд дополнительных сценариев, которые могут быть одинаково полезны как для широкого круга пользователей, так и для корпоративных клиентов. Эти сценарии дают возможность более быстро и просто использовать сервисы, предоставляемые другими веб-приложениями и сайтами (ускорители), получать автоматические уведомления об изменениях, произошедших на определенных веб-страницах (веб-фрагменты), и расширять стандартные механизмы поиска. Мы рассмотрим, как применять эти механизмы для создания расширений для веб-приложений, а также покажем ряд доступных для использования российских ускорителей, веб-фрагментов и средств расширения поиска.
Создание ускорителей
Механизм ускорителей (Accelerators), реализованный в Internet Explorer 8, позволяет автоматизировать применение веб-сервисов, предоставляемых веб-приложениями и сайтами, и сделать его более простым и удобным. До появления этого механизма использование веб-сервисов заключалось в передаче данных через буфер обмена данными и состояло из следующих шагов:
- Выделение текста на экране.
- Копирование текста.
- Переход на страницу, содержащую сервис.
- Подключение к сервису (опционально, при использовании платного сервиса).
- Вставка текста.
- Выполнение сервиса.
Унификация механизма обращения к веб-сервисам, реализованная в Internet Explorer 8, позволяет отказаться от ручного ввода данных и вызова веб-сервисов — механизм ускорителей предоставляет пользователям контекстное меню для быстрого вызова веб-сервисов непосредственно в контексте основной страницы, не покидая ее.
Галерея расширений. Ускорители
Пользователи могут использовать стандартные ускорители, входящие в состав Internet Explorer 8, или загрузить дополнительные из галереи дополнений (http://ieaddons.com/ru/) либо с любого сайта, предоставляющего соответствующие сервисы.
Применение ускорителей обычно включает два сценария: поиск расширенной информации и отсылку ее веб-сервису. В первом сценарии могут использоваться ускорители, предоставляющие картографическую информацию, сервисы перевода, словари, например Яндекс.Карты, переводчик и словарь Translate.Ru, Словари@Mail.Ru, Энциклопедии@Mail.Ru, Яндекс.Маркет и т.п., тогда как во втором это сервисы публикации в блогах, отсылки электронной почты, например Почта@Mail.Ru, Опубликовать в Живом Журнале, Блоги@Mail.Ru и т.п.
Установка ускорителя Яндекс.Карты
Доступ к ускорителям, установленным в Internet Explorer 8, осуществляется либо по нажатию правой кнопки мыши на выбранном фрагменте текста, либо при выборе соответствующего ускорителя командой Page > Accelerators.
Использование ускорителей сводится к следующей последовательности действий:
- Установка ускорителя.
- Выбор контекста (выделение текста на странице).
- Выбор ускорителя.
- Выполнение активности и переход к сервису.
или
- Предварительный просмотр активности и непосредственное получение результатов.
Рассмотрим применение ускорителя на примере сервиса Яндекс.Карты. Перейдем в галерею расширений в раздел Ускорители по адресу: http://ieaddons.com/ru/accelerators/?lang=ru&index=0.
Для ускорителя Яндекс.Карты нажмем кнопку Добавить в Internet Explorer. В появившемся окне Add Accelerator обратим внимание на описание устанавливаемого ускорителя: имя — Посмотреть на Яндекс.Картах, источник — ieaddons.com, адрес сервиса — maps.yandex.ru, категория ускорителя — Карты. Если мы хотим сделать этот ускоритель сервисом по умолчанию для данной категории, необходимо включить опцию Make this my default provider for this Accelerator Category.
Выделение адреса на веб-сайте
Нажатие кнопки Add приводит к установке ускорителя Яндекс.Карты на компьютер и делает его доступным в Internet Explorer 8. Проверим работу ускорителя на примере поиска на карте адреса офиса известной российской компании «1С». Перейдем на страницу http://www1c.ru/rus/firm1c/firm1c.htm в раздел Адреса, телефоны, контакты... и выделим текст «Москва, ул. Селезневская, дом 21». Обратим внимание на появившийся рядом с выделенным текстом значок.
Теперь у нас есть три способа вызова ускорителя: щелчок мышью по значку, нажатие правой кнопки мыши и выбор сервиса или выполнение команды Page > All Accelerators. Любое из этих действий приведет к появлению меню доступных ускорителей, из которого необходимо выбрать команду Посмотреть на Яндекс.Картах. В результате мы получим окно с предварительными результатами отображения адреса на карте Яндекса. Чтобы увидеть карту в отдельном окне, необходимо щелкнуть мышью по окну с картой.
Результат работы ускорителя Яндекс.Карты
Управление установленными ускорителями происходит так же, как и другими установленными компонентами, — через команду Tools > Manage Add-ons.
В диалоговой панели Manage Add-ons следует выбрать раздел Accelerators, а затем — тот или иной ускоритель.
Для управления ускорителями доступны следующие возможности:
- изменение категории. В настоящий момент доступны следующие:
- стандартные категории: Blog, Map , Send, Translate,
- расширенные категории: Bookmark, Email, Find, Share,
- локализованные категории;
- переход на страницу веб-сервиса;
- переход на страницу, с которой был установлен данный ускоритель;
- изменение статуса ускорителя:
- сделать сервисом по умолчанию для данной категории,
- сделать сервис неактивным — сервис продолжает оставаться на компьютере, но недоступен через меню;
- удаление сервиса с компьютера.
Помимо управления установленными ускорителями на уровне панели Manage Add-ons есть возможность управления ускорителями через групповые политики (gpedit.msc). Доступны следующие группы политик: см. раздел User Configuration\Administrative Templates\Windows Components\Internet Explorer\Accelerators (табл. 1).
Установленные ускорители видны в реестре в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Activities. Для каждой категории ускорителей существует собственная подветвь. Так, Яндекс.Карты располагается в ветви Карты.
Управление ускорителями
Теперь рассмотрим процесс применения ускорителя с точки зрения браузера. Веб-браузер использует XML-файл для определения интерфейса для вызова веб-сервиса. Этот XML-файл содержит шаблоны для предварительного просмотра и выполнения сервиса. Пользователь выбирает контекст, а также ускоритель из списка ускорителей, установленных на компьютере.
Веб-браузер сериализует выбранный контекст в URL-шаблон для предварительного просмотра и выполнения. После этого данные по протоколу HTTP передаются соответствующему веб-сервису с помощью команды GET/POST. Веб-сервис обрабатывает запрос и возвращает HTML, который отображается в браузере в плавающем окне.
Ускорители бывают двух типов: на основе XML и на основе COM. Ускорители на основе XML представляют собой декларативные веб-приложения, использующие протокол HTTP для коммуникации между браузером и веб-сайтом. Ускорители на основе COM применяются для ингеграции клиентских приложений. Рекомендуется использование ускорителей на основе XML, так как они проще в разработке, не требуют написания кода, удобны в тестировании и развертывании.
Создание ускорителя на основе XML состоит из двух шагов. На первом шаге создается XML-файл, содержащий описание способов вызова сервиса и передачи ему параметров. Данный файл сохраняется на сайте, предоставляющем соответствующий сервис. На втором шаге к странице загрузки ускорителя добавляется код, который будет вызывать специальный метод установки ускорителя — window.external.AddService() с указанием имени XML-файла, созданного на первом шаге.
Рассмотрим, как организован XML-файл, описывающий доступ к сервису Яндекс.Карты. XML-файл выглядит следующим образом:
<?xml version=»1.0» encoding=»UTF-8»?>
<openServiceDescription
xmlns=»http://www.microsoft.com/schemas/openservicedescription/1.0»>
<homepageUrl>http://maps.yandex.ru</homepageUrl>
<display>
<name>Посмотреть на Яндекс.Картах</name>
<icon>http://maps.yandex.ru/favicon.ico</icon>
<description>Посмотреть расположение объекта на Яндекс.Картах</description>
</display>
<activity category=»Карты»>
<activityAction context=»selection»>
<preview action=»http://maps.yandex.ru/service/
ie-accelerator/index.xml?address={selection}»/>
<execute action=»http://maps.yandex.ru/» method=»get»>
<parameter name=»text» type=»text» value=»{selection}»/>
</execute>
</activityAction>
<activityAction context=»link»>
<preview action=»http://maps.yandex.ru/service/
ie-accelerator/index.xml?address={linkText}»/>
<execute action=»http://maps.yandex.ru/» method=»get»>
<parameter name=»text» value=»{linkText}»/>
</execute>
</activityAction>
</activity>
</openServiceDescription>
В первой строке указывается ссылка на пространство имен openServiceDescription, в котором задана схема XML-файла, используемого для описания доступа к веб-сервису. Затем приводится адрес домашней страницы сервиса. Далее в группе display указываются имя сервиса (элемент name), ссылка на иконку (элемент icon), применяемую для визуализации сервиса, и описание функциональности сервиса (элемент description).
Затем следует группа activity, условно разделяемая на две части. Сначала задается описание категории сервиса (атрибут category), а затем — действия, выполняемые сервисом при его активации внутри веб-страницы (группа <activityAction context=»selection»>), и действия, выполняемые при активации окна предварительного просмотра (группа <activityAction context=»link»>). Обратим внимание на то, что параметры передаются через {selection} — это указывает на то, что сервису передается текст, выбранный на странице. В рамках вызова веб-сервиса также можно передавать данные о веб-странице — {documentUrl}, {documentTitle}, {documentDomain}, {documentHost} и ссылках внутри документа — {link}, {linkText}, {linkRel}, {linkType} и {linkHost}. Также обратим внимание на способ вызова сервиса — в нашем примере это HTTP-команда get (атрибут method элемента execute). Также возможна передача параметров через команду post — выбор зависит от способа приема данных, реализованного на уровне веб-сервиса.
Данные об ускорителях в реестре
Как мы уже отметили, сайт, предоставляющий веб-сервис, также должен включать код для установки ускорителя. Этот код может выглядеть так:
<button id=»myButton»
onclick=»window.external.AddService(‘http://www.example.com/activity.xml’)»>
Добавить ускоритель в Internet Explorer 8
</button>
В Internet Explorer 8 cуществует метод, дающий возможность определить, установлен ускоритель или нет, — IsServiceInstalled. Использование этого метода позволяет избежать повторной установки ускорителя. Вот пример его применения:
window.onload = function() {
if (window.external.IsServiceInstalled(‘http://www.example.com’,’map’))
{
document.getElementById(‘myButton’).disabled = true;
}
}
Подробнее о создании ускорителей см. на сайте по адресу: http://go.microsoft.com/fwlink/?LinkID=111615.
Российские веб-сервисы, доступные через механизм ускорителей
На момент написания данного обзора на сайте «Галерея дополнений» были доступны следующие ускорители, созданные российскими разработчиками (табл. 2).
Число российских ускорителей постоянно растет, поэтому не забывайте периодически посещать «Галерею дополнений» для Internet Explorer 8 по адресу: http://ieaddons.com/ru/.
***
В следующей статье данного цикла мы рассмотрим создание веб-фрагментов.