Class Action

الإجراء

إجراء يتيح التفاعل داخل عناصر واجهة المستخدم لا يتم تنفيذ الإجراء مباشرةً على العميل، بل يتم استدعاء دالة استدعاء في Apps Script مع مَعلمات اختيارية.

تتوفّر هذه الميزة لإضافات Google Workspace وتطبيقات Google Chat.

const image = CardService.newImage().setOnClickAction(
    CardService.newAction().setFunctionName('handleImageClick').setParameters({
      imageSrc: 'carImage'
    }),
);

الطُرق

الطريقةنوع القيمة التي يتم عرضهاوصف قصير
addRequiredWidget(requiredWidget)Actionتُضيف أسماء التطبيقات المصغّرة التي يحتاج إليها هذا الإجراء لإرسال بيانات صالحة.
setAllWidgetsAreRequired(allWidgetsAreRequired)Actionيشير إلى ما إذا كان هذا الإجراء يتطلّب إدخالات من جميع التطبيقات المصغّرة.
setFunctionName(functionName)Actionتُستخدَم لضبط اسم دالة ردّ الاتصال التي سيتمّ استدعاؤها.
setInteraction(interaction)Actionلضبط التفاعل مع المستخدِم، وهو مطلوب فقط عند فتح مربّع حوار.
setLoadIndicator(loadIndicator)Actionلضبط مؤشر التحميل الذي يظهر أثناء تنفيذ الإجراء
setParameters(parameters)Actionالسماح بتمرير مَعلمات مخصّصة إلى دالة ردّ الاتصال
setPersistValues(persistValues)Actionتشير إلى ما إذا كانت قيم النموذج يتم تحديدها حسب قيم العميل أو قيم الخادم بعد أن تعدّل استجابة إجراء Card النموذج.

مستندات تفصيلية

addRequiredWidget(requiredWidget)

تُضيف أسماء التطبيقات المصغّرة التي يحتاج إليها هذا الإجراء لإرسال بيانات صالحة. إذا لم تكن التطبيقات المصغّرة في هذه القائمة لها قيمة عند تنفيذ هذا الإجراء، يتم إيقاف إرسال النموذج.

لا تتوفّر هذه الميزة إلا لتطبيقات Google Chat. لا تتوفّر الإضافات في Google Workspace.

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),
);

المعلمات

الاسمالنوعالوصف
requiredWidgetStringاسم التطبيق المصغّر المطلوب لهذا الإجراء

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.


setAllWidgetsAreRequired(allWidgetsAreRequired)

يشير إلى ما إذا كان هذا الإجراء يتطلّب إدخالات من جميع التطبيقات المصغّرة.

لا تتوفّر هذه الميزة إلا لتطبيقات Google Chat. لا تتوفّر الإضافات في Google Workspace.

// Creates a button with an action that requires inputs from all widgets.
const button = CardService.newTextButton()
                   .setText('Create notification')
                   .setOnClickAction(
                       CardService.newAction().setAllWidgetsAreRequired(true));

المعلمات

الاسمالنوعالوصف
allWidgetsAreRequiredBooleanما إذا كان الإجراء يتطلّب إدخالات من جميع التطبيقات المصغّرة. الإعداد التلقائي هو false.

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.


setFunctionName(functionName)

تُستخدَم لضبط اسم دالة ردّ الاتصال التي سيتمّ استدعاؤها. مطلوب.

المعلمات

الاسمالنوعالوصف
functionNameStringاسم الدالة يمكنك استخدام دوال من المكتبات المضمّنة، مثل Library.libFunction1.

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.


setInteraction(interaction)

لضبط التفاعل مع المستخدِم، وهو مطلوب فقط عند فتح مربّع حوار. إذا لم يتم تحديد الإجراء، يستجيب التطبيق من خلال تنفيذ Action كالمعتاد، مثل فتح رابط أو تشغيل دالة.

لا تتوفّر هذه الميزة إلا لتطبيقات Google Chat. لا تتوفّر الإضافات في Google Workspace.

const action = CardService.newAction()
                   .setFunctionName('handleDialog')
                   .setInteraction(CardService.Interaction.OPEN_DIALOG);

المعلمات

الاسمالنوعالوصف
interactionInteractionالتفاعل المطلوب تحديده

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.


setLoadIndicator(loadIndicator)

لضبط مؤشر التحميل الذي يظهر أثناء تنفيذ الإجراء

المعلمات

الاسمالنوعالوصف
loadIndicatorLoadIndicatorالمؤشر الذي سيتم عرضه.

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.


setParameters(parameters)

السماح بتمرير مَعلمات مخصّصة إلى دالة ردّ الاتصال اختيارية:

المعلمات

الاسمالنوعالوصف
parametersObjectيجب أن تكون كلّ من المفاتيح والقيم سلاسل.

الإرجاع

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'),
        );

المعلمات

الاسمالنوعالوصف
persistValuesBooleanما إذا كان سيتم الاحتفاظ بالقيم الإعداد التلقائي هو false.

الإرجاع

Action: هذا العنصر، لإنشاء سلسلة.

الطرق المتوقّفة