会议参与者可以协作开展 Google Meet 插件活动。协作活动开始后,会议中的所有参与者都会收到活动正在进行的通知。
此通知会根据插件的可用性和安装状态进行调整:
如果参与者已安装插件: 他们可以加入活动。
如果参与者未安装该插件:系统会引导他们安装该插件。
如果插件不适用于参与者的平台:系统会通知他们无法使用当前设备加入活动。
当用户加入活动时,系统会加载他们自己的 iframe,其中包含您的插件内容。您可以自定义新加入者应在主舞台还是侧边栏中打开协作活动。
开始活动
通过调用 startActivity() 方法(该方法使用 ActivityStartingState 接口)启动 activity。
第 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 步:获取 activity 的起始状态
当用户加入活动时,他们会根据 ActivityStartingState 将您的插件加载到主舞台或侧边栏中。
借助 additionalData 属性,您可以与加入活动的用户共享初始数据(也称为状态)。初始化 MainStageClient 或 SidePanelClient 后,您可以调用 getActivityStartingState() 方法来检索 additionalData 属性。
const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);
第 4 步(可选):在活动中共享插件状态
您还可以通过编写自己的同步后端,在活动进行期间在用户之间共享状态。
示例:GitHub 上的动画插件
GitHub 上的“动画”示例插件包含插件中的协作功能。本指南中的第 1 步不包含在示例中。相反,当插件发起者点击侧边栏中的“Start the Animation”(开始动画)按钮时,系统会调用 startActivity() 方法(第 2 步),并使用用户选择的颜色填充初始状态。activity 启动后,主舞台会调用 getActivityStartingState() 方法来检索起始状态(第 3 步)。第 4 步已省略,因为在此示例插件中,活动期间参与者之间不会共享状态(所选颜色)。不过,个别用户可以通过选择颜色来更改自己的状态,该颜色会使用框架间消息传递从侧边栏框架发送到主舞台框架。
限制条件
ActivityStartingState中指定的网址必须与插件清单中指定的来源属于同一来源。如需了解详情,请参阅插件安全性。sidePanelUrl属性、mainStageUrl属性和additionalData属性的字符长度必须符合 SDK 参考文档中发布的各自大小限制。