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

Участники встречи могут совместно работать над дополнительными заданиями Google Meet. Когда начинается совместное задание, все участники встречи получают уведомление о его запуске.

Это уведомление адаптировано к доступности и статусу установки дополнения:

  • Если у участника установлено дополнение : он может присоединиться к занятию.

  • Если у участника не установлено дополнение : ему будет предложено установить дополнение.

  • Если дополнение недоступно для платформы участника : ему сообщается, что он не может присоединиться к мероприятию, используя свое текущее устройство.

Когда пользователь присоединяется к активности, он загружает собственные iframe-окна с вашим дополнительным контентом. Вы можете настроить, будут ли новые участники открывать совместную активность на главной сцене или на боковой панели.

Начать занятие

Действие запускается путем вызова метода startActivity() , который использует интерфейс ActivityStartingState .

Шаг 1 (необязательно): дополнение устанавливает начальное состояние активности.

ActivityStartingState содержит информацию о начальном состоянии надстройки, которая используется, когда участник принимает приглашение присоединиться к активности.

Дополнение может устанавливать или обновлять состояние ActivityStartingState , вызывая метод setActivityStartingState() в любое время до или во время активности. Вызовы setActivityStartingState() можно опустить, если состояние ActivityStartingState устанавливается исключительно в вызове startActivity() .

Шаг 2: Дополнение запускает действие

Активность начинается, когда дополнение вызывает метод startActivity() на MeetSidePanelClient . Метод startActivity() принимает объект ActivityStartingState в качестве параметра, поэтому можно вызвать startActivity() вместо setActivityStartingState() .

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

Ограничения

,

Участники встречи могут совместно работать над дополнительными заданиями Google Meet. Когда начинается совместное задание, все участники встречи получают уведомление о его запуске.

Это уведомление адаптировано к доступности и статусу установки дополнения:

  • Если у участника установлено дополнение : он может присоединиться к занятию.

  • Если у участника не установлено дополнение : ему будет предложено установить дополнение.

  • Если дополнение недоступно для платформы участника : ему сообщается, что он не может присоединиться к мероприятию, используя свое текущее устройство.

Когда пользователь присоединяется к активности, он загружает собственные iframe-окна с вашим дополнительным контентом. Вы можете настроить, будут ли новые участники открывать совместную активность на главной сцене или на боковой панели.

Начать занятие

Действие запускается путем вызова метода startActivity() , который использует интерфейс ActivityStartingState .

Шаг 1 (необязательно): дополнение устанавливает начальное состояние активности.

ActivityStartingState содержит информацию о начальном состоянии надстройки, которая используется, когда участник принимает приглашение присоединиться к активности.

Дополнение может устанавливать или обновлять состояние ActivityStartingState , вызывая метод setActivityStartingState() в любое время до или во время активности. Вызовы setActivityStartingState() можно опустить, если состояние ActivityStartingState устанавливается исключительно в вызове startActivity() .

Шаг 2: Дополнение запускает действие

Активность начинается, когда дополнение вызывает метод startActivity() на MeetSidePanelClient . Метод startActivity() принимает объект ActivityStartingState в качестве параметра, поэтому можно вызвать startActivity() вместо setActivityStartingState() .

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

Ограничения