移至 macOS 上的原生通知系統

Paul Lewis
Stephen McGruer
Stephen McGruer

自 Chrome 59 版起,透過 Notifications APIchrome.notifications extensions API 傳送的通知,將直接由 macOS 原生通知系統顯示,而非 Chrome 本身的系統。

這項變更可讓 macOS 上的 Chrome 與平台整合得更好,並修正多項長期存在的錯誤,例如 Chrome 不遵循系統「請勿打擾」設定。

我們將在下方說明這項異動對現有 API 的不同之處。

通知中心

這項變更的好處之一,就是通知會顯示在 macOS 的通知中心。

Google Chrome 通知會顯示在 macOS 通知中心
Google Chrome 通知會顯示在 macOS 通知中心

相異處

圖示大小和位置

圖示的外觀將有所變動。它們會變小,並套用邊框間距。建議您改用透明背景圖示,不要使用單色,以賞心悅目。

在 Mac 上使用 Chrome 前後的通知圖示:Chrome 顯示的圖示與 macOS 顯示的圖示。
在 Mac 版 Chrome 中,Chrome 顯示的通知圖示前後為比較圖示

動作圖示

變更之前,系統會在通知中顯示該變更動作的按鈕和圖示。使用原生通知時,系統不會使用動作按鈕圖示,使用者必須將滑鼠游標懸停在通知上,然後選取「更多」按鈕,才能查看可用的動作。

通知動作按鈕的「前」與「後」比較,顯示 Chrome 和 macOS 的圖示。
通知動作按鈕的圖示前後對照:Chrome 與 macOS 顯示的差異

Chrome 標誌會隨時顯示,無法替換或修改。這是 macOS 上第三方應用程式的要求。

圖片

macOS 將不再支援 image 選項。如果您定義圖片屬性,系統仍會顯示通知,但會忽略圖片參數 (請參閱下方範例)。

macOS 版 Chrome 的通知圖片前後對照。
macOS 版 Chrome 通知圖片的前後對照

您可以使用以下程式碼支援圖片偵測功能:

if ('image' in Notification.prototype) {  
  // Image is supported.
} else {  
  // Image is NOT supported.
}

Chrome 擴充功能異動

Chrome 擴充功能有通知範本的概念,這項功能會因這項異動而有所不同。

圖片通知範本將不再顯示圖片。您應確保映像檔為補充,且不需要對使用者有所幫助。

chrome.notification API 中的圖片範本前後對照。
Chrome.notification API 中圖片範本的「前」與「後」

清單通知範本只會顯示清單中的首個項目。您可以考慮改回基本通知樣式,並使用內文文字來總結一組變更。

chrome.notification API 中的清單範本前後。
chrome.notification API 中清單範本的前後對照比較

進度通知會在通知標題中附加百分比值,用來表示進度,而非進度列。

chrome.notification API 中進度範本的前後。
Chrome.notification API 中進度範本的「前」與「後」

通知 UI 的最後差異在於,macOS 將不再使用 appIconMarkUrl

chrome.notification API 中的 appIconMarkUrl 前後。
在 chrome.notification API 中,appIconMarkUrl 的「前」與「後」