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