הטמעת ה-Co-Doing API

ה-API של שיתוף בזמן אמת ב-Google Meet משמש לסנכרון נתונים שרירותיים בין פגישות משתתפים. מדובר בנתונים שהאפליקציה שלכם תלויה בהם.

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

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

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

צור CoDoingClient

כדי להתחיל, צריך ליצור CoDoingClient מAddonSession שיצרת במאמר תחילת העבודה.

כדי ליצור CoDoingClient, צריך לקרוא אל AddonSession.createCoDoingClient ונספק CoDoingDelegate.

באמצעות CoDoingDelegate נעשה שימוש ב-Co-Doing API מעדכנת את האפליקציה בכל פעם שמצב חדש זמין בה. צפוי שכאשר CoDoingDelegate.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 newState to your ongoing CoDoing activity
    },
  });

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

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

כשמשתמשים מבצעים פעולה באפליקציה, האפליקציה צפויה שיחות מיידיות CoDoingClient.broadcastStateUpdate

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