با استفاده از افزونه Meet همکاری کنید

شرکت‌کنندگان در یک جلسه می‌توانند به طور مشترک روی یک فعالیت افزونه Google Meet کار کنند. هنگامی که یک فعالیت مشترک شروع می شود، همه شرکت کنندگان در جلسه اعلانی دریافت می کنند که فعالیت در حال انجام است.

این اعلان با وضعیت در دسترس بودن و نصب افزونه سازگار است:

  • اگر شرکت‌کننده افزونه را نصب کرده باشد : می‌تواند به فعالیت بپیوندد.

  • اگر شرکت‌کننده افزونه را نصب نکرده باشد : به او دستور داده می‌شود که افزونه را نصب کند.

  • اگر افزونه برای پلتفرم شرکت‌کننده در دسترس نیست : به آنها اطلاع داده می‌شود که نمی‌توانند با استفاده از دستگاه فعلی خود به فعالیت بپیوندند.

وقتی کاربر به فعالیت می‌پیوندد، iframes خود را با محتوای افزودنی شما بارگیری می‌کند. می‌توانید تنظیم کنید که آیا وصال‌های جدید باید فعالیت مشترک را در مرحله اصلی یا پانل جانبی باز کنند.

فعالیت را شروع کنید

یک اکتیویتی با فراخوانی متد startActivity() که از رابط ActivityStartingState استفاده می کند، شروع می شود.

مرحله 1 (اختیاری): افزونه وضعیت شروع فعالیت را تنظیم می کند

ActivityStartingState حاوی اطلاعاتی درباره وضعیت اولیه برافزا است که زمانی که شرکت‌کننده دعوت برای پیوستن به فعالیت را می‌پذیرد، استفاده می‌شود.

این افزونه می‌تواند با فراخوانی متد setActivityStartingState() در هر زمان قبل یا در طول فعالیت، ActivityStartingState تنظیم یا به‌روزرسانی کند. اگر ActivityStartingState به طور انحصاری در فراخوانی startActivity() تنظیم شده باشد، فراخوانی به setActivityStartingState() را می توان حذف کرد.

مرحله 2: افزونه فعالیت را شروع می کند

فعالیت زمانی شروع می شود که افزونه متد startActivity() در MeetSidePanelClient فراخوانی کند. متد startActivity() یک شی ActivityStartingState را به عنوان پارامتر می گیرد، بنابراین startActivity() می توان به جای فراخوانی setActivityStartingState() فراخوانی کرد.

هنگامی که کاربر انتخاب محتوا را کامل کرد و برای شروع یک فعالیت آماده شد، متد startActivity() را در افزونه خود به صورت زیر فراخوانی کنید:

    sidePanelClient.startActivity({
        mainStageUrl: "https://app.example.com/mainstage",
        additionalData: JSON.stringify({
            // State to send to participants.
        })
    });

هنگامی که متد startActivity() فراخوانی می شود، Meet اقدامات زیر را انجام می دهد:

  • برای سایر شرکت کنندگان : Meet اعلانی را نشان می دهد که فعالیت در حال انجام است.

  • برای آغازگر : اگر URL مرحله اصلی در ActivityStartingState مشخص شده بود، Meet با استفاده از URL از ActivityStartingState ، مرحله اصلی را باز می کند.

مرحله 3: وضعیت شروع فعالیت را دریافت کنید

وقتی کاربر به فعالیت می‌پیوندد، بسته به ActivityStartingState ، افزونه شما را در صفحه اصلی یا پانل جانبی بارگذاری می‌کند.

با ویژگی additionalData ، می توانید داده های اولیه (که به آن حالت نیز گفته می شود) با کاربرانی که به فعالیت می پیوندند به اشتراک بگذارید. پس از مقداردهی اولیه یک MainStageClient یا SidePanelClient ، می‌توانید متد getActivityStartingState() فراخوانی کنید تا ویژگی additionalData بازیابی کنید.

const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);

مرحله 4 (اختیاری): وضعیت افزودنی را در یک فعالیت به اشتراک بگذارید

همچنین می‌توانید در زمانی که فعالیت در حال انجام است، وضعیت را بین کاربران به اشتراک بگذارید. شما می توانید حالت را به دو روش به اشتراک بگذارید:

  • خودتان آن را با نوشتن باطن همگام سازی خود مدیریت کنید.
  • از Co-Doing API استفاده کنید، که راهی راحت و سریع برای به اشتراک گذاشتن داده های دلخواه بین کاربران است.

مثال: افزونه انیمیشن در GitHub

نمونه افزودنی «انیمیشن» در GitHub شامل همکاری در یک افزونه است. مرحله 1 از این راهنما در نمونه گنجانده نشده است. در عوض، هنگامی که آغازگر افزونه روی دکمه "شروع انیمیشن" در پانل کناری کلیک می کند، متد startActivity() با پر کردن حالت شروع با رنگ انتخابی کاربر فراخوانی می شود ( گام 2 ). پس از شروع فعالیت، مرحله اصلی با فراخوانی متد getActivityStartingState() ( مرحله 3 ) وضعیت شروع را بازیابی می کند. مرحله 4 حذف شده است، زیرا حالت (رنگ انتخاب شده) در طول فعالیت در این نمونه افزودنی بین شرکت کنندگان به اشتراک گذاشته نمی شود. با این حال، کاربران فردی می توانند با انتخاب رنگی که از قاب پانل کناری به فریم مرحله اصلی با استفاده از پیام فریم به فریم ارسال می شود، وضعیت خود را تغییر دهند.

محدودیت ها

  • نشانی‌های اینترنتی مشخص‌شده در ActivityStartingState باید به همان مبدأ تعلق داشته باشند که در مانیفست افزودنی مشخص شده است. برای اطلاعات بیشتر، امنیت افزونه را ببینید.
  • طول کاراکتر ویژگی sidePanelUrl ، ویژگی mainStageUrl ، و طول کاراکتر ویژگی additionalData باید با محدودیت‌های اندازه مربوطه آن‌ها مطابق با اسناد مرجع SDK باشد.