ทริกเกอร์การแจ้งเตือนช่วยให้คุณตั้งเวลาการแจ้งเตือนในเครื่องที่ไม่ต้องใช้การเชื่อมต่อเครือข่ายได้ ซึ่งเหมาะสําหรับกรณีการใช้งาน เช่น แอปปฏิทิน
ทริกเกอร์การแจ้งเตือนคืออะไร
นักพัฒนาเว็บสามารถแสดงการแจ้งเตือนได้โดยใช้ Web Notifications API ฟีเจอร์นี้มักจะใช้กับ Push API เพื่อแจ้งให้ผู้ใช้ทราบถึงข้อมูลที่ขึ้นอยู่กับเวลา เช่น เหตุการณ์ข่าวด่วนหรือข้อความที่ได้รับ ซึ่งจะแสดงโดยการเรียกใช้ JavaScript บนอุปกรณ์ของผู้ใช้
ปัญหาของ Push API คือ API ดังกล่าวไม่น่าเชื่อถือสำหรับการทริกเกอร์การแจ้งเตือน ซึ่งต้องแสดงเมื่อตรงกับเงื่อนไขบางอย่าง เช่น เวลาหรือสถานที่ ตัวอย่างเงื่อนไขตามเวลาคือการแจ้งเตือนในปฏิทินที่ช่วยเตือนคุณเกี่ยวกับการประชุมสำคัญกับเจ้านายตอนเวลา 14:00 น. ตัวอย่างเงื่อนไขตามตำแหน่งคือการแจ้งเตือนที่เตือนให้คุณซื้อนมเมื่อคุณเข้าไปในบริเวณใกล้เคียงกับร้านขายของใช้ทั่วไป การเชื่อมต่อเครือข่ายหรือฟีเจอร์ประหยัดแบตเตอรี่ เช่น โหมดสลีป อาจทำให้การส่งการแจ้งเตือนแบบ Push ล่าช้า
ทริกเกอร์การแจ้งเตือนจะแก้ปัญหานี้โดยให้คุณกำหนดเวลาการแจ้งเตือนโดยมีเงื่อนไขในการเรียกข้อมูลล่วงหน้า เพื่อให้ระบบปฏิบัติการส่งการแจ้งเตือนในเวลาที่เหมาะสมแม้ว่าจะไม่มีการเชื่อมต่อเครือข่ายหรืออุปกรณ์อยู่ในโหมดประหยัดแบตเตอรี่ก็ตาม
กรณีการใช้งาน
แอปพลิเคชันปฏิทินสามารถใช้ทริกเกอร์การแจ้งเตือนตามเวลาเพื่อเตือนผู้ใช้เกี่ยวกับการประชุมที่กําลังจะมาถึง รูปแบบการแจ้งเตือนเริ่มต้นสำหรับแอปปฏิทินอาจเป็นการแสดงการแจ้งเตือนการแจ้งเตือนครั้งแรก 1 ชั่วโมงก่อนการประชุม จากนั้นแสดงการแจ้งเตือนอีกรายการที่เร่งด่วนกว่า 5 นาทีก่อน
เครือข่ายทีวีอาจช่วยเตือนผู้ใช้ว่ารายการทีวีโปรดกำลังจะเริ่มออกอากาศหรือการประชุมแบบสตรีมแบบสดกำลังจะเริ่มต้น
เว็บไซต์การแปลงเขตเวลาสามารถใช้ทริกเกอร์การแจ้งเตือนตามเวลาเพื่อให้ผู้ใช้กำหนดเวลาปลุกสำหรับการประชุมทางโทรศัพท์หรือวิดีโอคอลได้
สถานะปัจจุบัน
ขั้นตอน | สถานะ |
---|---|
1. สร้างคำอธิบาย | เสร็จสมบูรณ์ |
2. สร้างฉบับร่างแรกของข้อกําหนด | ยังไม่เริ่ม |
3. รวบรวมความคิดเห็นและปรับปรุงการออกแบบ | กำลังดำเนินการ |
4. ช่วงทดลองใช้จากต้นทาง | เสร็จสมบูรณ์ |
5. เปิดตัว | ยังไม่เริ่ม |
วิธีใช้ทริกเกอร์การแจ้งเตือน
การเปิดใช้ผ่าน about://flags
หากต้องการทดสอบ Notification Triggers API ในเครื่องโดยไม่มีโทเค็นช่วงทดลองใช้จากต้นทาง ให้เปิดใช้ Flag #enable-experimental-web-platform-features
ใน about://flags
การตรวจหาองค์ประกอบ
คุณสามารถดูว่าเบราว์เซอร์รองรับทริกเกอร์การแจ้งเตือนหรือไม่โดยตรวจสอบว่ามีพร็อพเพอร์ตี้ showTrigger
อยู่หรือไม่
if ('showTrigger' in Notification.prototype) {
/* Notification Triggers supported */
}
การตั้งเวลาการแจ้งเตือน
การกำหนดเวลาการแจ้งเตือนคล้ายกับการแสดงข้อความ Push ตามปกติ เพียงแต่คุณต้องส่งพร็อพเพอร์ตี้เงื่อนไข showTrigger
ที่มีออบเจ็กต์ TimestampTrigger
เป็นค่าไปยังออบเจ็กต์ options
ของการแจ้งเตือน
const createScheduledNotification = async (tag, title, timestamp) => {
const registration = await navigator.serviceWorker.getRegistration();
registration.showNotification(title, {
tag: tag,
body: 'This notification was scheduled 30 seconds ago',
showTrigger: new TimestampTrigger(timestamp + 30 * 1000),
});
};
การยกเลิกการแจ้งเตือนที่ตั้งเวลาไว้
หากต้องการยกเลิกการแจ้งเตือนที่ตั้งเวลาไว้ ก่อนอื่นให้ขอรายการการแจ้งเตือนทั้งหมดที่ตรงกับแท็กหนึ่งๆ ผ่าน ServiceWorkerRegistration.getNotifications()
โปรดทราบว่าคุณต้องส่งผ่าน Flag includeTriggered
เพื่อให้การแจ้งเตือนที่กำหนดเวลาไว้รวมอยู่ในรายการ
const cancelScheduledNotification = async (tag) => {
const registration = await navigator.serviceWorker.getRegistration();
const notifications = await registration.getNotifications({
tag: tag,
includeTriggered: true,
});
notifications.forEach((notification) => notification.close());
};
การแก้ไขข้อบกพร่อง
คุณสามารถใช้แผงการแจ้งเตือนของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome เพื่อแก้ไขข้อบกพร่องของการแจ้งเตือนได้ หากต้องการเริ่มแก้ไขข้อบกพร่อง ให้กดเริ่มบันทึกเหตุการณ์ หรือ Control+E (Command+E ใน Mac) Chrome DevTools จะบันทึกเหตุการณ์การแจ้งเตือนทั้งหมด รวมถึงการแจ้งเตือนที่กำหนดเวลาไว้ แสดงอยู่ และปิดไปแล้วเป็นเวลา 3 วัน แม้ว่าจะปิด DevTools อยู่ก็ตาม
สาธิต
คุณดูการทำงานของทริกเกอร์การแจ้งเตือนได้ในการสาธิต ซึ่งช่วยให้คุณตั้งเวลาการแจ้งเตือน แสดงรายการการแจ้งเตือนที่ตั้งเวลาไว้ และยกเลิกการแจ้งเตือนได้ ซอร์สโค้ดมีอยู่ใน Glitch
ความปลอดภัยและสิทธิ์
ทีม Chrome ได้ออกแบบและติดตั้งใช้งาน Notification Triggers API โดยใช้หลักการหลักที่ระบุไว้ในการควบคุมการเข้าถึงฟีเจอร์ที่มีประสิทธิภาพของแพลตฟอร์มเว็บ ซึ่งรวมถึงการควบคุมของผู้ใช้ ความโปร่งใส และลักษณะการใช้งานที่สะดวกสบาย เนื่องจาก API นี้ต้องใช้ Service Worker จึงต้องมีบริบทที่ปลอดภัยด้วย การใช้ API ต้องใช้สิทธิ์เดียวกับข้อความ Push ปกติ
การควบคุมของผู้ใช้
API นี้ใช้ได้เฉพาะในบริบทของ ServiceWorkerRegistration
ซึ่งหมายความว่าระบบจะจัดเก็บข้อมูลที่จำเป็นทั้งหมดไว้ในบริบทเดียวกันและลบออกโดยอัตโนมัติเมื่อมีการลบ Service Worker หรือผู้ใช้ลบข้อมูลเว็บไซต์ทั้งหมดของต้นทาง การบล็อกคุกกี้ยังป้องกันไม่ให้โปรแกรมทำงานของบริการติดตั้งใน Chrome ทำให้ไม่สามารถใช้ API นี้ได้ ผู้ใช้สามารถปิดใช้การแจ้งเตือนสำหรับเว็บไซต์ได้ในการตั้งค่าเว็บไซต์
ความโปร่งใส
API นี้ไม่ขึ้นอยู่กับเครือข่าย ซึ่งหมายความว่าการแจ้งเตือนที่ตั้งเวลาไว้ต้องใช้ข้อมูลที่จำเป็นทั้งหมดล่วงหน้า รวมถึงทรัพยากรรูปภาพที่แอตทริบิวต์ badge
, icon
และ image
อ้างอิง ซึ่งหมายความว่านักพัฒนาแอปจะไม่เห็นการแสดงการแจ้งเตือนที่ตั้งเวลาไว้ และไม่มีการปลุก Service Worker จนกว่าผู้ใช้จะโต้ตอบกับการแจ้งเตือน
ดังนั้นปัจจุบันยังไม่มีวิธีที่ทราบว่านักพัฒนาแอปสามารถรับข้อมูลเกี่ยวกับผู้ใช้ผ่านวิธีการที่อาจละเมิดความเป็นส่วนตัว เช่น การค้นหาตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP การออกแบบนี้ยังช่วยให้ฟีเจอร์ใช้กลไกการกําหนดเวลาของระบบปฏิบัติการได้อีกด้วย (ไม่บังคับ) เช่น AlarmManager
ของ Android ซึ่งช่วยประหยัดแบตเตอรี่
ความคิดเห็น
ทีม Chrome อยากทราบความคิดเห็นของคุณเกี่ยวกับประสบการณ์การใช้งานทริกเกอร์การแจ้งเตือน
บอกเราเกี่ยวกับการออกแบบ API
มีบางอย่างเกี่ยวกับ API ที่ไม่ทำงานตามที่คุณคาดหวังหรือไม่ หรือมีเมธอดหรือพร็อพเพอร์ตี้ที่ขาดหายไปซึ่งคุณต้องนำไปใช้กับแนวคิดของคุณ หากมีคำถามหรือความคิดเห็นเกี่ยวกับรูปแบบการรักษาความปลอดภัย แจ้งปัญหาเกี่ยวกับการแจ้งเตือนที่ทริกเกอร์ที่เก็บ GitHub หรือเพิ่มความเห็นเกี่ยวกับปัญหาที่มีอยู่
พบปัญหาในการติดตั้งใช้งานใช่ไหม
หากพบข้อบกพร่องในการใช้งาน Chrome หรือการติดตั้งใช้งานแตกต่างจากข้อมูลจำเพาะหรือไม่
รายงานข้อบกพร่องที่ new.crbug.com โปรดระบุรายละเอียดให้มากที่สุดเท่าที่จะเป็นไปได้ ระบุวิธีการง่ายๆ ในการจำลองข้อบกพร่อง และตั้งค่าคอมโพเนนต์เป็น UI>Notifications
Glitch เหมาะอย่างยิ่งสำหรับการแชร์การจำลองข้อบกพร่องที่รวดเร็วและง่ายดาย
หากมีแผนจะใช้ API
หากคุณกำลังวางแผนจะใช้ทริกเกอร์การแจ้งเตือนบนเว็บไซต์ การสนับสนุนแบบสาธารณะของคุณช่วยให้เราจัดลำดับความสำคัญของฟีเจอร์ต่างๆ และแสดงให้เห็นว่าการสนับสนุนฟีเจอร์เหล่านี้สำคัญกับผู้ให้บริการเบราว์เซอร์รายอื่นๆ เพียงใด ส่งทวีตถึง @ChromiumDev โดยใช้แฮชแท็ก #NotificationTriggers
และแจ้งให้เราทราบว่าคุณใช้ฟีเจอร์นี้ที่ไหนและอย่างไร
ลิงก์ที่มีประโยชน์
- คำอธิบายแบบสาธารณะ
- การสาธิตทริกเกอร์การแจ้งเตือน | แหล่งที่มาการสาธิตทริกเกอร์การแจ้งเตือน
- ข้อบกพร่องการติดตาม
- รายการ ChromeStatus.com
- คอมโพเนนต์ Blink:
UI>Notifications
ขอขอบคุณ
ทริกเกอร์การแจ้งเตือนดำเนินการโดย Richard Knoll และวิดีโออธิบายที่เขียนโดย Peter Beverloo โดยการสนับสนุนจาก Richard มีผู้อ่านบทความต่อไปนี้ Joe Medley, Pete LePage รวมถึง Richard และ Peter รูปภาพหลักโดย Lukas Blazek จาก Unsplash