تنفيذ واجهة برمجة التطبيقات Co-Doing API

تُستخدَم واجهة برمجة التطبيقات 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، يمكنك استدعاء الطريقة 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 بحالة التطبيق الحالية.