หน้าแรกเป็นฟีเจอร์ส่วนเสริมใหม่ของ 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 }
},
...
}
}
โปรดทราบว่าการดําเนินการนี้จะเทียบเท่ากับข้อความที่ตัดตอนมาต่อไปนี้
{
...
"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.clientPlatform
commonEventObject.hostApp
commonEventObject.userLocale
และcommonEventObject.userTimezone
(แต่โปรดดูข้อมูลข้อจํากัดในการเข้าถึงภาษาและเขตเวลาของผู้ใช้)
ดูรายละเอียดเพิ่มเติมได้ที่ออบเจ็กต์เหตุการณ์
การ์ดอื่นๆ ที่ไม่ใช่บริบท
UI ของส่วนเสริมอาจมีการ์ดที่ไม่มีบริบทเพิ่มเติมซึ่งไม่ได้อยู่ในหน้าแรก ตัวอย่างเช่น หน้าแรกอาจมีปุ่มที่เปิดการ์ด"การตั้งค่า" ซึ่งผู้ใช้ปรับเปลี่ยนการตั้งค่าส่วนเสริมได้ (เช่น การตั้งค่าดังกล่าวจะไม่ขึ้นอยู่กับบริบท และไม่เกี่ยวข้องกับบริบท)
การ์ดที่ไม่ใช่บริบทสร้างขึ้นเช่นเดียวกับการ์ดอื่นๆ ความแตกต่างเพียงอย่างเดียวคือการทํางานหรือเหตุการณ์จะสร้างและแสดงการ์ด ดูวิธีการนําทาง สําหรับรายละเอียดเกี่ยวกับวิธีสร้างการเปลี่ยนระหว่างการ์ด