Участники собрания могут совместно работать над надстройкой Google Meet. Когда начинается совместная деятельность, все участники собрания получают уведомление о том, что деятельность продолжается.
Это уведомление адаптировано к доступности и статусу установки дополнения:
Если у участника установлено дополнение : он может присоединиться к занятию.
Если у участника не установлено дополнение : ему будет предложено установить дополнение.
Если дополнение недоступно для платформы участника : ему сообщают, что он не может присоединиться к занятию, используя свое текущее устройство.
Когда пользователь присоединяется к действию, он загружает свои собственные iframe с вашим дополнительным контентом. Вы можете настроить, должны ли новые участники открывать совместную деятельность на главной сцене или на боковой панели.
Начать деятельность
Действие запускается путем вызова метода startActivity()
, который использует интерфейс ActivityStartingState
.
Шаг 1 (необязательно). Надстройка устанавливает состояние начала действия.
ActivityStartingState
содержит информацию о начальном состоянии надстройки, которая используется, когда участник принимает приглашение присоединиться к действию.
Надстройка может устанавливать или обновлять ActivityStartingState
, вызывая метод setActivityStartingState()
в любое время до или во время действия. Вызовы setActivityStartingState()
можно опустить, если ActivityStartingState
устанавливается исключительно в вызове startActivity()
.
Шаг 2. Надстройка запускает действие.
Действие начинается, когда надстройка вызывает метод startActivity()
в MeetSidePanelClient
. Метод startActivity()
принимает объект ActivityStartingState
в качестве параметра, поэтому вместо вызова setActivityStartingState()
startActivity()
().
Как только пользователь завершит выбор контента и будет готов начать действие, вызовите метод startActivity()
в вашей надстройке следующим образом:
sidePanelClient.startActivity({
mainStageUrl: "https://app.example.com/mainstage",
additionalData: JSON.stringify({
// State to send to participants.
})
});
При вызове метода startActivity()
Meet выполняет следующие действия:
Для других участников : Meet отображает уведомление о том, что действие продолжается.
Для инициатора : если в
ActivityStartingState
указан URL-адрес основной сцены, Meet открывает основную сцену, используя URL-адрес изActivityStartingState
.
Шаг 3. Получите начальное состояние действия.
Когда пользователь присоединяется к действию, он загружает ваше дополнение на главную сцену или боковую панель в зависимости от ActivityStartingState
.
С помощью свойства additionalData
вы можете делиться исходными данными (также называемыми состоянием) с пользователями, присоединяющимися к действию. После инициализации MainStageClient
или SidePanelClient
вы можете вызвать метод getActivityStartingState()
чтобы получить свойство additionalData
.
const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);
Шаг 4 (необязательно). Поделитесь состоянием дополнения в действии.
Вы также можете обмениваться состоянием между пользователями во время выполнения действия. Вы можете поделиться состоянием двумя способами:
- Справьтесь с этим самостоятельно, создав собственный сервер синхронизации.
- Используйте Co-Doing API , который представляет собой удобный и быстрый способ обмена произвольными данными между пользователями.
Пример: дополнение «Анимация» на GitHub.
Пример дополнения «Анимация» на GitHub включает совместную работу в надстройке. Шаг 1 из этого руководства не включен в образец. Вместо этого, когда инициатор надстройки нажимает кнопку «Запустить анимацию» на боковой панели, вызывается метод startActivity()
( шаг 2 ) путем заполнения начального состояния выбранным пользователем цветом. После запуска активности основная стадия получает начальное состояние, вызывая метод getActivityStartingState()
( шаг 3 ). Шаг 4 опущен, поскольку состояние (выбранный цвет) не передается участникам во время действия в этом образце дополнения. Однако отдельные пользователи могут изменить свое собственное состояние, выбрав цвет, который отправляется из кадра боковой панели в кадр основной сцены с помощью покадрового обмена сообщениями .
Ограничения
- URL-адреса, указанные в
ActivityStartingState
должны принадлежать тому же источнику , что и источники, указанные в манифесте надстройки . Дополнительную информацию см. в разделе Дополнительная безопасность . - Длина символов свойства
sidePanelUrl
, свойстваmainStageUrl
и свойстваadditionalData
должна соответствовать соответствующим ограничениям на размер, опубликованным в справочной документации SDK.
Связанные темы
- Используйте состояние начала действия
- Используйте дополнение Meet
- Внедрение API совместного выполнения
- Дополнительная безопасность