Участники совещания могут совместно работать над дополнительным модулем 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 (необязательно): Поделитесь состоянием дополнения в активности.
Вы также можете обмениваться состоянием между пользователями во время выполнения действия. Обмен состоянием возможен двумя способами:
- Решите эту задачу самостоятельно, разработав собственный бэкэнд синхронизации.
- Воспользуйтесь API Co-Doing , который представляет собой удобный и быстрый способ обмена произвольными данными между пользователями.
Пример: Дополнение для анимации на GitHub
Пример дополнения "Анимация" на GitHub включает в себя функцию совместной работы. Шаг 1 из этого руководства не включен в пример. Вместо этого, когда инициатор дополнения нажимает кнопку "Запустить анимацию" на боковой панели, вызывается метод startActivity() ( Шаг 2 ), заполняющий начальное состояние выбранным пользователем цветом. После запуска активности основная сцена получает начальное состояние, вызывая метод getActivityStartingState() ( Шаг 3 ). Шаг 4 опущен, поскольку состояние (выбранный цвет) не передается между участниками во время активности в этом примере дополнения. Однако отдельные пользователи могут изменить свое собственное состояние, выбрав цвет, который отправляется из рамки боковой панели в рамку основной сцены с помощью покадровой передачи сообщений .
Ограничения
- Указанные в
ActivityStartingStateURL-адреса должны принадлежать к тому же источнику, что и источники, указанные в манифесте дополнения . Дополнительную информацию см. в разделе «Безопасность дополнений» . - Длина символов в свойствах
sidePanelUrl,mainStageUrlиadditionalDataдолжна соответствовать ограничениям, указанным в справочной документации SDK.
Связанные темы
- Используйте начальное состояние активности.
- Используйте дополнение Meet.
- Реализуйте API для совместной работы.
- Дополнительные средства безопасности