การระบุแหล่งที่มาของการแจ้งเตือนที่มาพร้อมเครื่องสำหรับเว็บแอปใน macOS

Marijn Kruisselbrink
Marijn Kruisselbrink
Dan Murphy
Dan Murphy

เผยแพร่เมื่อวันที่ 16 กรกฎาคม 2026

ตั้งแต่ Chrome 152 เป็นต้นไป Progressive Web App (PWA) ที่ติดตั้งใน macOS จะมีการระบุแหล่งที่มาของการแจ้งเตือนเป็น PWA เองโดยค่าเริ่มต้น ไม่ใช่ Google Chrome

การเปลี่ยนแปลงนี้ช่วยปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมาก ทำให้เว็บแอปดูผสานรวมกับ macOS มากขึ้น อย่างไรก็ตาม การเปลี่ยนแปลงนี้ยังส่งผลต่อวิธีจัดการสิทธิ์การแจ้งเตือนและลักษณะการทำงานของ API การแจ้งเตือนบางรายการด้วย

สิ่งที่เปลี่ยนแปลง

ก่อนหน้านี้ ระบบปฏิบัติการจะระบุแหล่งที่มาของการแจ้งเตือนทั้งหมดที่ PWA ส่งเป็น Chrome โดยการแจ้งเตือนจะปรากฏในศูนย์การแจ้งเตือนของ macOS ภายใต้ "Google Chrome" และใช้ไอคอน Chrome หากต้องการปิดใช้การแจ้งเตือน ผู้ใช้ต้องใช้การควบคุมภายใน Chrome ไม่ใช่การตั้งค่าระบบของ macOS

เมื่อมีการระบุแหล่งที่มาของการแจ้งเตือน macOS จะถือว่าเว็บไซต์ที่ติดตั้งเป็น PWA เป็นแอปพลิเคชันที่แยกต่างหากสำหรับการแจ้งเตือน การเปลี่ยนแปลงนี้มีผลกับทั้ง PWA ที่ติดตั้งใหม่และ PWA ที่ผู้ใช้เคยติดตั้งไว้ก่อนหน้านี้

สิทธิประโยชน์

  • เอกลักษณ์ของแบรนด์: การแจ้งเตือนจะแสดงชื่อและไอคอนของ PWA เองใน ศูนย์การแจ้งเตือนและแบนเนอร์ของ macOS
  • การควบคุมของผู้ใช้ที่คุ้นเคย: การควบคุมการแจ้งเตือนสำหรับแอปเหล่านี้จะปรากฏ ในตำแหน่งที่ผู้ใช้คาดหวังไว้ นั่นคือในการตั้งค่าระบบของ macOS (ไม่ใช่ Chrome)
  • การควบคุมแบบละเอียด: ผู้ใช้สามารถจัดการการตั้งค่าการแจ้งเตือนของแอป PWA แต่ละรายการได้ (เช่น รูปแบบการแจ้งเตือน ลักษณะการทำงานของหน้าจอล็อก)
  • โหมดโฟกัส: คุณสามารถอนุญาตหรือปิดเสียง PWA แต่ละรายการในโปรไฟล์โฟกัสของ macOS (ห้ามรบกวน)
ระบุแหล่งที่มาเป็น "Google Chrome" พร้อมไอคอน Chrome
ก่อน: ระบุแหล่งที่มาเป็น "Google Chrome" พร้อมไอคอน Chrome
ระบุแหล่งที่มาเป็น "ชื่อ PWA" พร้อมไอคอนที่กำหนดเองของ PWA
หลัง: ระบุแหล่งที่มาเป็น "ชื่อ PWA" พร้อมไอคอนที่กำหนดเองของ PWA

ขั้นตอนการขอสิทธิ์ใหม่

เนื่องจากตอนนี้ macOS ถือว่า PWA เป็นแอปที่แยกต่างหาก PWA จึงต้องได้รับสิทธิ์การแจ้งเตือนระดับระบบปฏิบัติการ ก่อนจึงจะแสดงการแจ้งเตือนได้ ซึ่งจะเปลี่ยนขั้นตอนการขอสิทธิ์สำหรับทั้งผู้ใช้ใหม่และผู้ใช้ปัจจุบัน

ผู้ใช้ใหม่ (คำขอสิทธิ์ครั้งแรก)

หากผู้ใช้ติดตั้ง PWA และเว็บไซต์ขอสิทธิ์การแจ้งเตือน หลังจาก การติดตั้ง ให้ทำดังนี้

  1. Chrome จะข้ามการแจ้งเตือนขอสิทธิ์ระดับเบราว์เซอร์ (เมนูแบบเลื่อนลงจากแถบที่อยู่)
  2. Chrome จะแสดงการแจ้งเตือนขอสิทธิ์ระบบของ macOS สำหรับ PWA ทันที
