Совместная работа с помощью дополнения 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 (необязательно). Поделитесь состоянием дополнения в действии.

Вы также можете обмениваться состоянием между пользователями во время выполнения действия. Вы можете поделиться состоянием двумя способами:

  • Справьтесь с этим самостоятельно, создав собственный сервер синхронизации.
  • Используйте Co-Doing API , который представляет собой удобный и быстрый способ обмена произвольными данными между пользователями.

Пример: дополнение «Анимация» на GitHub.

Пример дополнения «Анимация» на GitHub включает совместную работу в надстройке. Шаг 1 из этого руководства не включен в образец. Вместо этого, когда инициатор надстройки нажимает кнопку «Запустить анимацию» на боковой панели, вызывается метод startActivity() ( шаг 2 ) путем заполнения начального состояния выбранным пользователем цветом. После запуска активности основная стадия получает начальное состояние, вызывая метод getActivityStartingState() ( шаг 3 ). Шаг 4 опущен, поскольку состояние (выбранный цвет) не передается участникам во время действия в этом образце дополнения. Однако отдельные пользователи могут изменить свое собственное состояние, выбрав цвет, который отправляется из кадра боковой панели в кадр основной сцены с помощью покадрового обмена сообщениями .

Ограничения