страницей работают миллионы пользователей».

Зачем, собственно, нужен гаджет и какие возможности он предоставляет?

Гаджет изнутри

С технической точки зрения, гаджет для iGoogle представляет собой XML-файл, содержимое которого выводится во вложенном фрейме (iframe). В XML-тексте файла гаджета применяется специальная разметка и информационные теги; там же содержится и HTML-или JavaScript-код, использующий специальный API (Google Gadget API) для интеграции с порталом iGoogle.

Гаджет может содержать как простой текст на языке разметки HTML, так и программы на JavaScript. Такое сочетание функций позволяет использовать гаджет в роли интерфейсного блока к какой-либо внешней Web-системе. Например, в качестве мини-витринки для Интернет-магазина, на которой выводится информация о скидках, новых поступлениях и др.

В то же время роль Google Gadgets API не сводится к выводу динамического или HTML-содержимого внешних источников. Предусматриваются развитые функции формирования пользовательского интерфейса (вкладки, раскрывающиеся разделы и др.), работы с XML, интеграции с Flash или Silverlight, учета и ведения статистики (средствами Google Analytics), внешнего хранилища информации (например, параметров настройки гаджета для конкретного пользователя), локализации и др.

XML-модуль может редактироваться любым удобным разработчику способом, – кроме того, есть специальный «редактор гаджетов», пригодный для создания не всех типов гаджетов, а только «унаследованных» (об этом ниже).

Программный код конкретного гаджета, как правило, хранится на серверах Google (http://hosting.gmodules.com/). С точки зрения пользователя, на страницу портала iGoogle они инсталлируются нажатием соответствующей кнопки на этой странице (фактически просто добавляется ссылка), на внешние по отношению к iGoogle сайты их можно установить, скопировав специальный код:

<script src='http://gmodules.com/ig/ifr?url=

http://hosting.gmodules.com/ig/gadgets/

file/116455917826824671162/lines.xml&amp;

synd=open&amp;w=300&amp;h=340&amp;title=

lines&amp;border= %23ffffff%7C3px%2C1px+

solid+%23999999&amp;output=js'></script>

Собственно гаджет – в данном случае файл lines.xml – хранится в подкаталоге разработчика (создается автоматически при сохранении исходного текста в редакторе гаджетов, откуда и вызывается с заранее заданными параметрами.

Разместить гаджет можно и на собственном сайте, а также на страницах проекта Google Code (в этом случае появляются интересные возможности, вроде управления версиями). Но если автор хочет добиться популярности, то гаджет настоятельно рекомендуется добавлять в каталог Google. Иначе как о нем узнают широкие массы?

Простейший гаджет можно создать за пару минут

Структура API платформы Google для гаджетов довольно эклектична и несет явный отпечаток эволюционного развития. Так, например, гаджеты могут создаваться не только для iGoogle, но и для утилиты Google Desktop (исторически она и была первой). Когда-то давно у этих двух платформ был различный API, затем программисты Google унифицировали их. Сегодня обеспечивается некоторая совместимость, хотя не все гаджеты Google Desktop могут работать в «среде» iGoogle, и наоборот (скажем, если применен специфичный программный модуль, использующий API Win32; есть также функции, которые недоступны на платформе Google Desktop).

Листинг 1. XML-файл гаджета

<?xml version='1.0' encoding='UTF-8'?>

<Module>

<ModulePrefs title='hello world

example' />

<Content type='html'>

<![CDATA[

Здравствуй, мир!

]]>

</Content>

</Module>

Но и это еще не все. Существуют две версии Gadgets API: «унаследованная» (Legacy Gadgets API) и текущая, причем «унаследованная» не означает «устаревшая». Это скорее наиболее общая, универсальная платформа, разработки на базе которой совместимы с максимальным числом платформ (хотя и благодаря некоторому усечению функций). В некоторых случаях даже рекомендуется использовать именно «унаследованную» версию API, например при необходимости установки гаджета на внешнем сайте.

Новая версия API в документации Google обычно обозначается как пространство имен gadgets.* Функциональность и возможности в целом соответствуют Legacy Gadgets API, но, кроме того, предоставляется возможность создавать разработки, интегрированные с подсистемой OpenSocial (функционирующие во всех социальных сетях, совместимых с этим стандартом), специализированные графические средства, подсистемы авторизации, загрузки данных, управления шаблонами и др. Далее в примерах этой статьи мы ограничимся только Legacy Gadgets API, вопросы работы с прочими версиями будут рассмотрены позднее.

Структура гаджета и API

Программные интерфейсы, доступные разработчикам Google Gadgets (как «унаследованный», так и gadgets.*), ясно структурированы и позволяют реализовать практически любые идеи. Единственное ограничение накладывается скорее соображениями скорости работы и требованиями к пропускной способности каналов связи. Строго говоря, возможность подключения внешних модулей предоставляет возможности создать гаджет даже с трехмерной интерактивной игрой (благо, сегодня существуют «движки» 3D-графики для онлайновых применений). И это первое, о чем следует помнить разработчику.

Рассмотрим особенности внутренней организации гаджета и доступные API на примерах разработок, представленных на конкурс гаджетов, организованный компаниями Google и журналом PC Magazine/RE (подробнее о конкурсе можно прочитать в блоге проекта, http://ru-googlegadget.blogspot.com/).

Самый простой способ создания гаджета – воспользоваться заранее подготовленными экранными формами, доступными с персональной страницы iGoogle. Работа с ними предельно проста: достаточно заполнить несколько полей, получить код или кликнуть по ссылке добавления гаджета на Web-страницу. В то же время такие разработки не представляют особого интереса, поскольку их функциональность довольно невелика.

Листинг 2. Гаджет, содержащий ссылку на программный модуль

<Module>

<ModulePrefs title='lines'

title_url='http://gagdetmaster.

googlepages.com/'

category='games'/>

<Content type='url' href='http://gagdetmaster.googlepages.

com/333.htm'/>

</Module>

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату