הטמעת ה-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 במצב הנוכחי של האפליקציה.