שיתוף פעולה באמצעות תוסף ל-Meet

המשתתפים בפגישה יכולים לעבוד יחד על פעילות בתוסף ל-Google Meet. כשמתחילים פעילות משותפת, כל המשתתפים בפגישה מקבלים הודעה שהפעילות מתבצעת.

ההתראה הזו מותאמת לזמינות ולסטטוס ההתקנה של התוסף:

  • אם התוסף מותקן אצל המשתתף: הוא יכול להצטרף לפעילות.

  • אם התוסף לא מותקן אצל המשתתף: הוא יופנה להתקין את התוסף.

  • אם התוסף לא זמין בפלטפורמה של המשתתף: המשתתף יקבל הודעה שהוא לא יכול להצטרף לפעילות באמצעות המכשיר הנוכחי שלו.

כשמשתמש מצטרף לפעילות, הוא טוען את מסגרות ה-iframe שלו עם התוכן של התוסף. אתם יכולים לקבוע אם משתתפים חדשים יפתחו את הפעילות המשותפת בשלב הראשי או בחלונית הצדדית.

התחלת הפעילות

פעילות מתחילה כשקוראים לשיטה startActivity() שמשתמשת בממשק ActivityStartingState.

שלב 1 (אופציונלי): התוסף מגדיר את מצב ההתחלה של הפעילות

הפרמטר ActivityStartingState מכיל מידע על המצב ההתחלתי של התוסף שמשמש כשהמשתתף מאשר את ההזמנה להצטרף לפעילות.

תוסף יכול להגדיר או לעדכן את ActivityStartingState על ידי קריאה לשיטה setActivityStartingState() בכל שלב לפני הפעילות או במהלך הפעילות. אפשר להשמיט שיחות אל setActivityStartingState() אם ActivityStartingState מוגדר באופן בלעדי בשיחה אל startActivity().

שלב 2: התוסף מתחיל את הפעילות

הפעילות מתחילה כשהתוסף קורא לשיטה startActivity() ב-MeetSidePanelClient. ה-method ‏startActivity() מקבלת אובייקט ActivityStartingState כפרמטר, ולכן אפשר לקרוא ל-method ‏startActivity() במקום לקרוא ל-method ‏setActivityStartingState().

אחרי שהמשתמש בוחר את התוכן ומוכן להתחיל פעילות, צריך לקרוא לפונקציה startActivity() בתוסף באופן הבא:

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

כשמפעילים את השיטה startActivity(), מתבצעות הפעולות הבאות ב-Meet:

  • למשתתפים אחרים: ב-Meet מוצגת הודעה שהפעילות נמשכת.

  • למארח: אם צוינה כתובת URL של הבמה המרכזית בפרמטר ActivityStartingState, מערכת Meet פותחת את הבמה המרכזית באמצעות כתובת ה-URL מפרמטר ActivityStartingState.

שלב 3: קבלת מצב ההתחלה של הפעילות

כשמשתמש מצטרף לפעילות, התוסף נטען באזור הראשי או בחלונית הצדדית, בהתאם לActivityStartingState.

המאפיין additionalData מאפשר לכם לשתף נתונים ראשוניים (שנקראים גם מצב) עם משתמשים שמצטרפים לפעילות. אחרי הפעלת MainStageClient או SidePanelClient, אפשר להשתמש בשיטה getActivityStartingState() כדי לאחזר את המאפיין additionalData.

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

שלב 4 (אופציונלי): שיתוף מצב התוסף בפעילות

אפשר גם לשתף את הסטטוס בין המשתמשים בזמן שהפעילות מתבצעת. יש שתי דרכים לשתף את המצב:

  • אפשר לטפל בזה בעצמכם על ידי יצירת קצה עורפי משלכם לסנכרון.
  • אפשר להשתמש ב-Co-Doing API, שהוא דרך נוחה ומהירה לשתף נתונים שרירותיים בין משתמשים.

דוגמה: תוסף אנימציה ב-GitHub

התוסף לדוגמה 'אנימציה' ב-GitHub כולל שיתוף פעולה בתוסף. שלב 1 מהמדריך הזה לא נכלל בדוגמה. במקום זאת, כשיוזם התוסף לוחץ על הלחצן 'הפעלת האנימציה' בחלונית הצדדית, מתבצעת קריאה לשיטה startActivity() (שלב 2) על ידי מילוי מצב ההתחלה בצבע שנבחר על ידי המשתמש. אחרי שהפעילות מתחילה, הבמה הראשית מאחזרת את מצב ההתחלה על ידי קריאה לשיטת getActivityStartingState() (שלב 3). שלב 4 מושמט, כי המצב (הצבע שנבחר) לא משותף בין המשתתפים במהלך הפעילות בתוסף לדוגמה הזה. עם זאת, משתמשים בודדים יכולים לשנות את הסטטוס שלהם על ידי בחירת צבע, שנשלח ממסגרת החלונית הצדדית למסגרת הבמה הראשית באמצעות העברת הודעות בין מסגרות.

מגבלות

  • כתובות ה-URL שצוינו ב-ActivityStartingState צריכות להיות שייכות לאותו מקור כמו המקורות שצוינו במניפסט של התוסף. מידע נוסף זמין במאמר בנושא אבטחה של תוספים.
  • אורכי התווים של מאפייני sidePanelUrl property, mainStageUrl property ושל additionalData property צריכים להיות בהתאם למגבלות הגודל שלהם, כפי שמפורט במסמכי העיון של ה-SDK.