หน้าแรกเป็นฟีเจอร์ใหม่ของส่วนเสริม Google Workspace ที่ช่วยให้คุณกำหนดการ์ดที่ไม่ขึ้นอยู่กับบริบทได้อย่างน้อย 1 รายการ การ์ดที่ไม่ขึ้นอยู่กับบริบทจะใช้เพื่อแสดงอินเทอร์เฟซผู้ใช้เมื่อผู้ใช้อยู่นอกบริบทที่เฉพาะเจาะจง เช่น เมื่อผู้ใช้ดูกล่องจดหมาย Gmail แต่ยังไม่ได้เปิดข้อความหรือฉบับร่าง
หน้าแรกช่วยให้คุณแสดงเนื้อหาที่ไม่ขึ้นกับบริบทได้ เช่นเดียวกับ แอป Google ใน แผงด้านข้างสำหรับการเข้าถึงด่วน (Keep, ปฏิทิน และ Tasks) หน้าแรกยังเป็นจุดเริ่มต้นเมื่อผู้ใช้เปิดส่วนเสริมเป็นครั้งแรก และมีประโยชน์ในการสอนผู้ใช้ใหม่ๆ เกี่ยวกับวิธีโต้ตอบกับส่วนเสริม
คุณกำหนดหน้าแรกของส่วนเสริมได้โดยระบุในไฟล์ Manifest ของโปรเจ็กต์
และใช้ฟังก์ชัน homepageTrigger อย่างน้อย 1 ฟังก์ชัน (ดูการกำหนดค่าหน้าแรก)
คุณมีหน้าแรกได้หลายหน้า โดยหน้าแรกหนึ่งหน้าสำหรับแอปพลิเคชันโฮสต์แต่ละรายการที่ส่วนเสริม ขยาย นอกจากนี้ คุณยังเลือกกำหนดหน้าแรกเริ่มต้นทั่วไปหน้าเดียวที่ใช้ในโฮสต์ซึ่งคุณไม่ได้ระบุหน้าแรกที่กำหนดเองได้ด้วย
หน้าแรกของส่วนเสริมจะแสดงเมื่อเป็นไปตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้
- เมื่อเปิดส่วนเสริมในโฮสต์เป็นครั้งแรก (หลังจากให้สิทธิ์)
- เมื่อผู้ใช้เปลี่ยนจากบริบทตามบริบทเป็นบริบทที่ไม่ใช่บริบท ขณะที่ส่วนเสริมเปิดอยู่ เช่น จากการแก้ไขกิจกรรมในปฏิทินไปยังปฏิทินหลัก
- เมื่อผู้ใช้คลิกปุ่มย้อนกลับหลายครั้งพอที่จะนำการ์ดอื่นๆ ทั้งหมดออกจากกองซ้อนภายใน
- เมื่อการโต้ตอบ UI ในการ์ดที่ไม่ใช่บริบทส่งผลให้เกิดการเรียก
Navigation.popToRoot()
การออกแบบหน้าแรกไม่ใช่ข้อบังคับ แต่เราขอแนะนำอย่างยิ่ง หากคุณไม่ได้กำหนดหน้าแรก ระบบจะใช้การ์ดทั่วไปที่มีชื่อส่วนเสริมของคุณทุกครั้งที่ผู้ใช้จะไปยังหน้าแรก
การกำหนดค่าหน้าแรก
ส่วนเสริมของ Google Workspace ใช้ฟิลด์
addOns.common.homepageTrigger
เพื่อกำหนดค่าเนื้อหาส่วนเสริมหน้าแรกเริ่มต้น (ไม่ใช่ตามบริบท) สำหรับ
แอปพลิเคชันโฮสต์ทั้งหมดในไฟล์ Manifest ของส่วนเสริม
{
// ...
"addOns": {
// ...
"common": {
// ...
"homepageTrigger": {
"runFunction": "myFunction",
"enabled": true
}
}
}
}
runFunction: ชื่อของฟังก์ชัน Apps Script ที่เฟรมเวิร์กส่วนเสริมของ Google Workspace เรียกใช้เพื่อแสดงการ์ดส่วนเสริมของหน้าแรก ฟังก์ชันนี้คือฟังก์ชันทริกเกอร์หน้าแรก ฟังก์ชันนี้ต้องสร้าง และแสดงผลอาร์เรย์ของออบเจ็กต์Cardที่ประกอบกันเป็น UI ของหน้าแรก หากมีการ์ดมากกว่า 1 ใบ ระบบจะแสดงส่วนหัวของการ์ดในรายการที่ผู้ใช้เลือกได้ (ดูการแสดงการ์ดหลายใบ)enabled: ควรกำหนดให้การ์ดหน้าแรกใช้งานได้สำหรับขอบเขตนี้หรือไม่ ฟิลด์นี้เป็นฟิลด์ที่ไม่บังคับและมีค่าเริ่มต้นเป็นtrueการตั้งค่านี้เป็นfalseจะทําให้ระบบปิดใช้การ์ดหน้าแรกสําหรับโฮสต์ทั้งหมด (เว้นแต่จะมีการลบล้างสําหรับโฮสต์นั้น ดูด้านล่าง)
นอกเหนือจากการกำหนดค่าทั่วไปแล้ว ยังมีการลบล้างต่อโฮสต์ที่มีโครงสร้างเหมือนกันใน
การกำหนดค่าของแอปพลิเคชันโฮสต์แต่ละรายการที่ addOns.gmail.homepageTrigger, addOns.calendar.homepageTrigger
และอื่นๆ
{
...
"addOns": {
...
"common": {
// By default, call 'buildHomePage' to render homepage content
// in all hosts. Since calendar.homepageTrigger below overrides
// this in Calendar and Drive and the homepageTrigger is disabled
// for Gmail, this homepage function never executes.
"homepageTrigger": { "runFunction": "buildHomePage" }
},
"calendar": {
// Show customized homepage content for Calendar only.
"homepageTrigger": { "runFunction": "buildCalendarHomepage" }
},
"drive": {
// Show customized homepage content for Drive only.
"homepageTrigger": { "runFunction": "buildDriveHomepage" }
}
"gmail": {
// Disable homepage add-on content in Gmail.
"homepageTrigger": { "enabled": false }
},
...
}
}
โปรดทราบว่าการดำเนินการนี้เทียบเท่ากับข้อความที่ตัดตอนจากไฟล์ Manifest ต่อไปนี้
{
...
"addOns": {
...
"common": { /* ... */ }, // Omitted a default homepageTrigger specification.
"calendar": {
// Show customized homepage content for Calendar only.
"homepageTrigger": { "runFunction": "myCalendarFunction" }
},
"drive": {
// Show customized homepage content for Drive only.
"homepageTrigger": { "runFunction": "myDriveFunction" }
}
"gmail": { /* ... */ },
...
}
}
คุณไม่จำเป็นต้องกรอกข้อมูลในส่วนใดๆ ของhomepageTrigger อย่างไรก็ตาม UI ที่แสดงสำหรับ
ส่วนเสริมในผลิตภัณฑ์โฮสต์ที่กำหนดจะขึ้นอยู่กับฟิลด์ Manifest ที่เกี่ยวข้อง
และมี homepageTrigger ที่เชื่อมโยงหรือไม่ ตัวอย่างต่อไปนี้แสดงฟังก์ชันทริกเกอร์ของส่วนเสริมที่จะดำเนินการ (หากมี) เพื่อสร้าง UI หน้าแรกสำหรับการกำหนดค่า Manifest ต่างๆ

