Como migrar para o sistema de notificação nativo no macOS

Stephen McGruer
Stephen McGruer

A partir do Chrome 59, as notificações enviadas pela API Notifications ou pelo A API de extensões chrome.notifications vai ser mostrada diretamente pelo sistema de notificação nativo do macOS, e não pelo próprio sistema do Chrome.

Essa mudança faz com que o Chrome no macOS fique muito melhor integrado à plataforma e corrige diversos bugs antigos, como o Chrome que não respeita a configuração "Não perturbe" do sistema.

A seguir, analisaremos as diferenças que essa mudança introduz em APIs.

Central de notificações

Um dos benefícios dessa mudança é que as notificações serão exibidas Central de notificações do macOS.

As notificações do Google Chrome serão exibidas na central de notificações do macOS
As notificações do Google Chrome serão exibidas na central de notificações do macOS

Diferenças

Tamanho e posicionamento do ícone

A aparência dos ícones vai mudar. Eles serão menores em tamanho, e o padding será aplicada. Mude para um ícone de plano de fundo transparente em vez de uma cor sólida para ficar esteticamente agradável.

Ícones de notificação "Antes e depois" do Chrome no Mac exibidos pelo Chrome vs. exibidos pelo
    macOS:
Ícones de notificação "Antes e depois" do Chrome no Mac exibidos pelo Chrome vs. exibidos pelo macOS

Ícones de ação

Antes dessa mudança, os botões e ícones de ação eram exibidos na notificação. Com as notificações nativas, os ícones dos botões de ação não serão usada, e o usuário terá que passar o mouse sobre a notificação e selecionar a opção "Mais" para ver as ações disponíveis.

Antes e depois dos botões de ação de notificação com ícones exibidos por
    Chrome x exibido pelo macOS.
Antes e depois dos botões de ação de notificação com ícones exibidos por Chrome x exibido pelo macOS

O logotipo do Chrome sempre é exibido e não pode ser substituído ou alterado. Isso é um requisito para aplicativos de terceiros no macOS.

Imagens

A opção image não estará mais disponível no macOS. Se você definir uma imagem a notificação ainda será exibida, mas ignorará a imagem (veja o exemplo abaixo).

Imagem de antes e depois da notificação do Chrome no macOS.
Imagem "Antes e depois" de notificação do Chrome no macOS

É possível detectar recursos de suporte a imagens com o seguinte código:

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

Mudanças na extensão do Chrome

As extensões do Chrome usam o conceito de modelos de notificação que vão se comportar de maneira diferente com essa mudança.

O modelo de notificação de imagem não mostrará mais a imagem. Você deve garantir que as imagens são complementares e não precisam ser úteis para os usuários.

Antes e depois para modelos de imagem na API chrome.notification.
Antes e depois para modelos de imagem na API chrome.notification

O modelo de notificação de lista mostrará apenas o primeiro item da lista. Você volte ao estilo básico de notificação e use o estilo para resumir o conjunto de alterações.

Antes e depois para modelos de listas na API chrome.notification.
Antes e depois para modelos de listas na API chrome.notification

As notificações de progresso acrescentarão um valor percentual ao título da notificação para indicar o progresso, em vez de uma barra de progresso.

Antes e depois para modelos de progresso na API chrome.notification.
Antes e depois para modelos de progresso na API chrome.notification

A última diferença na interface de notificação é que o appIconMarkUrl não pode mais ser usado no macOS.

Antes e depois do appIconMarkUrl na API chrome.notification.
Antes e depois do appIconMarkUrl na API chrome.notification