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 zActivityStartingState
.
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
- Adresy URL określone w
ActivityStartingState
muszą należeć do tego samego źródła co źródła określone w pliku manifestu dodatku. Więcej informacji znajdziesz w artykule Bezpieczeństwo dodatków. - Długość nazwy właściwości
sidePanelUrl
,mainStageUrl
iadditionalData
musi być zgodna z odpowiednimi limitami rozmiaru opublikowanymi w dokumentach referencyjnych pakietu SDK.
Powiązane artykuły
- Używanie stanu początkowego aktywności
- Używanie dodatku Meet
- Wdrażanie interfejsu Co-Doing API
- Zabezpieczenia dodatku