การดำเนินการที่เปิดใช้การโต้ตอบภายในองค์ประกอบ UI การดำเนินการไม่ได้เกิดขึ้นโดยตรงในไคลเอ็นต์ แต่จะเรียกใช้ฟังก์ชัน Callback ของ Apps Script พร้อมพารามิเตอร์ที่ไม่บังคับ
พร้อมให้บริการสำหรับส่วนเสริมของ Google Workspace และแอป Google Chat
const image = CardService.newImage().setOnClickAction( CardService.newAction().setFunctionName('handleImageClick').setParameters({ imageSrc: 'carImage' }), );
เมธอด
| วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
|---|---|---|
add | Action | เพิ่มชื่อวิดเจ็ตที่การดำเนินการนี้ต้องใช้สำหรับการส่งที่ถูกต้อง |
set | Action | ระบุว่าการดำเนินการนี้ต้องมีอินพุตจากวิดเจ็ตทั้งหมดหรือไม่ |
set | Action | ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้ |
set | Action | ตั้งค่าการโต้ตอบกับผู้ใช้ ซึ่งจำเป็นเมื่อเปิดกล่องโต้ตอบเท่านั้น |
set | Action | กำหนดตัวบ่งชี้การโหลดที่จะแสดงขณะที่การดำเนินการกำลังดำเนินอยู่ |
set | Action | อนุญาตให้ส่งพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback |
set | 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 | 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 | Boolean | ไม่ว่าการดำเนินการจะต้องใช้ข้อมูลจากวิดเจ็ตทั้งหมดหรือไม่ ค่าเริ่มต้นคือ
false |
รีเทิร์น
Action — ออบเจ็กต์นี้สำหรับการเชื่อมโยง
setFunctionName(functionName)
ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้ ต้องระบุ
พารามิเตอร์
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
function | 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 | Load | ตัวบ่งชี้ที่จะแสดง |
รีเทิร์น
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'), );
พารามิเตอร์
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
persist | Boolean | ดูว่าจะคงค่าไว้หรือไม่ ค่าเริ่มต้นคือ false |
รีเทิร์น
Action — ออบเจ็กต์นี้สำหรับการเชื่อมโยง