使用 Meet 插件开展协作

会议参与者可以协作处理 Google Meet 插件活动。协作活动开始后,会议中的所有参与者都会收到活动正在进行的通知。

此通知会根据插件的可用性和安装状态进行调整:

  • 如果参与者已安装插件:他们可以加入活动。

  • 如果参与者未安装该插件:系统会引导他们安装该插件。

  • 如果插件不适用于参与者的平台:系统会告知参与者无法使用当前设备加入活动。

当用户加入活动时,他们将加载包含您的插件内容的自己的 iframe。您可以自定义新加入者应在主舞台还是侧边栏中打开协作活动。

开始活动

通过调用 startActivity() 方法(使用 ActivityStartingState 接口)来启动 activity。

第 1 步(可选):插件设置 activity 启动状态

ActivityStartingState 包含有关插件初始状态的信息,当参与者接受加入活动的邀请时,系统会使用该信息。

插件可以在活动开始前或活动期间随时通过调用 setActivityStartingState() 方法来设置或更新 ActivityStartingState。如果 ActivityStartingState 仅在对 startActivity() 的调用中设置,则可以省略对 setActivityStartingState() 的调用。

第 2 步:插件开始活动

当插件在 MeetSidePanelClient 上调用 startActivity() 方法时,activity 开始运行。 startActivity() 方法接受 ActivityStartingState 对象作为参数,因此可以调用 startActivity(),而不是调用 setActivityStartingState()

用户完成内容选择并准备好开始 activity 后,请在插件中调用 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 属性,您可以与加入 activity 的用户分享初始数据(也称为状态)。初始化 MainStageClientSidePanelClient 后,您可以调用 getActivityStartingState() 方法来检索 additionalData 属性。

const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);

第 4 步(可选):在 activity 中共享插件状态

您还可以在活动进行期间在用户之间共享状态。您可以通过以下两种方式共享状态:

  • 通过自行编写同步后端来处理。
  • 使用 Co-Doing API,这是一种在用户之间共享任意数据的便捷快速的方式。

示例:GitHub 上的动画插件

GitHub 上的“动画”示例插件包含插件中的协作。本指南中的第 1 步未包含在试阅内容中。相反,当插件启动器点击侧边栏中的“Start the Animation”按钮时,系统会通过填充用户选择的颜色来填充初始状态,从而调用 startActivity() 方法(第 2 步)。在 activity 启动后,主舞台会通过调用 getActivityStartingState() 方法来检索初始状态(第 3 步)。此示例插件中,activity 期间参与者之间不共享状态(所选颜色),因此省略了第 4 步。不过,个别用户可以通过选择颜色来更改自己的状态,该颜色会使用帧到帧消息传递从侧边栏框架发送到主舞台框架。

限制条件