הטמעת ה-Co-Doing API

ה-Google Meet Live Share Co-Doing API משמש לסנכרון נתונים שרירותיים בין המשתתפים בפגישות. אלה יכולים להיות כל נתונים שהאפליקציה שלכם תלויה בהם.

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

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

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

צור CoDoingClient

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

כדי ליצור CoDoingClient, קוראים ל-method AddonSession.createCoDoingClient ומציינים את CoDoingDelegate.

CoDoingDelegate מאפשר ל-Co-Doing API לעדכן את האפליקציה בכל פעם שיש לה מצב חדש זמין. סביר להניח שכאשר מפעילים קריאה ל-method 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 במצב הנוכחי של האפליקציה.