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