ה-API של הפעולה המשותפת משמש לסנכרון נתונים שרירותיים בין פגישות משתתפים. מדובר בנתונים שהאפליקציה שלכם תלויה בהם.
כדי להעביר את הנתונים, צריך לסדר אותם בסדר יורד ל-Uint8Array
. עבור
מידע נוסף, ראו ספרייה רגילה של JavaScript
.
אם אתם לא בטוחים איך לכתוב את הנתונים סריאליים, כדאי לבדוק את דוגמאות הקוד במעקב.
במדריך הזה מוסבר איך להטמיע את Co-Doing API.
שנתחיל?
כדי להשתמש ב-Co-Doing API, קודם צריך ליצור תוסף Meet פעם אחת והשלמת את השלבים האלה, אפשר להתחיל להשתמש ב-Co-Doing API מתוך התוסף החדש.
כדי להשתמש ב-Co-Doing API, תחילה עליכם לקבל
AddonSession
,
משמש כנקודת הכניסה לפעילויות משותפות:
TypeScript
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
יצירת לקוח של CoDoing
כדי להתחיל, צריך ליצור
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 במצב הנוכחי של האפליקציה.