ออบเจ็กต์เหตุการณ์ในหน้าแรก
เมื่อมีการเรียกใช้ ฟังก์ชันทริกเกอร์หน้าแรก (runFunction) ที่อธิบายไว้ข้างต้นจะ
ส่งออบเจ็กต์เหตุการณ์
ที่มีข้อมูลจากบริบทการเรียกใช้
ออบเจ็กต์เหตุการณ์ในหน้าแรกจะไม่มีวิดเจ็ตหรือข้อมูลตามบริบท โดยข้อมูลที่ส่งจะจำกัดไว้เฉพาะฟิลด์ออบเจ็กต์เหตุการณ์ทั่วไปต่อไปนี้
commonEventObject.clientPlatformcommonEventObject.hostAppcommonEventObject.userLocaleและcommonEventObject.userTimezone(แต่ดูการเข้าถึงภาษาและเขตเวลาของผู้ใช้ เพื่อดูข้อมูลข้อจํากัด)
ดูรายละเอียดเพิ่มเติมได้ที่ออบเจ็กต์เหตุการณ์
การ์ดอื่นๆ ที่ไม่มีบริบท
UI ของส่วนเสริมอาจมีการ์ดเพิ่มเติมที่ไม่ใช่การ์ดหน้าแรกและไม่มีบริบท เช่น หน้าแรกอาจมีปุ่มที่เปิดการ์ด "การตั้งค่า" ซึ่งผู้ใช้สามารถปรับการตั้งค่าส่วนเสริมได้ (การตั้งค่าดังกล่าวส่วนใหญ่จะไม่มีบริบทและจึงเป็นแบบไม่มีบริบท)
การ์ดที่ไม่ใช่บริบทจะสร้างขึ้นเหมือนกับการ์ดอื่นๆ ความแตกต่างเพียงอย่างเดียวคือ การดำเนินการหรือเหตุการณ์ที่สร้างและแสดงการ์ด ดูรายละเอียดเกี่ยวกับวิธีสร้างการเปลี่ยนภาพระหว่างการ์ดได้ที่วิธีการนำทาง