На этой странице описано, как создать боковую панель и основные страницы сцены надстройки Meet Web.
Установите и импортируйте SDK
Вы можете получить доступ к SDK с помощью npm или gstatic.
НПМ (рекомендуется)
Если в вашем проекте используется npm, вы можете следовать инструкциям для пакета npm Meet Add-ons SDK .
Сначала установите пакет npm:
npm install @googleworkspace/meet-addons
Затем пакет Meet Add-ons SDK можно будет получить, импортировав интерфейс MeetAddonExport
:
import {meet} from '@googleworkspace/meet-addons/meet.addons';
Для пользователей TypeScript определения TypeScript поставляются вместе с модулем.
gstatic
SDK надстроек Google Meet доступен в виде пакета JavaScript из gstatic
, домена, который предоставляет статический контент.
Чтобы использовать SDK дополнений Meet, добавьте в свое приложение следующий тег сценария:
<script src="https://www.gstatic.com/meetjs/addons/1.0.0/meet.addons.js"></script>
SDK Meet Add-ons доступен через интерфейс MeetAddon
по адресу window.meet.addon
.
Укажите, что загрузка дополнения завершена
Во время загрузки дополнения Meet отображает экран загрузки. Когда сеанс надстройки установлен , Meet воспринимает это как сигнал надстройки о том, что загрузка завершена и пользователь может взаимодействовать со сторонним контентом.
Создать страницу боковой панели
На боковой панели отображаются установленные дополнения, которые вы можете выбрать и использовать. После выбора надстройки iframe загружает URL-адрес боковой панели, указанный в манифесте надстройки. Это должна быть точка входа вашего приложения. Чтобы получить доступ к функциям Meet Add-ons SDK на боковой панели, необходимо создать экземпляр sidePanelClient
.
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
const sidePanelClient = await session.createSidePanelClient();
Замените CLOUD_PROJECT_NUMBER на номер вашего проекта Google Cloud.
Вот фрагмент кода, показывающий, как запустить действие:
<html style="width: 100%; height: 100%">
<head>
<title>Side Panel Add-on</title>
<script src="https://www.gstatic.com/meetjs/addons/1.0.0/meet.addons.js"></script>
</head>
<body style="width: 100%; height: 100%; margin: 0">
<div style="display: flex; flex-direction: column; height: 100%">
<h1>Side Panel Add-on</h1>
<div>
<div>
<button id="start-activity">
startActivity
</button>
</div>
<div>
Activity Side Panel URL:
<input type="text" id="sidePanelIframeUrl" style="margin-left: 20px; width: 90%;"
value="https://your_add_on_origin.url/newSidePanelPage.html" />
</div>
<div>
Main Stage URL:
<input type="text" id="mainStageIframeUrl" style="margin-left: 20px; width: 90%;"
value="https://your_add_on_origin.url/mainStagePage.html" />
</div>
<div>
Activity start state data:
<input type="text" id="additionalProperty" style="margin-left: 20px; width: 90%;"
value="abc123" />
</div>
</div>
</div>
<script>
let sidePanelClient;
async function init() {
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
console.log("Successfully constructed the add-on session.");
sidePanelClient = await session.createSidePanelClient();
console.log("Successfully constructed side panel client.");
document
.getElementById('start-activity')
.addEventListener(
'click', async () => {
const sidePanelIframeUrlInputElement =
document.getElementById('sidePanelIframeUrl');
const mainStageIframeUrlInputElement =
document.getElementById('mainStageIframeUrl');
const additionalPropertyInputElement =
document.getElementById('additionalProperty');
await sidePanelClient.startActivity({
// Side panel is replaced with a new page.
sidePanelUrl: sidePanelIframeUrlInputElement.value,
// Main stage loads a large work area.
mainStageUrl: mainStageIframeUrlInputElement.value,
additionalData: JSON.stringify({
additionalProperty: additionalPropertyInputElement.value
}),
});
});
}
document.body.onload = () => {
init();
};
</script>
</body>
</html>
Замените CLOUD_PROJECT_NUMBER на номер вашего проекта Google Cloud.
Создайте главную страницу сцены
Основная сцена — это основная зона внимания, где вы можете отобразить надстройку, если требуется большее рабочее пространство. Основная сцена открывается сразу после начала мероприятия. Чтобы получить доступ к функциям Meet Add-ons SDK на основной стадии, вы можете использовать клиентский объект MeetMainStageClient
:
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
const mainStageClient = await session.createMainStageClient();
Замените CLOUD_PROJECT_NUMBER на номер вашего проекта Google Cloud.
Вот фрагмент кода, который показывает пример главной страницы сцены ( mainStagePage.html
в предыдущем фрагменте) и включает вызов getActivityStartingState
в ответ на нажатие кнопки:
<html style="width: 100%; height: 100%">
<head>
<title>Main Stage Add-on</title>
<script src="https://www.gstatic.com/meetjs/addons/1.0.0/meet.addons.js"></script>
</head>
<body style="width: 100%; height: 100%; margin: 0; background: white;">
<div style="display: flex; flex-direction: column; height: 100%">
<h1>Main Stage Add-on</h1>
<div>
<div>
<button id="get-activity-starting-state">
Get Activity Starting State's Additional Property
</button>
</div>
<div id="receivedActivityStartingStateProperty"
style="margin-left: 20px; width: 300px; overflow-wrap: anywhere"></div>
</div>
</div>
<script>
let mainStageClient;
async function init() {
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
console.log("Successfully constructed the add-on session.");
const mainStageClient = await session.createMainStageClient();
console.log("Successfully constructed main stage client.");
document
.getElementById('get-activity-starting-state')
.addEventListener(
'click', async () => {
const startingState =
await mainStageClient.getActivityStartingState();
const startingStateData = JSON.parse(startingState.additionalData);
document.getElementById(
'receivedActivityStartingStateProperty').textContent =
startingStateData.additionalProperty;
});
}
document.body.onload = () => {
init();
};
</script>
</body>
</html>
Замените CLOUD_PROJECT_NUMBER на номер вашего проекта Google Cloud.