הטמעת ה-Co-Doing API

ה-API של הפעולה המשותפת משמש לסנכרון נתונים שרירותיים בין פגישות משתתפים. הנתונים האלה יכולים להיות כל נתון שהאפליקציה שלכם תלויה בו.

כדי שהנתונים יועברו, צריך לסדר אותם בסדרת Uint8Array. לקבלת מידע נוסף מידע נוסף, ראה הספרייה הרגילה של JavaScript .

אם אתם לא בטוחים איך לכתוב את הנתונים סריאליים, כדאי לבדוק את דוגמאות הקוד במעקב.

במדריך הזה מוסבר איך להטמיע את Co-Doing API.

שנתחיל?

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

כדי להשתמש ב-Co-Doing API, תחילה עליכם לקבל אובייקט AddonSession, נקודת הכניסה לפעילויות משותפות ב-Google Meet:

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

מחליפים את CLOUD_PROJECT_NUMBER במספר הפרויקט ב-Google Cloud.

יצירת לקוח לביצוע פעולות משותפות

כדי להתחיל, יוצרים אובייקט CoDoingClient מ-AddonSession.

כדי ליצור CoDoingClient, צריך לבצע קריאה ל-method‏ createCoDoingClient() ולספק אובייקט CoDoingDelegate.

באמצעות CoDoingDelegate נעשה שימוש ב-Co-Doing API מעדכנת את האפליקציה בכל פעם שמצב חדש שלה זמין. סביר להניח שכאשר ה onCoDoingStateChanged() נקראת 'המצב החדש', והאפליקציה מחילה באופן מיידי את המצב החדש.

בדוגמת הקוד הבאה מוסבר איך משתמשים ב-Co-Doing API:

TypeScript

interface MyState {
  someString: string;
  someNumber: number;
}

/**
 * Serialize/deserialize using JSON.stringify
 * You can use any method you want; this is included for as an example
 */
function toBytes(state: MyState): Uint8Array {
  return new TextEncoder().encode(JSON.stringify(state));
}

function fromBytes(bytes: Uint8Array): MyState {
  return JSON.parse(new TextDecoder().decode(bytes)) as MyState;
}

  const coDoingClient = await addonSession.createCoDoingClient({
    activityTitle: "ACTIVITY_TITLE",
    onCoDoingStateChanged(coDoingState: CoDoingState) {
      const newState = fromBytes(coDoingState.bytes);
      // This function should apply the new state to your ongoing CoDoing activity
    },
  });

מחליפים את ACTIVITY_TITLE בשם הפעילות.

ניהול המצב הנוכחי

כשמשתמשים מבצעים פעולה באפליקציה, האפליקציה צפויה להגיע באופן מיידי קוראת ל- broadcastStateUpdate() .

דוגמת הקוד הבאה מראה הטמעה של השיטה broadcastStateUpdate():

TypeScript

const myState: MyState = {
  someString: "SOME_STRING",
  someNumber: 0
};

document.getElementById('some-button').onClick(() => {
  myState.someNumber = myState.someNumber + 1;
  coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});

מחליפים את SOME_STRING במצב הנוכחי של האפליקציה.