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