Passer au système de notification natif sur macOS

Paul Lewis
Stephen McGruer
Stephen McGruer

À partir de Chrome 59, les notifications envoyées via l'API Notifications ou l'API des extensions chrome.notifications s'afficheront directement par le système de notification natif de macOS au lieu du système de Chrome.

Ce changement permet d'améliorer l'intégration de Chrome sous macOS à la plate-forme et de corriger un certain nombre de bugs existants, tels que le non-respect du paramètre "Ne pas déranger" par Chrome.

Nous examinerons ci-dessous les différences introduites par cette modification par rapport aux API existantes.

Centre de notifications

L'un des avantages de ce changement est que les notifications s'affichent dans le centre de notifications de macOS.

Les notifications Google Chrome s'afficheront dans le centre de notifications macOS
Les notifications Google Chrome s'afficheront dans le centre de notifications macOS

Différences

Taille et positionnement des icônes

L'apparence des icônes va changer. Leur taille est réduite, et une marge intérieure est appliquée. Pour des raisons esthétiques, vous pouvez utiliser une icône d'arrière-plan transparente plutôt qu'une couleur unie.

"Avant et après" pour les icônes de notification Chrome sur Mac affichées par Chrome et celles affichées par macOS.
Avant et après pour les icônes de notification Chrome sur Mac affichées par Chrome et affichées par macOS

Icônes d'action

Avant ce changement, des boutons d'action et des icônes étaient affichés dans la notification. Avec les notifications natives, les icônes des boutons d'action ne sont pas utilisées. L'utilisateur doit pointer sur la notification et sélectionner le bouton "Plus" pour afficher les actions disponibles.

Boutons d'action avant et après les notifications avec des icônes affichées par Chrome par rapport à celles affichées par macOS
Boutons d'action avant et après les notifications avec des icônes affichées par Chrome ou affiché par macOS

Le logo Chrome restera visible en permanence, et ne pourra être ni remplacé, ni modifié. Il s'agit d'une exigence pour les applications tierces sur macOS.

Images

L'option image ne sera plus prise en charge par macOS. Si vous définissez une propriété d'image, la notification sera toujours affichée, mais elle ignorera le paramètre d'image (voir l'exemple ci-dessous).

Image de notification avant et après pour Chrome sur macOS.
Image de notification "Avant et après" pour Chrome sur macOS

Vous pouvez prendre en charge la détection d'images à l'aide du code suivant:

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

Modifications apportées à l'extension Chrome

Les extensions Chrome intègrent le concept de modèles de notification, qui se comporteront différemment avec cette modification.

Le modèle de notification d'image n'affichera plus l'image. Vous devez vous assurer que les images sont complémentaires et qu'elles ne sont pas nécessaires pour être utiles à vos utilisateurs.

Avant et après pour les modèles d'image dans l'API chrome.notification
Avant et après pour les modèles d'image dans l'API chrome.notification

Le modèle de notification de liste n'affiche que le premier élément de la liste. Vous pouvez revenir au style de notification de base et utiliser le corps du texte pour résumer l'ensemble des modifications.

Avant et après pour les modèles de liste dans l'API chrome.notification
Avant et après pour les modèles de liste dans l'API chrome.notification

Les notifications de progression ajoutent une valeur en pourcentage au titre de la notification pour indiquer la progression au lieu d'une barre de progression.

Avant et après pour les modèles de progression dans l'API chrome.notification
Avant et après pour les modèles de progression dans l'API chrome.notification

La dernière différence dans l'interface utilisateur des notifications est que appIconMarkUrl ne sera plus utilisé sous macOS.

Avant et après pour appIconMarkUrl dans l'API chrome.notification
Avant et après pour appIconMarkUrl dans l'API chrome.notification