تنفيذ واجهة برمجة التطبيقات 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 تطبيقك عندما يتوفّر فيه حالة جديدة. من المتوقّع أن يطبّق تطبيقك الحالة الجديدة على الفور عند استدعاء الطريقة 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 بحالة التطبيق الحالية.