การดำเนินการที่เปิดใช้การโต้ตอบภายในองค์ประกอบ UI การดำเนินการไม่ได้เกิดขึ้นโดยตรงใน ไคลเอ็นต์ แต่จะเรียกใช้ฟังก์ชัน Callback ของ Apps Script ด้วยพารามิเตอร์ที่ไม่บังคับ
ใช้ได้กับส่วนเสริมของ Google Workspace และแอป Google Chat
var 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 Chat เท่านั้น ใช้ไม่ได้กับส่วนเสริมของ Google Workspace
var textInput = CardService.newTextInput() .setFieldName("text_input_1") .setTitle("Text input title") // Creates a footer button that requires an input from the above TextInput Widget. var action = CardService.newAction() .setFunctionName("notificationCallback") .addRequiredWidget("text_input_1"); var fixedFooter = CardService .newFixedFooter() .setPrimaryButton( CardService .newTextButton() .setText("help") .setOnClickAction(action));
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
requiredWidget | String | ชื่อของวิดเจ็ตที่จำเป็นสำหรับการดำเนินการนี้ |
รีเทิร์น
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));
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
allWidgetsAreRequired | Boolean | การดำเนินการจำเป็นต้องมีอินพุตจากวิดเจ็ตทั้งหมดหรือไม่ ค่าเริ่มต้นคือ
false |
รีเทิร์น
Action
— ออบเจ็กต์นี้สำหรับการทำห่วงโซ่
setFunctionName(functionName)
ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้ ต้องระบุ
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
functionName | 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)
กำหนดสัญญาณบอกสถานะการโหลดที่จะแสดงขึ้นขณะที่มีการดำเนินการ
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
loadIndicator | LoadIndicator | ตัวบ่งชี้ที่จะแสดง |
รีเทิร์น
Action
— ออบเจ็กต์นี้สำหรับการทำห่วงโซ่
setParameters(parameters)
อนุญาตให้ส่งผ่านพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback ไม่บังคับ
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
parameters | Object | ทั้งคีย์และค่าต้องเป็นสตริง |
รีเทิร์น
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'));
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
persistValues | Boolean | เลือกว่าจะเก็บค่าไว้หรือไม่ ค่าเริ่มต้นคือ false |
รีเทิร์น
Action
— ออบเจ็กต์นี้สำหรับการทำห่วงโซ่