측면 패널 및 기본 단계 페이지 만들기

이 페이지에서는 Meet 웹 부가기능의 측면 패널 및 기본 단계 페이지를 만드는 방법을 설명합니다.

Meet 부가기능 SDK 기본 스테이지 및 측면 패널
Meet 웹 부가기능의 기본 스테이지 및 측면 패널입니다.

Google Meet 부가기능 SDK는 정적 콘텐츠를 제공하는 도메인인 gstatic에서 자바스크립트 번들로 제공됩니다.

Meet 부가기능 SDK를 사용하려면 앱에 다음 스크립트 태그를 추가하세요.

<script src="https://www.gstatic.com/meetjs/addons/0.7.0/meet.addons.js"></script>

Meet 부가기능 SDK 기능은 window.meet.addon에서 사용할 수 있습니다. 참조 문서를 보려면 리소스 요약을 확인하세요.

부가기능 로드가 완료되었다고 표시

부가기능이 로드되는 동안 Meet에 로드 화면이 표시됩니다. 부가기능 세션이 설정되면 Meet은 이를 부가기능의 로드가 완료되었으며 사용자가 서드 파티 콘텐츠와 상호작용할 수 있다는 신호로 처리합니다.

측면 패널 페이지 만들기

측면 패널에는 사용자가 선택하고 사용할 수 있는 설치된 부가기능이 표시됩니다. 부가기능을 선택하면 iframe이 부가기능 매니페스트에서 지정한 측면 패널 URL을 로드합니다. 측면 패널에서 Meet 부가기능 SDK 기능에 액세스하려면 sidePanelClient를 인스턴스화해야 합니다.

const session = await window.meet.addon.createAddonSession({
      cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
    });
  const sidePanelClient = await session.getSidePanelClient();

다음은 공동작업을 시작하는 방법을 보여주는 코드 스니펫입니다.

<html style="width: 100%; height: 100%">

<head>
    <title>Side Panel Add-on</title>
<script src="https://www.gstatic.com/meetjs/addons/0.7.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-collaboration">
                    startCollaboration
                </button>
            </div>
            <div>
                <input type="text" id="sidePanelIframeUrl" style="margin-left: 20px"
                    value="https://your_side_panel_iframe.url" />
            </div>
            <div>
                <input type="text" id="mainStageIframeUrl" style="margin-left: 20px"
                    value="https://your_main_stage_iframe.url" />
            </div>
            <div>
                <input type="text" id="additionalData" style="margin-left: 20px" value="additional data" />
            </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-collaboration')
                .addEventListener(
                    'click', async () => {
                        const sidePanelIframeUrlInputElement =
                            document.getElementById('sidePanelIframeUrl');
                        const mainStageIframeUrlInputElement =
                            document.getElementById('mainStageIframeUrl');
                        const additionalDataInputElement =
                            document.getElementById('additionalData');
                        await sidePanelClient.start-collaboration({
                            sidePanelUrl: sidePanelIframeUrlInputElement.value,
                            mainStageUrl: mainStageIframeUrlInputElement.value,
                            additionalData: additionalDataInputElement.value,
                        });
                    });
        }
        document.body.onload = () => {
            init();
        };
    </script>
</body>

</html>

기본 스테이지 페이지 만들기

기본 단계는 더 큰 작업 공간이 필요한 경우 부가기능을 표시할 수 있는 기본 포커스 영역입니다. 공동작업이 시작되면 기본 단계가 열립니다 기본 단계에서 Meet 부가기능 SDK 기능에 액세스하려면 클라이언트 객체 MeetMainStageClient를 사용하면 됩니다.

const session = await window.meet.addon.createAddonSession({
      cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
    });
  const mainStageClient = await session.createMainStageClient();

다음은 getCollaborationStartingState가 포함된 기본 단계의 예를 보여주는 코드 스니펫입니다.

<html style="width: 100%; height: 100%">

<head>
    <title>Main Stage Add On</title>
    <script src="https://www.gstatic.com/meetjs/addons/0.7.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-collaboration-starting-state">
                    getCollaborationStartingState
                </button>
            </div>
            <div id="receivedCollaborationStartingState"
                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-collaboration-starting-state')
                .addEventListener(
                    'click', async () => {
                        document.getElementById(
                            'receivedCollaborationStartingState').textContent =
                            JSON.stringify(
                                await mainStageClient.getCollaborationStartingState());
                    });
        }
        document.body.onload = () => {
            init();
        };
    </script>
</body>

</html>