複合式通知 API 可讓您使用範本建立通知,並在使用者的系統匣中向使用者顯示這些通知:
顯示外觀
複合式搜尋結果有四種不同的類型:基本、圖片、清單和進度。所有通知都包含標題、訊息、顯示在通知訊息左側的小型圖示,以及 contextMessage 欄位,並以較淺的字型顯示為第三文字欄位。
基本圖片:
清單通知會顯示任意數量的清單項目:
圖片通知包含圖片預覽:
進度通知會顯示進度列:
行為方式
在 ChromeOS 中,通知會顯示在使用者的系統匣中,並在使用者關閉前保留在系統匣中。系統匣會保留所有新通知的數量。如果使用者在系統匣中看到通知,計數就會重設為零。
您可為通知指定 -2 到 2 的優先順序。優先順序小於 0 會顯示在 ChromeOS 通知中心,並在其他平台上產生錯誤。預設優先順序為 0。優先順序 > 0 的顯示時間會延長,且優先順序較高的通知可以顯示在系統匣中。
除了顯示資訊之外,所有通知類型最多可以包含兩個操作項目。當使用者點選操作項目時,您的應用程式可以採取適當的回應。舉例來說,使用者按一下「回覆」後,電子郵件應用程式會開啟,使用者就能完成回覆:
開發方式
如要使用這個 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
,這是通知內預覽的圖片連結:
var opt = {
type: "basic",
title: "Primary Title",
message: "Primary message to display",
iconUrl: "url_to_small_icon",
imageUrl: "url_to_preview_image"
}
在 Chrome 應用程式中,由於嚴格內容安全政策,這些網址必須指向本機資源或使用 blob 或資料網址。圖片請使用 3:2 的比例,否則圖片則須使用黑色邊框。
建立名單通知
list
範本會以清單格式顯示 items
:
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 之間:
var opt = {
type: "progress",
title: "Primary Title",
message: "Primary message to display",
iconUrl: "url_to_small_icon",
progress: 42
}
監聽及回應事件
所有通知都包括會回應使用者動作的事件監聽器和事件處理常式 (請參閱 chrome.events)。例如,您可以編寫事件處理常式來回應 notifications.onButtonClicked 事件。
事件監聽器:
chrome.notifications.onButtonClicked.addListener(replyBtnClick);
事件處理常式:
function replyBtnClick {
//Write function to respond to user action.
}
請考慮在事件頁面中加入事件監聽器和處理常式,即使應用程式或擴充功能未執行,通知也能彈出。