Участники встречи могут совместно работать над дополнительными заданиями 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 опущен, поскольку состояние (выбранный цвет) не является общим для участников во время действия в этом примере дополнения. Однако отдельные пользователи могут изменять своё состояние, выбирая цвет, который отправляется из кадра боковой панели в кадр основного этапа с помощью покадрового обмена сообщениями .
Ограничения
- URL-адреса, указанные в
ActivityStartingState
должны принадлежать к тому же источнику , что и источники, указанные в манифесте дополнения . Подробнее см. в разделе Безопасность дополнения . - Длина свойств
sidePanelUrl
,mainStageUrl
иadditionalData
должна соответствовать ограничениям по размеру, опубликованным в справочной документации SDK.
Похожие темы
- Используйте начальное состояние активности
- Используйте дополнение Meet
- Реализуйте API совместной работы
- Дополнительная безопасность
Участники встречи могут совместно работать над дополнительными заданиями 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 опущен, поскольку состояние (выбранный цвет) не является общим для участников во время действия в этом примере дополнения. Однако отдельные пользователи могут изменять своё состояние, выбирая цвет, который отправляется из кадра боковой панели в кадр основного этапа с помощью покадрового обмена сообщениями .
Ограничения
- URL-адреса, указанные в
ActivityStartingState
должны принадлежать к тому же источнику , что и источники, указанные в манифесте дополнения . Подробнее см. в разделе Безопасность дополнения . - Длина свойств
sidePanelUrl
,mainStageUrl
иadditionalData
должна соответствовать ограничениям по размеру, опубликованным в справочной документации SDK.
Похожие темы
- Используйте начальное состояние активности
- Используйте дополнение Meet
- Реализуйте API совместной работы
- Дополнительная безопасность