عملی که امکان تعامل درون عناصر رابط کاربری را فراهم میکند. این عمل مستقیماً روی کلاینت اتفاق نمیافتد، بلکه یک تابع فراخوانی Apps Script با پارامترهای اختیاری را فراخوانی میکند.
برای افزونههای Google Workspace و برنامههای Google Chat در دسترس است.
const image = CardService.newImage().setOnClickAction( CardService.newAction().setFunctionName('handleImageClick').setParameters({ imageSrc: 'carImage' }), );
روشها
| روش | نوع بازگشتی | شرح مختصر |
|---|---|---|
add Required Widget(requiredWidget) | Action | نام ویجتهایی را که این اکشن برای ارسال معتبر به آنها نیاز دارد، اضافه میکند. |
set All Widgets Are Required(allWidgetsAreRequired) | Action | نشان میدهد که آیا این اقدام به ورودی از همه ویجتها نیاز دارد یا خیر. |
set Function Name(functionName) | Action | نام تابع فراخوانی برگشتی (callback function) که قرار است فراخوانی شود را تعیین میکند. |
set Interaction(interaction) | Action | تعامل با کاربر را تنظیم میکند، که فقط هنگام باز کردن یک کادر محاورهای مورد نیاز است. |
set Load Indicator(loadIndicator) | Action | نشانگر بارگذاری را که هنگام انجام عمل نمایش داده میشود، تنظیم میکند. |
set Parameters(parameters) | Action | اجازه میدهد پارامترهای سفارشی به تابع فراخوانی (callback) ارسال شوند. |
set Persist Values(persistValues) | Action | نشان میدهد که آیا مقادیر فرم پس از بهروزرسانی Card فرم توسط یک پاسخ اکشن، توسط مقادیر کلاینت یا مقادیر سرور تعیین میشوند. |
مستندات دقیق
addRequiredWidget(requiredWidget)
نام ویجتهایی را که این اکشن برای ارسال معتبر به آنها نیاز دارد، اضافه میکند. اگر ویجتهای موجود در این لیست هنگام فراخوانی این اکشن مقداری نداشته باشند، ارسال فرم لغو میشود.
برای افزونههای Google Workspace و برنامههای Google Chat در دسترس است.
const textInput = CardService.newTextInput() .setFieldName('text_input_1') .setTitle('Text input title'); // Creates a footer button that requires an input from the above TextInput // Widget. const action = CardService.newAction() .setFunctionName('notificationCallback') .addRequiredWidget('text_input_1'); const fixedFooter = CardService.newFixedFooter().setPrimaryButton( CardService.newTextButton().setText('help').setOnClickAction(action), );
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
required Widget | String | نام ویجت مورد نیاز این اقدام. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setAllWidgetsAreRequired(allWidgetsAreRequired)
نشان میدهد که آیا این اقدام به ورودی از همه ویجتها نیاز دارد یا خیر.
برای افزونههای Google Workspace و برنامههای Google Chat در دسترس است.
// Creates a button with an action that requires inputs from all widgets. const button = CardService.newTextButton() .setText('Create notification') .setOnClickAction( CardService.newAction().setAllWidgetsAreRequired(true));
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
all Widgets Are Required | Boolean | اینکه آیا این اکشن به ورودی از همه ویجتها نیاز دارد یا خیر. مقدار پیشفرض false است. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setFunctionName(functionName)
نام تابع فراخوانی (callback) را تعیین میکند. الزامی است.
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
function Name | String | نام تابع. میتوانید از توابع موجود در کتابخانههای موجود، مانند Library.libFunction1 استفاده کنید. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setInteraction(interaction)
تعامل با کاربر را تنظیم میکند، که فقط هنگام باز کردن یک کادر محاورهای مورد نیاز است. اگر مشخص نشود، برنامه با اجرای یک Action مانند باز کردن یک لینک یا اجرای یک تابع - طبق معمول - پاسخ میدهد.
فقط برای برنامههای Google Chat در دسترس است. برای افزونههای Google Workspace در دسترس نیست.
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
interaction | Interaction | تعاملی که باید مشخص شود. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setLoadIndicator(loadIndicator)
نشانگر بارگذاری را که هنگام انجام عمل نمایش داده میشود، تنظیم میکند.
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
load Indicator | Load Indicator | نشانگری که نمایش داده میشود. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setParameters(parameters)
اجازه میدهد پارامترهای سفارشی به تابع فراخوانی ارسال شوند. اختیاری.
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
parameters | Object | هم کلیدها و هم مقادیر باید رشته باشند. |
بازگشت
Action — این شیء، برای زنجیرهسازی.
setPersistValues(persistValues)
نشان میدهد که آیا مقادیر فرم پس از بهروزرسانی Card فرم توسط یک پاسخ اکشن، توسط مقادیر کلاینت تعیین میشوند یا توسط مقادیر سرور. وقتی روی true تنظیم شود، مقادیر کلاینت پس از پاسخ سرور باقی میمانند. وقتی روی false تنظیم شود، مقادیر سرور روی مقادیر فرم بازنویسی میشوند. مقدار پیشفرض روی false است.
حفظ مقادیر کلاینت به جلوگیری از موقعیتهایی که یک فرم پس از ویرایش توسط کاربر به طور غیرمنتظره تغییر میکند، کمک میکند. به عنوان مثال، اگر کاربر پس از ارسال فرم، اما قبل از پاسخ سرور، ویرایشی در TextInput انجام دهد. اگر مقادیر حفظ شوند، ویرایشی که کاربر انجام داده است پس از بهروزرسانی Card توسط پاسخ سرور باقی میماند؛ در غیر این صورت، مقدار فرم به مقداری که کاربر در ابتدا به فرم ارسال کرده بود، برمیگردد.
مقادیر پایدار کلاینت میتواند در توانایی اسکریپت شما برای پاک کردن فیلدهای فرم یا لغو مقادیر فرم اختلال ایجاد کند، بنابراین از فعال کردن پایداری برای این نوع عملکرد خودداری کنید. بدون پایداری، توصیه میشود از LoadIndicator.SPINNER برای رویدادها استفاده کنید، زیرا این کار رابط کاربری را قفل میکند و از ویرایشهای کاربر قبل از پاسخ سرور جلوگیری میکند. به عنوان یک جایگزین، میتوانید LoadIndicator.NONE استفاده کنید و مطمئن شوید که هر عنصر در فرم دارای یک عمل onChange است.
// Creates a button with an action that persists the client's values as the // on-click action. const button = CardService.newTextButton() .setText('Create notification') .setOnClickAction( CardService.newAction().setPersistValues(true).setFunctionName( 'functionName'), );
پارامترها
| نام | نوع | توضیحات |
|---|---|---|
persist Values | Boolean | آیا مقادیر حفظ شوند یا خیر. پیشفرض false است. |
بازگشت
Action — این شیء، برای زنجیرهسازی.