회의 참석자는 Google Meet 부가기능 활동에서 공동작업할 수 있습니다. 공동작업 활동이 시작되면 회의의 모든 참석자에게 활동이 진행 중이라는 알림이 전송됩니다.
이 알림은 부가기능의 사용 가능 여부 및 설치 상태에 따라 달라집니다.
참여자에게 부가기능이 설치된 경우: 활동에 참여할 수 있습니다.
참여자에게 부가기능이 설치되어 있지 않은 경우: 부가기능을 설치하라는 메시지가 표시됩니다.
참여자의 플랫폼에서 부가기능을 사용할 수 없는 경우: 현재 기기를 사용하여 활동에 참여할 수 없다는 알림이 표시됩니다.
사용자가 활동에 참여하면 부가기능 콘텐츠가 포함된 자체 iframe이 로드됩니다. 새로 참여한 사용자가 기본 스테이지에서 공동작업 활동을 열지 아니면 측면 패널에서 열지 여부를 맞춤설정할 수 있습니다.
활동 시작
활동은 ActivityStartingState
인터페이스를 사용하는 startActivity()
메서드를 호출하여 시작됩니다.
1단계 (선택사항): 부가기능이 활동 시작 상태를 설정합니다.
ActivityStartingState
에는 참여자가 활동 참여 초대를 수락할 때 사용되는 부가기능의 초기 상태에 관한 정보가 포함됩니다.
부가기능은 활동 전이나 활동 중에 언제든지 setActivityStartingState()
메서드를 호출하여 ActivityStartingState
를 설정하거나 업데이트할 수 있습니다. ActivityStartingState
가 startActivity()
호출에서만 설정된 경우 setActivityStartingState()
호출을 생략할 수 있습니다.
2단계: 부가기능에서 활동 시작
활동은 부가기능이 MeetSidePanelClient
에서 startActivity()
메서드를 호출할 때 시작됩니다.
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은ActivityStartingState
의 URL을 사용하여 기본 스테이지를 엽니다.
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단계는 생략됩니다. 그러나 개별 사용자는 색상을 선택하여 자신의 상태를 변경할 수 있으며, 이 색상은 프레임 간 메시지를 사용하여 측면 패널 프레임에서 기본 스테이지 프레임으로 전송됩니다.
제약조건
ActivityStartingState
에 지정된 URL은 부가기능 매니페스트에 지정된 출처와 동일한 출처에 속해야 합니다. 자세한 내용은 부가기능 보안을 참고하세요.sidePanelUrl
속성,mainStageUrl
속성,additionalData
속성 문자 길이는 SDK 참조 문서에 게시된 각 크기 제한을 준수해야 합니다.