Notificações do Node


As notificações podem ser uma dádiva de Deus ou a ruína de nossa existência nos dias de hoje. Todos os aplicativos que você instala no seu telefone querem ter acesso a notificações, assim como os aplicativos de desktop, e agora temos um API de notificações da Web juntamente com um API Web Pushcaso o senhor já não tenha notificações suficientes em sua vida. Os lembretes de compromissos do Calendar são sempre bem-vindos (caso contrário, eu esqueceria todos os eventos), mas será que o Wacky Mini Golf realmente precisa me notificar de que não jogo há 4 dias? Provavelmente não.


De qualquer forma, eu estava pensando em notificações e em como poderia usá-las para me lembrar de coisas que eu precisava fazer em um determinado momento do dia; ou seja, lembrar-me de ir almoçar, dar um passeio de bicicleta ou ir buscar meu filho na escola em um dia estranho. Como sou um nerd do JavaScript, decidi pesquisar a criação de notificações para Mac usando o Node.js e rapidamente encontrei minha resposta: node-notifier! Vamos dar uma olhada!


Criar uma notificação simples


node-notifier funciona tanto no Mac quanto em PCs com Windows. As notificações podem variar de muito simples a avançadas, portanto, vamos primeiro criar uma notificação muito simples:



const notifier = require('node-notifier');

// String
notifier.notify('Go empty the dishwasher!');

// Object
notifier.notify({
  'title': 'David Walsh Blog',
  'subtitle': 'Daily Maintenance',
  'message': 'Go approve comments in moderation!',
  'icon': 'dwb-logo.png',
  'contentImage': 'blog.png',
  'sound': 'ding.mp3',
  'wait': true
});


O senhor pode fornecer notifier o básico, como um title, message, e icone, em seguida, vá além para adicionar uma imagem de conteúdo, um som e até mesmo controlar os botões exibidos na notificação.


Notificações avançadas


O senhor pode criar notificações avançadas e repletas de recursos com o node-notifierincluindo a capacidade de responder, controlar os rótulos dos botões de notificação e muito mais. A seguir, um exemplo mais avançado:



const NotificationCenter = require('node-notifier').NotificationCenter;

var notifier = new NotificationCenter({
  withFallback: false, // Use Growl Fallback if 


Here's a quick peak at the type of actions your notifications can make:

Notificador

Events

node-notifier is capable of sending click and close events -- handy for triggering specific actions depending on how the user interacts with the notification:


// Open the DWB website!
notifier.on('click', (obj, options) => {
  const spawn = require('child_process').spawn;
  const cmd = spawn('open', ['https://davidwalsh.name']);
});

notifier.on('close', (obj, options) => {});


O exemplo acima permite que eu clique na notificação para abrir meu site; o senhor também pode usar isso para acionar outras rotinas em seu computador, é claro, depende simplesmente da finalidade da notificação.


O senhor pode ser muito detalhista com seus objetos e eventos de notificação por plataforma, portanto, não deixe de conferir o node-notifier API se o senhor realmente quiser se aprofundar. Ou, se o senhor for uma pessoa sã, talvez não precise de mais notificações em sua vida!