Współpraca przy użyciu dodatku Meet

Uczestnicy spotkania mogą wspólnie pracować nad aktywnością dodatku Google Meet. Gdy rozpocznie się aktywność grupowa, wszyscy uczestnicy spotkania otrzymają powiadomienie o jej rozpoczęciu.

To powiadomienie jest dostosowane do dostępności i stanu instalacji dodatku:

  • Jeśli uczestnik ma zainstalowany dodatek: może dołączyć do aktywności.

  • Jeśli uczestnik nie ma zainstalowanego dodatku: zostanie poproszony o zainstalowanie dodatku.

  • Jeśli dodatek jest niedostępny na platformie uczestnika: użytkownik zostanie poinformowany, że nie może dołączyć do aktywności na obecnym urządzeniu.

Gdy użytkownik dołączy do aktywności, wczyta własne elementy iframe z Twoim dodatkiem. Możesz określić, czy nowi uczestnicy mają otwierać wspólną aktywność w głównej części ekranu czy w panelu bocznym.

Rozpocznij aktywność

Aktywność jest uruchamiana przez wywołanie metody startActivity(), która korzysta z interfejsu ActivityStartingState.

Krok 1 (opcjonalny): dodatek ustawia stan początkowy aktywności

ActivityStartingState zawiera informacje o początkowym stanie dodatku, który jest używany, gdy uczestnik zaakceptuje zaproszenie do dołączenia do aktywności.

Dodatek może ustawić lub zaktualizować wartość ActivityStartingState, wywołując metodę setActivityStartingState() w dowolnym momencie przed lub w trakcie aktywności. Połączenia z setActivityStartingState() można pominąć, jeśli w połączeniu z startActivity() jest ustawiony wyłącznie parametr ActivityStartingState.

Krok 2. Dodatek rozpoczyna aktywność

Aktywność rozpoczyna się, gdy dodatek wywoła metodę startActivity() w obiekcie MeetSidePanelClient. Metoda startActivity() przyjmuje jako parametr obiekt ActivityStartingState, więc zamiast wywoływać setActivityStartingState(), można wywołać startActivity().

Gdy użytkownik zakończy wybór treści i będzie gotowy do rozpoczęcia aktywności, wywołaj metodę startActivity() w swojej wtyczce w ten sposób:

    sidePanelClient.startActivity({
        mainStageUrl: "https://app.example.com/mainstage",
        additionalData: JSON.stringify({
            // State to send to participants.
        })
    });

Gdy wywołana zostanie metoda startActivity(), Meet wykona te czynności:

  • Dla innych uczestników: Meet wyświetla powiadomienie, że aktywność jest w toku.

  • Dla inicjatora: jeśli w ActivityStartingState podano adres URL głównej sceny, Meet otworzy główną scenę, używając adresu URL z ActivityStartingState.

Krok 3. Pobierz stan początkowy aktywności

Gdy użytkownik dołączy do aktywności, załaduje Twoje rozszerzenie do głównego okna lub panelu bocznego w zależności od ActivityStartingState.

Dzięki właściwości additionalData możesz udostępniać dane początkowe (nazywane też stanem) użytkownikom dołączającym do aktywności. Po inicjalizacji obiektu MainStageClient lub SidePanelClient możesz wywołać metodę getActivityStartingState(), aby pobrać właściwość additionalData.

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

Krok 4 (opcjonalny): udostępnianie stanu dodatku w aktywności

Możesz też udostępniać stan między użytkownikami podczas trwania aktywności. Stan możesz udostępnić na 2 sposoby:

  • Zajmij się tym samodzielnie, tworząc własny backend synchronizacji.
  • Użyj interfejsu Co-Doing API, który jest wygodnym i szybkim sposobem na udostępnianie dowolnych danych między użytkownikami.

Przykład: dodatek animacji w GitHub

Przykładowy dodatek „Animacja” na GitHubie umożliwia współpracę w dodatku. Krok 1 z tego przewodnika nie jest uwzględniony w próbce. Gdy osoba inicjująca wtyczkę kliknie przycisk „Rozpocznij animację” w panelu bocznym, wywoływana jest metoda startActivity() (Krok 2), która wypełnia stan początkowy wybranym przez użytkownika kolorem. Po rozpoczęciu aktywności etap główny pobiera stan początkowy, wywołując metodę getActivityStartingState() (Krok 3). Krok 4 jest pominięty, ponieważ stan (wybrany kolor) nie jest udostępniany uczestnikom podczas aktywności w tym przykładowym dodatku. Poszczególni użytkownicy mogą jednak zmienić swój stan, wybierając kolor, który jest wysyłany z ramki panelu bocznego do ramki głównej za pomocą wiadomości między ramkami.

Ograniczenia