Class Action

การดำเนินการ

การดำเนินการที่เปิดใช้การโต้ตอบภายในองค์ประกอบ UI การดำเนินการไม่ได้เกิดขึ้นโดยตรงในไคลเอ็นต์ แต่จะเรียกใช้ฟังก์ชัน Callback ของ 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ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้
setInteraction(interaction)Actionตั้งค่าการโต้ตอบกับผู้ใช้ ซึ่งจำเป็นเมื่อเปิดกล่องโต้ตอบเท่านั้น
setLoadIndicator(loadIndicator)Actionกำหนดตัวบ่งชี้การโหลดที่จะแสดงขณะที่การดำเนินการกำลังดำเนินอยู่
setParameters(parameters)Actionอนุญาตให้ส่งพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback
setPersistValues(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),
);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
requiredWidgetStringชื่อของวิดเจ็ตที่การดำเนินการนี้ต้องการ

รีเทิร์น

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

พารามิเตอร์

ชื่อประเภทคำอธิบาย
allWidgetsAreRequiredBooleanไม่ว่าการดำเนินการจะต้องใช้ข้อมูลจากวิดเจ็ตทั้งหมดหรือไม่ ค่าเริ่มต้นคือ false

รีเทิร์น

Action — ออบเจ็กต์นี้สำหรับการเชื่อมโยง


setFunctionName(functionName)

ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้ ต้องระบุ

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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)

อนุญาตให้ส่งพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback ไม่บังคับ

พารามิเตอร์

ชื่อประเภทคำอธิบาย
parametersObjectทั้งคีย์และค่าต้องเป็นสตริง

รีเทิร์น

Action — ออบเจ็กต์นี้สำหรับการเชื่อมโยง


setPersistValues(persistValues)

ระบุว่าค่าแบบฟอร์มกำหนดโดยค่าของไคลเอ็นต์หรือค่าของเซิร์ฟเวอร์ หลังจากที่การตอบกลับการดำเนินการอัปเดต Card ของแบบฟอร์ม เมื่อตั้งค่าเป็น true ค่าของไคลเอ็นต์จะยังคงอยู่หลังจากที่เซิร์ฟเวอร์ตอบกลับ เมื่อตั้งค่าเป็น false ค่าของเซิร์ฟเวอร์ จะเขียนทับค่าของแบบฟอร์ม ค่าเริ่มต้นคือ false

การคงค่าไคลเอ็นต์ไว้จะช่วยป้องกันสถานการณ์ที่แบบฟอร์มเปลี่ยนแปลงโดยไม่คาดคิด หลังจากที่ผู้ใช้แก้ไข เช่น หากผู้ใช้แก้ไขTextInputหลังจากส่งแบบฟอร์ม แต่ก่อนที่เซิร์ฟเวอร์จะตอบกลับ หากค่าคงอยู่ การแก้ไขที่ผู้ใช้ทำจะยังคงอยู่หลังจากที่การตอบกลับของเซิร์ฟเวอร์อัปเดต Card มิฉะนั้น ค่าแบบฟอร์มจะกลับไปเป็นค่าที่ผู้ใช้ส่งไปยังแบบฟอร์มในตอนแรก

การคงค่าไคลเอ็นต์อาจรบกวนความสามารถของสคริปต์ในการล้างช่องแบบฟอร์มหรือ ลบล้างค่าแบบฟอร์ม ดังนั้นโปรดหลีกเลี่ยงการเปิดใช้การคงค่าสำหรับฟังก์ชันประเภทดังกล่าว หากไม่มี การคงอยู่ เราขอแนะนำให้คุณใช้ LoadIndicator.SPINNER สำหรับเหตุการณ์ เนื่องจากวิธีนี้จะล็อก UI และป้องกันไม่ให้ผู้ใช้แก้ไขก่อนที่เซิร์ฟเวอร์จะตอบกลับ หรือคุณจะใช้ 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 — ออบเจ็กต์นี้สำหรับการเชื่อมโยง

วิธีการที่เลิกใช้งานแล้ว