Uczestnicy spotkania mogą współpracować nad aktywnością dodatku do Google Meet. Gdy rozpocznie się wspólna aktywność, wszyscy uczestnicy spotkania otrzymają powiadomienie, że aktywność jest w toku.
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 jego zainstalowanie.
Jeśli dodatek nie jest dostępny na platformie uczestnika: uczestnik zostanie poinformowany, że nie może dołączyć do aktywności na swoim urządzeniu.
Gdy użytkownik dołączy do aktywności, wczyta własne elementy iframe z treścią dodatku. Możesz dostosować, czy nowi uczestnicy mają otwierać aktywność dodatkową we głównej części ekranu czy w panelu bocznym.
Rozpocznij aktywność
Aktywność jest uruchamiana przez wywołanie metody startActivity(), która używa 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 akceptuje zaproszenie do dołączenia do aktywności.
Dodatek może ustawić lub zaktualizować ActivityStartingState, wywołując metodę setActivityStartingState() w dowolnym momencie przed aktywnością lub w jej trakcie. Wywołania funkcji setActivityStartingState() można pominąć, jeśli parametr ActivityStartingState jest ustawiony wyłącznie w wywołaniu funkcji startActivity().
Krok 2. Dodatek rozpoczyna aktywność
Aktywność rozpoczyna się, gdy dodatek wywołuje metodę startActivity() w MeetSidePanelClient.
Metoda startActivity() przyjmuje obiekt ActivityStartingState jako parametr, więc można wywołać startActivity() zamiast setActivityStartingState().
Gdy użytkownik wybierze treści i będzie gotowy do rozpoczęcia aktywności, wywołaj metodę startActivity() w dodatku w ten sposób:
sidePanelClient.startActivity({
mainStageUrl: "https://app.example.com/mainstage",
additionalData: JSON.stringify({
// State to send to participants.
})
});
Po wywołaniu metody startActivity() Meet wykonuje te działania:
Dla innych uczestników: Meet wyświetla powiadomienie, że aktywność jest w toku.
Dla inicjatora: jeśli w
ActivityStartingStateokreślono adres URL głównej sceny, Meet otwiera główną scenę, używając adresu URL zActivityStartingState.
Krok 3. Pobierz stan początkowy aktywności
Gdy użytkownik dołącza do aktywności, dodatek jest wczytywany na głównym ekranie lub w panelu bocznym w zależności od ActivityStartingState.
Właściwość additionalData umożliwia udostępnianie danych początkowych (nazywanych też stanem) użytkownikom dołączającym do aktywności. Po zainicjowaniu 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ępnij stan dodatku w aktywności
Możesz też udostępniać stan między użytkownikami podczas aktywności, tworząc własny backend synchronizacji.
Przykład: dodatek do animacji na GitHubie
Przykładowy dodatek „Animation” na GitHubie obejmuje współpracę nad dodatkiem. Krok 1 z tego przewodnika nie jest uwzględniony w przykładzie. Zamiast tego, gdy inicjator dodatku kliknie w panelu bocznym przycisk „Rozpocznij animację”, wywoływana jest metoda startActivity() (krok 2), która wypełnia stan początkowy kolorem wybranym przez użytkownika. Po rozpoczęciu aktywności główny etap pobiera stan początkowy, wywołując metodę getActivityStartingState() (krok 3). Krok 4 został 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ą komunikatów między ramkami.
Ograniczenia
- Adresy URL określone w
ActivityStartingStatemuszą należeć do tego samego źródła co źródła określone w pliku manifestu dodatku. Więcej informacji znajdziesz w artykule o bezpieczeństwie dodatków. - Długości właściwości
sidePanelUrl,mainStageUrliadditionalDatamuszą być zgodne z odpowiednimi limitami rozmiaru opublikowanymi w dokumentacji pakietu SDK.