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 pela API de extensões chrome.notifications serão mostradas diretamente pelo sistema de notificação nativo do macOS, e não pelo sistema do próprio Chrome.

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

Confira abaixo as diferenças que essa mudança introduz nas APIs existentes.

Central de notificações

Um dos benefícios dessa mudança é que as notificações 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
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 será alterada. Eles são menores em tamanho e o padding é aplicado. Para ter uma estética agradável, é recomendável mudar para um ícone de plano de fundo transparente em vez de uma cor sólida.

Ícones de notificação "antes e depois" do Chrome no Mac mostrados pelo Chrome e pelo
    macOS.
Ícones de notificação "Antes e depois" do Chrome no Mac mostrados pelo Chrome e no macOS

Ícones de ação

Antes dessa mudança, os botões e ícones de ação eram mostrados na notificação Com as notificações nativas, os ícones do botão de ação não são usados, e o usuário precisa passar o cursor sobre a notificação e selecionar o botão "Mais" para ver as ações disponíveis.

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

O logotipo do Google Chrome é sempre exibido e não pode ser substituído ou alterado. Esse é 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 propriedade de imagem, a notificação ainda vai ser exibida, mas vai ignorar o parâmetro de imagem (veja o exemplo abaixo).

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

Você pode detectar o suporte a imagens de detecção de recursos 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 têm o conceito de modelos de notificação, que se comportarão de maneira diferente com essa mudança.

O modelo de notificação de imagem não mostrará mais a imagem. É preciso garantir que as imagens sejam complementares e não necessárias para ser úteis para os usuários.

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

O modelo de notificação vai mostrar apenas o primeiro item da lista. Considere voltar ao estilo básico de notificação e usar o corpo do texto para resumir o conjunto de mudanças.

Antes e depois para modelos de lista na API chrome.notification.
Antes e depois dos modelos de lista na API chrome.notification

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

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

A última diferença na IU de notificações é que o appIconMarkUrl não será mais usado no macOS.

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