شرکتکنندگان در یک جلسه میتوانند به طور مشترک روی یک فعالیت افزونه 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 باشد.
موضوعات مرتبط
- از حالت شروع فعالیت استفاده کنید
- از افزونه Meet استفاده کنید
- API Co-Doing را پیاده سازی کنید
- امنیت افزودنی