API การแจ้งเตือนแบบริชมีเดีย

ความแตกต่างของแพลตฟอร์ม: ใน Chrome เวอร์ชัน 59 การแจ้งเตือนจะปรากฏแตกต่างกันสำหรับผู้ใช้ Mac OS X ผู้ใช้จะเห็นการแจ้งเตือนของ Mac OS X เองแทนการแจ้งเตือนของ Chrome ดูข้อมูลเพิ่มเติมได้ในบทความนี้

Rich Notifications API ช่วยให้คุณสร้างการแจ้งเตือนโดยใช้เทมเพลตและแสดงการแจ้งเตือน เหล่านี้แก่ผู้ใช้ในถาดระบบของผู้ใช้ได้

การแจ้งเตือนในถาดผู้ใช้ของระบบ

ลักษณะที่ปรากฏ

Rich Notifications มี 4 รูปแบบ ได้แก่ พื้นฐาน รูปภาพ รายการ และความคืบหน้า การแจ้งเตือนทั้งหมดจะมีชื่อ ข้อความ ไอคอนขนาดเล็กที่แสดงทางด้านซ้ายของข้อความการแจ้งเตือน และช่อง contextMessage ซึ่งจะแสดงเป็นช่องข้อความที่ 3 ในแบบอักษรสีอ่อนกว่า

รูปภาพพื้นฐาน

การแจ้งเตือนพื้นฐาน

การแจ้งเตือนแบบรายการจะแสดงรายการได้ไม่จำกัดจำนวน

การแจ้งเตือนรายการ

การแจ้งเตือนแบบรูปภาพจะแสดงตัวอย่างรูปภาพ

การแจ้งเตือนรูปภาพ

การแจ้งเตือนความคืบหน้าจะแสดงแถบความคืบหน้า

การแจ้งเตือนความคืบหน้า

ลักษณะการทำงาน

ใน ChromeOS การแจ้งเตือนจะปรากฏในถาดระบบของผู้ใช้และจะอยู่ในถาดระบบจนกว่าผู้ใช้จะปิดการแจ้งเตือน ถาดระบบจะนับจำนวนการแจ้งเตือนใหม่ทั้งหมด เมื่อผู้ใช้เห็นการแจ้งเตือนในถาดระบบแล้ว ระบบจะรีเซ็ตจำนวนเป็น 0

คุณกำหนดลำดับความสำคัญของการแจ้งเตือนได้ตั้งแต่ -2 ถึง 2 การแจ้งเตือนที่มีลำดับความสำคัญ < 0 จะแสดงในศูนย์การแจ้งเตือนของ ChromeOS และทำให้เกิดข้อผิดพลาดในแพลตฟอร์มอื่นๆ ลำดับความสำคัญ 0 คือลำดับความสำคัญเริ่มต้น การแจ้งเตือนที่มีลำดับความสำคัญ > 0 จะแสดงเป็นระยะเวลานานขึ้น และการแจ้งเตือนที่มีลำดับความสำคัญสูงกว่าจะแสดงในถาดระบบได้

นอกจากการแสดงข้อมูลแล้ว การแจ้งเตือนทุกประเภทยังสามารถมีรายการการดำเนินการได้สูงสุด 2 รายการ เมื่อผู้ใช้คลิกรายการการดำเนินการ แอปของคุณจะตอบสนองด้วยการดำเนินการที่เหมาะสม เช่น เมื่อผู้ใช้คลิก "ตอบกลับ" แอปอีเมลจะเปิดขึ้นและผู้ใช้สามารถตอบกลับได้

การดำเนินการในการแจ้งเตือน

วิธีพัฒนา

หากต้องการใช้ API นี้ ให้เรียกใช้เมธอด notifications.create โดยส่งรายละเอียดการแจ้งเตือนผ่าน พารามิเตอร์ options

chrome.notifications.create(id, options, creationCallback);

notifications.NotificationOptions ต้องมี notifications.TemplateType ซึ่ง กำหนดรายละเอียดการแจ้งเตือนที่ใช้ได้และวิธีแสดงรายละเอียดเหล่านั้น

สร้างการแจ้งเตือนพื้นฐาน

เทมเพลตทุกประเภท (basic, image, list และ progress) ต้องมี title และ message ของการแจ้งเตือน รวมถึง iconUrl ซึ่งเป็นลิงก์ไปยังไอคอนขนาดเล็กที่จะแสดงทางด้านซ้ายของข้อความการแจ้งเตือน

ตัวอย่างเทมเพลต basic

var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon"
}

สร้างการแจ้งเตือนแบบรูปภาพ

เทมเพลตประเภท image ยังมี imageUrl ซึ่งเป็นลิงก์ไปยังรูปภาพที่จะแสดงตัวอย่าง ในการแจ้งเตือนด้วย

ความแตกต่างของแพลตฟอร์ม: ระบบจะไม่แสดงรูปภาพแก่ผู้ใช้ที่ใช้ Chrome เวอร์ชัน 59 ขึ้นไปใน Mac OS X
var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  imageUrl: "url_to_preview_image"
}

ในแอป Chrome URL เหล่านี้ต้องชี้ไปยังทรัพยากรในเครื่องหรือใช้ Blob หรือ URL ข้อมูลเนื่องจากนโยบายรักษาความปลอดภัยเนื้อหาที่เข้มงวด ใช้สัดส่วน 3:2 สำหรับรูปภาพ ไม่เช่นนั้นรูปภาพจะมีเส้นขอบสีดำ

สร้างการแจ้งเตือนแบบรายการ

เทมเพลต list จะแสดง items ในรูปแบบรายการ

ความแตกต่างของแพลตฟอร์ม: ระบบจะแสดงเฉพาะรายการแรกแก่ผู้ใช้ใน Chrome เวอร์ชัน 59 ขึ้นไปใน Mac OS X
var opt = {
  type: "list",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  items: [{ title: "Item1", message: "This is item 1."},
          { title: "Item2", message: "This is item 2."},
          { title: "Item3", message: "This is item 3."}]
}

สร้างการแจ้งเตือนความคืบหน้า

เทมเพลต progress จะแสดงแถบความคืบหน้าซึ่งความคืบหน้าปัจจุบันมีค่าตั้งแต่ 0 ถึง 100

ความแตกต่างของแพลตฟอร์ม: ใน Chrome เวอร์ชัน 59 ขึ้นไปใน Mac OS X แถบความคืบหน้าจะแสดงเป็นค่าเปอร์เซ็นต์ในชื่อของการแจ้งเตือนแทนที่จะแสดงแถบความคืบหน้า
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

การฟังและการตอบสนองต่อเหตุการณ์

การแจ้งเตือนทั้งหมดสามารถมี Listener เหตุการณ์และตัวจัดการเหตุการณ์ที่ตอบสนองต่อการดำเนินการของผู้ใช้ (ดู chrome.events) เช่น คุณสามารถเขียนตัวจัดการเหตุการณ์เพื่อตอบสนองต่อเหตุการณ์ notifications.onButtonClicked ได้

Listener เหตุการณ์

chrome.notifications.onButtonClicked.addListener(replyBtnClick);

ตัวแฮนเดิลเหตุการณ์

function replyBtnClick {
    //Write function to respond to user action.
}

ลองใส่ Listener เหตุการณ์และตัวจัดการเหตุการณ์ไว้ในหน้าเหตุการณ์ เพื่อให้การแจ้งเตือน แสดงขึ้นได้แม้ว่าแอปหรือส่วนขยายจะไม่ได้ทำงานอยู่ก็ตาม