會議參與者可以共同完成 Google Meet 外掛程式活動。協作活動開始後,會議中的所有參與者都會收到活動進行中的通知。
這則通知會根據外掛程式的可用性和安裝狀態進行調整:
如果參與者已安裝外掛程式:他們可以加入活動。
如果參與者未安裝外掛程式:系統會引導他們安裝外掛程式。
如果外掛程式不適用於參與者的平台:系統會通知參與者無法使用目前的裝置加入活動。
使用者加入活動時,系統會載入他們自己的 iframe 和附加內容。您可以自訂新加入者應在主畫面或側邊面板中開啟協作活動。
開始活動
系統會呼叫 startActivity()
方法來啟動活動,該方法會使用 ActivityStartingState
介面。
步驟 1 (選用):外掛程式設定活動的啟動狀態
ActivityStartingState
包含外掛程式的初始狀態資訊,當參與者接受邀請加入活動時,系統會使用這項資訊。
外掛程式可在活動前或活動期間的任何時間呼叫 setActivityStartingState()
方法,藉此設定或更新 ActivityStartingState
。如果 ActivityStartingState
僅在呼叫 startActivity()
時設定,則可以省略對 setActivityStartingState()
的呼叫。
步驟 2:外掛程式啟動活動
當外掛程式在 MeetSidePanelClient
上呼叫 startActivity()
方法時,活動就會開始。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
中指定了主畫面網址,Meet 會使用ActivityStartingState
中的網址開啟主畫面。
步驟 3:取得活動的啟動狀態
當使用者加入活動時,他們會根據 ActivityStartingState
將外掛程式載入至主畫面或側邊面板。
您可以使用 additionalData
屬性,與加入活動的使用者分享初始資料 (也稱為狀態)。初始化 MainStageClient
或 SidePanelClient
後,您可以呼叫 getActivityStartingState()
方法來擷取 additionalData
屬性。
const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);
步驟 4 (選用):在活動中分享外掛程式狀態
您也可以在活動進行期間,在使用者之間共用狀態。您可以透過兩種方式分享狀態:
- 自行編寫同步處理後端,自行處理。
- 使用 Co-Doing API,這是在使用者之間分享任意資料的快速便捷方式。
範例:GitHub 上的動畫外掛程式
GitHub 上的 「Animation」範例外掛程式包含外掛程式中的協作功能。範例中未包含本指南的步驟 1。相反地,當外掛程式啟動程式點選側邊面板中的「Start the Animation」按鈕時,系統會使用使用者選取的顏色填入起始狀態,進而呼叫 startActivity()
方法 (步驟 2)。活動啟動後,主階段會呼叫 getActivityStartingState()
方法,藉此擷取啟動狀態 (步驟 3)。由於在這個範例外掛程式中,活動期間不會在參與者之間共用狀態 (所選顏色),因此省略了步驟 4。不過,個別使用者可以透過選取顏色來變更自己的狀態,這項顏色會透過畫面間訊息傳送從側邊面板畫面傳送至主畫面畫面。
限制
ActivityStartingState
中指定的網址必須屬於與外掛程式資訊清單中指定的來源相同的來源。詳情請參閱「外掛程式安全性」。sidePanelUrl
屬性、mainStageUrl
屬性和additionalData
屬性的字元長度,必須符合 SDK 參考文件中公布的大小限制。