يتم استخدام واجهة برمجة التطبيقات Co-Doing 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" بحالته الحالية.