กล่องโต้ตอบสิทธิ์ของระบบ macOS: PWA Name ต้องการส่งการแจ้งเตือนถึงคุณ การแจ้งเตือนอาจรวมถึงข้อความเตือน เสียง และป้ายไอคอน พร้อมปุ่มไม่อนุญาตและอนุญาต
กล่องโต้ตอบขอสิทธิ์ระบบของ macOS สำหรับ PWA ที่ติดตั้ง
โฟลว์ชาร์ตแสดงกระบวนการให้สิทธิ์ PWA เริ่มต้นด้วย "PWA Requests Permission" ซึ่งนำไปสู่การตัดสินใจ "ติดตั้งแล้วใช่ไหม" หากเป็น "ใช่" ระบบจะข้ามข้อความแจ้งของ Chrome และแสดงข้อความแจ้งของระบบ macOS หากเป็น "ไม่" ระบบจะแสดงข้อความแจ้งของเบราว์เซอร์ Chrome, ผู้ใช้ติดตั้ง PWA แล้วระบบจะแสดงข้อความแจ้งของระบบ macOS
แผนผังลำดับงานของกระบวนการขอสิทธิ์การแจ้งเตือนของ PWA

ผู้ใช้ปัจจุบัน (เส้นทางการย้ายข้อมูล)

หากผู้ใช้ให้สิทธิ์การแจ้งเตือนแก่เว็บไซต์ของคุณใน Chrome แล้ว จากนั้นจึงติดตั้ง (หรือติดตั้งไว้แล้ว) PWA ผู้ใช้จะต้องให้สิทธิ์ระดับระบบปฏิบัติการแก่ PWA ด้วย

วิธีทำให้การเปลี่ยนผ่านนี้ราบรื่นที่สุด

  1. เมื่อ PWA พยายามส่งการแจ้งเตือนเป็นครั้งแรก macOS จะแสดงการแจ้งเตือนขอสิทธิ์ระบบ
  2. หากผู้ใช้ให้สิทธิ์ การแจ้งเตือนจะทำงานต่อไปได้อย่างราบรื่น
  3. หากผู้ใช้เพิกเฉยหรือปิดการแจ้งเตือนนี้ PWA จะแสดงตัวบ่งชี้ในแอป (โดยปกติจะอยู่ในแถบชื่อหรือเมนูของแอป) เพื่อแนะนำให้ผู้ใช้ไปที่การตั้งค่าระบบของ macOS เพื่อเปิดใช้สิทธิ์ด้วยตนเอง
แจ้ง PWA ที่ติดตั้งแล้วเพื่อให้ผู้ใช้ทราบว่าการแจ้งเตือนปิดอยู่ในการตั้งค่าระบบ Mac พร้อมปุ่มเพื่อไปยังการตั้งค่าดังกล่าว
การแจ้งเตือนในแอปใน PWA ที่แนะนำให้ผู้ใช้ไปที่การตั้งค่าระบบของ macOS
การตั้งค่าแอปที่มีตัวเลือกในการเปิดหรือปิดการแจ้งเตือน และลูกศรชี้ไปที่การตั้งค่าระบบเพื่อเปิดใช้การแจ้งเตือน
การตั้งค่าแอปใน Chrome พร้อมตัวบ่งชี้เพื่อเปิดการตั้งค่าระบบของ macOS
แจ้งให้แอปในเบราว์เซอร์ทราบว่ามีการปิดการแจ้งเตือนในการตั้งค่าระบบ Mac พร้อมปุ่มเพื่อไปยังการตั้งค่าระบบ
การแจ้งเตือนในเบราว์เซอร์ที่แนะนำให้ผู้ใช้ไปที่การตั้งค่าระบบของ macOS

ผลกระทบต่อนักพัฒนาแอป: การเลิกใช้งาน requireInteraction ใน macOS

ใน macOS การแจ้งเตือนจะอยู่บนหน้าจอจนกว่าผู้ใช้จะปิด ("ถาวร") หรือหายไปโดยอัตโนมัติ ("ชั่วคราว") ขึ้นอยู่กับ การตั้งค่าต่อแอปที่ผู้ใช้ควบคุมได้ ในการตั้งค่าระบบของ macOS

เนื่องจากการออกแบบระบบปฏิบัติการนี้ Chrome จะไม่สนใจตัวเลือก requireInteractionใน Notification API ใน macOS อีกต่อไปเมื่อการระบุแหล่งที่มา ทำงานอยู่

สิ่งที่การเปลี่ยนแปลงนี้หมายความต่อโค้ดของคุณ

