Начиная с Chrome 59, уведомления, отправленные через API уведомлений или API расширений chrome.notifications, будут отображаться непосредственно встроенной системой уведомлений macOS, а не собственной системой Chrome.
Это изменение позволяет Chrome на macOS гораздо лучше интегрироваться в платформу и исправляет ряд давних ошибок, таких как Chrome, не соблюдающий системную настройку «Не беспокоить».
Ниже мы рассмотрим различия, которые это изменение вносит в существующие API.
Центр уведомлений
Одним из преимуществ этого изменения является то, что уведомления будут отображаться в центре уведомлений macOS.
![Уведомления Google Chrome будут отображаться в центре уведомлений macOS.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/google-chrome-notificatio-0dd272728498d.png?authuser=0&hl=ru)
Различия
Размер и расположение значков
Внешний вид иконок изменится. Они будут меньше по размеру и будут применены отступы. Возможно, вы захотите переключиться на значок с прозрачным фоном вместо сплошного цвета, чтобы это было эстетично.
![До и после значков уведомлений Chrome на Mac, отображаемых Chrome, а не отображаемых macOS.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-chrome-ma-8f7a9faf4b135.png?authuser=0&hl=ru)
Значки действий
До этого в уведомлении отображались кнопки и значки действий по изменению. При использовании собственных уведомлений значки кнопок действий не будут использоваться, и пользователю нужно будет навести курсор на уведомление и нажать кнопку «Дополнительно», чтобы просмотреть доступные действия.
![Кнопки действий до и после уведомлений со значками, отображаемыми Chrome и отображение в macOS.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-notificati-acefa2d32d351.png?authuser=0&hl=ru)
Хромированный логотип
Логотип Chrome будет отображаться всегда и не может быть заменен или изменен. Это требование для сторонних приложений в macOS.
Изображения
Параметр image
больше не будет поддерживаться в macOS. Если вы определите свойство изображения, уведомление по-прежнему будет отображаться, но будет игнорировать параметр изображения (см. пример ниже).
![До и после изображения уведомления для Chrome на macOS.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-notificati-35cb1f20a7481.png?authuser=0&hl=ru)
Вы можете включить поддержку обнаружения изображений с помощью следующего кода:
if ('image' in Notification.prototype) {
// Image is supported.
} else {
// Image is NOT supported.
}
Изменения расширений Chrome
Расширения Chrome имеют концепцию шаблонов уведомлений , которые после этого изменения будут вести себя по-другому.
Шаблон уведомления об изображении больше не будет отображать изображение. Вы должны убедиться, что изображения носят дополнительный характер и не обязательно должны быть полезны вашим пользователям.
![До и после для шаблонов изображений в API chrome.notification.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-image-temp-ea8d68fe9acc.png?authuser=0&hl=ru)
В шаблоне уведомления списка будет отображаться только первый элемент списка. Возможно, вы захотите вернуться к базовому стилю уведомлений и использовать основной текст для обобщения набора изменений.
![До и после для шаблонов списков в API chrome.notification.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-list-templ-58a8124f4c8f9.png?authuser=0&hl=ru)
Уведомления о ходе выполнения добавляют к заголовку уведомления процентное значение, чтобы указать ход выполнения, а не индикатор выполнения.
![До и после для шаблонов прогресса в API chrome.notification.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-progress-t-aeb9eb61ae795.png?authuser=0&hl=ru)
Последнее отличие пользовательского интерфейса уведомлений заключается в том, что appIconMarkUrl
больше не будет использоваться в macOS.
![До и после appIconMarkUrl в API chrome.notification.](https://developer.chrome.google.cn/static/blog/native-mac-os-notifications/image/before-after-appiconmar-74e3f48314cd4.png?authuser=0&hl=ru)