Совместная работа с помощью дополнения Meet

Участники совещания могут совместно работать над дополнительным модулем 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 опущен, поскольку состояние (выбранный цвет) не передается между участниками во время активности в этом примере дополнения. Однако отдельные пользователи могут изменить свое собственное состояние, выбрав цвет, который отправляется из рамки боковой панели в рамку основной сцены с помощью покадровой передачи сообщений .

Ограничения