หากแอปของคุณใช้ requireInteraction: true เพื่อให้การแจ้งเตือนที่สำคัญอยู่บนหน้าจอ ระบบจะไม่รับประกันการทำงานนี้ใน macOS อีกต่อไป คุณควรทำดังนี้แทน

  • ออกแบบแอปโดยสมมติว่าการแจ้งเตือนอาจเป็นแบบชั่วคราว (Temporary)
  • แนะนำให้ผู้ใช้ที่ต้องการการแจ้งเตือนแบบถาวรกำหนดค่ารูปแบบการแจ้งเตือนของ PWA เป็น "ถาวร" ใน System Settings > Notifications > [Your PWA]
การตั้งค่าระบบ macOS โดยไฮไลต์การตั้งค่ารูปแบบการแจ้งเตือนที่แสดง "ชั่วคราว" และ "ถาวร"
การตั้งค่าระบบของ macOS สำหรับ PWA ที่แสดงการตั้งค่ารูปแบบการแจ้งเตือน (ชั่วคราวเทียบกับถาวร)

ผลกระทบต่อนักพัฒนาแอป: App Badging API ต้องได้รับสิทธิ์การแจ้งเตือน

The App Badging API ช่วยให้เว็บแอปตั้งค่าป้ายในไอคอนแอปพลิเคชันได้ (เช่น แสดงจำนวนข้อความที่ยังไม่ได้อ่าน ) ใน macOS การติดป้ายไอคอนแอปจะเชื่อมโยงกับการตั้งค่าการแจ้งเตือนของแอปพลิเคชันในทางเทคนิค เนื่องจากตอนนี้ PWA มีข้อมูลประจำตัวการแจ้งเตือนของตัวเองโดยค่าเริ่มต้นแล้ว

  • ต้องได้รับสิทธิ์: PWA ต้องเปิดใช้สิทธิ์การแจ้งเตือนระดับระบบปฏิบัติการ เพื่อให้ป้ายปรากฏในไอคอน Dock การทำงานนี้เป็นไปตามมาตรฐานแพลตฟอร์ม macOS และตรงกับวิธีที่ Safari จัดการ Badging API สำหรับเว็บแอปอยู่แล้ว
  • การทำงานล้มเหลวแบบเงียบๆ: หากผู้ใช้ปิดใช้ "ติดป้ายไอคอนแอป" ใน System Settings > Notifications > [Your PWA] หรือปฏิเสธสิทธิ์การแจ้งเตือน ทั้งหมด การเรียก navigator.setAppBadge() จะยังคงสำเร็จใน JavaScript (โดยไม่แสดงข้อผิดพลาด) แต่ระบบจะไม่แสดงป้ายใน Dock หากแอปของคุณใช้การติดป้าย โปรดขอสิทธิ์การแจ้งเตือนเพื่อให้ระบบแสดงป้ายได้

ผลกระทบต่อการดูแลระบบขององค์กร

สำหรับผู้ดูแลระบบขององค์กรที่จัดการอุปกรณ์ macOS และต้องการให้สิทธิ์การแจ้งเตือนล่วงหน้า ให้ทำดังนี้

  1. นโยบาย Chrome: คุณยังคงต้องกำหนดค่านโยบาย Chrome (NotificationsAllowedForUrls) เพื่อให้สิทธิ์แก่ต้นทางของ PWA
  2. นโยบาย macOS: นอกจากนี้ ตอนนี้คุณต้องติดตั้งใช้งานโปรไฟล์การกำหนดค่า macOS (MDM) เพื่อให้สิทธิ์การแจ้งเตือนล่วงหน้าแก่ตัวระบุชุดรวม (App Shim) ของ PWA

หากไม่มีนโยบายทั้ง 2 รายการ ผู้ใช้จะยังคงได้รับการแจ้งเตือนในระดับระบบปฏิบัติการ

แนวทางปฏิบัติแนะนำสำหรับนักพัฒนาแอป

  1. ตรวจสอบสถานะสิทธิ์: ตรวจสอบ Notification.permission ทุกครั้งก่อน ส่งการแจ้งเตือน
  2. การแจ้งเตือนตามบริบท: หากตรวจพบว่ามีการให้สิทธิ์ในระดับเว็บ แต่การแจ้งเตือนไม่ปรากฏ (ซึ่งอาจเกิดขึ้นหากมีการเพิกถอนสิทธิ์ระดับระบบปฏิบัติการ) ให้แนะนำผู้ใช้ไปที่การตั้งค่าระบบของ macOS
  3. เตรียมพร้อมสำหรับการแจ้งเตือนแบบชั่วคราว: อย่าใช้ requireInteraction สำหรับขั้นตอนสำคัญของผู้ใช้ใน macOS