Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Узнайте о федеративном протоколе Google Wave и примите участие
Основополагающим элементом всех приложений API Google Wave является так называемая волна, которая хранится в объекте WavePanel. В этом руководстве рассказано, как создать объект WavePanel и сохранить в нем волну.
Проще всего понять принципы API Google Wave, рассмотрев простой пример. В результате выполнения следующего кода на главной странице API Wave отображается волна "Welcome":
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Wave Embed API Example: Simple Wave</title>
<script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/');
wavePanel.loadWave('wavesandbox.com!w+waveID');
wavePanel.init(document.getElementById('waveframe'));
}
</script>
</head>
<body onload="initialize()">
<div id="waveframe" style="width: 500px; height: 100%"></div>
</body>
</html>
Можно загрузить этот пример, чтобы изменить его и поэкспериментировать с ним. Однако для работы с волной вам потребуется запросить доступ к тестовой среде и указать собственный идентификатор волны, которую нужно встроить.
Даже в таком простом примере следует обратить внимание на некоторые вещи:
script.<div> с названием waveframe. На самом деле волна будет представлена в этом элементе как <iframe>.WavePanel создается с помощью специально написанной функции JavaScript.init() объект WavePanel инициализирутся, а затем прикрепляется к элементу <div>.
<body> выполняется по событию onload.Ниже эти действия рассмотрены более подробно.
<script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script>
URL http://wave-api.appspot.com/public/embed.js указывает местоположение файла JavaScript, содержащего все символы и определения, необходимые для использования API Google Wave. Страница должна содержать тег <script>, указывающий на этот URL, причем этот тег <script> должен предшествовать коду JavaScript, в котором используются такие символы.
<div id="waveframe" style="width: 500px; height: 100%"></div>
Для отображения волны на веб-странице нужно выделить для нее место. Обычно это можно сделать, создав именованный элемент div и получив ссылку на него в модели объекта документа (DOM) браузера. В приведенном выше примере определен элемент <div> с названием waveframe, а его размер задан с помощью атрибутов style. Как правило, следует выделять область достаточной ширины, чтобы участники волны могли использовать ее соответствующим образом.
WavePanel
var wavePanel = new WavePanel("http://wave.google.com/a/wavesandbox.com/");
Волна хранится в классе JavaScript WavePanel. Объекты этого класса могут содержать только одну волну на странице. (Можно создать несколько экземпляров этого класса. При этом каждый объект будет определять отдельную волну на странице.) Экземпляр этого класса можно создать с помощью оператора JavaScript new.
При создании экземпляра волны в качестве ее контейнера следует указывать узел DOM на странице (чаще всего используется элемент div). HTML-узлы являются потомками объекта JavaScript document. Ссылку на этот элемент можно получить с помощью метода document.getElementById().
Функция WavePanel() выполняет роль конструктора. Ее определение (полная версия которого дана в Справочном руководстве по API встраивания Google Wave) представлено ниже:
| Конструктор | Описание |
|---|---|
| WavePanel (Wave server instance) | Создает панель Wave c помощью указанного экземпляра Wave server instance. Для целей разработки этот экземпляр будет представлен здесь: http://wave.google.com/a/wavesandbox.com/. (Обратите внимание, что последняя косая черта в URL-адресе обязательна.)
|
wavePanel.loadWave("wavesandbox.com!w+waveID");
Создав волну с помощью конструктора WavePanel(), необходимо загрузить ее, используя исходную волну. (В настоящее время в этой среде не разрешается создавать волны с нуля.) Загрузка выполняется с помощью метода loadWave(), который принимает уникальный идентификатор нужной волны.
В настоящее время получить идентификатор волны в Google Wave можно следующим образом: выберите волну, а затем выберите Отладка –> Получить идентификатор текущей волны. Обратите внимание, что для доступа к данной волне нужно быть ее участником (что невозможно реализовать для общедоступного веб-сайта). В данном случае можно предоставить общий доступ к волне, добавив к ней специальный зарезервированный адрес для участников (public@a.gwave.com). В настоящее время "общий доступ" разрешен только пользователям, у которых есть доступ к тестовой среде Google Wave.
Примечание. В будущем мы планируем обеспечить поддержку доступа к волнам только для чтения. На данный момент все участники волн являются активными (т.е. могут осуществлять как чтение, так и запись). При этом у них должны быть аккаунты волн в тестовой среде.
wavePanel.init(document.getElementById('waveframe'));
В процессе отображения HTML-страницы формируется модель объекта документа (DOM), и все внешние изображения и скрипты объединяются в объект document. Чтобы гарантировать, что волна будет отображена только после полной загрузки страницы, нужно выполнить функцию, которая создает объект WavePanel, только после получения события onload элементом HTML-страницы <body>. Это позволит избежать непредсказуемого поведения и даст возможность лучше контролировать отображение волны.
Волна является интерактивным объектом. Люди, группы и роботы могут работать с волной, если они получили приглашение или иным образом были авторизованы на доступ к ней. Эту функциональность планируется добавить непосредственно в API встраивания волн в ближайшем будущем. Однако на данный момент необходимо заранее настроить управление доступом в волне. Чтобы разрешить доступ к волне всем пользователям, добавьте специальный адрес public@a.gwave.com в качестве участника волны.
С помощью метода setUIConfig() можно изменить внешний вид встроенной волны. Этот метод принимает набор строк, используемых для настройки цвета фона и характеристик шрифта волны в процессе ее инициализации. Обратите внимание, что вызов этого метода после метода init() ни к чему не приведет.
В следующем фрагменте кода цвет фона волны изменяется на зеленый, цвет текста – на белый, а шрифт – на Arial:
setUIConfig('green', 'white', 'Arial', '12pt');
Более подробную информацию об API встраивания можно найти в Справочном руководстве по API встраивания.