Env铆o de notificaciones con notificador de node (Mac, Windows, Linux)

    Introducci贸n

    Las notificaciones brindan una excelente manera de involucrar a los usuarios de sus aplicaciones y se pueden usar para proporcionar o solicitar comentarios. En este tutorial, examinaremos c贸mo enviar notificaciones usando Node.js y node-notifier.

    node-notifier es una biblioteca para enviar notificaciones nativas multiplataforma en Node JS.

    Crear una notificaci贸n con notificador de node

    Creemos un directorio para nuestro proyecto e inicialicemos un proyecto de node con la configuraci贸n predeterminada en 茅l:

    $ cd node-native-notifications
    $ npm init -y
    $ npm install --save node-notifier
    

    A continuaci贸n, en el index.js archivo, importaremos node-notifier:

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

    Hay dos formas de crear y enviar una notificaci贸n simple usando node-notifier. Pasando una String al notify() funci贸n:

    notifier.notify('Hello!');
    

    O, alternativamente, puede pasar un objeto y establecer atributos como el title y message:

    notifier.notify({
      title: 'Greetings',
      message: 'Hello!'
    });
    

    Ejecutemos este c贸digo para ver la notificaci贸n en acci贸n:

    $ node index.js
    

    Las notificaciones se colocan en capas sobre la pantalla de nuestro escritorio y podemos ver los dos mensajes que hemos enviado:

    Personalizaci贸n de notificaciones

    Aparte de la title y message opciones, tambi茅n puede establecer una icon para aparecer, use sound para agregar un sonido de notificaci贸n o usar wait para esperar una acci贸n del usuario …

    los sound y wait son false por defecto.

    Agreguemos un 铆cono, que puede ser cualquier archivo de imagen, as铆 como un sonido a nuestra notificaci贸n. Adem谩s, esperaremos a que el usuario tambi茅n realice una acci贸n:

    const path = require('path');
    
    notifier.notify({
        title: 'Salutations!',
        message: 'Hey there!',
        icon: path.join(__dirname, 'icon.jpg'),
        sound: true,
        wait: true
      },
      function (err, response) {
        console.log(response);
      }
    );
    

    En el c贸digo anterior, incluimos el path m贸dulo para ayudarnos a obtener la ruta a nuestro archivo. Tambi茅n estamos pasando una funci贸n de devoluci贸n de llamada al notify() funci贸n y registrando la respuesta o interacci贸n del usuario con nuestra notificaci贸n a la consola.

    Al ejecutar el c贸digo anterior, recibir谩 una notificaci贸n con la imagen que ha elegido como icono de la notificaci贸n. El sonido de una nueva notificaci贸n tambi茅n puede ir acompa帽ado de la pantalla de notificaci贸n, seg煤n el sistema operativo del sistema operativo de su computadora y la versi贸n.

    La notificaci贸n se ver谩 as铆:

    Si hace clic en el bot贸n para descartar la notificaci贸n, la cadena dismissed se registrar谩 en su consola. Si no hay interacci贸n con la notificaci贸n hasta que desaparece, se muestra timeout. Si se hace clic en la notificaci贸n, se registra undefined a la consola.

    Opciones de personalizaci贸n para diferentes plataformas

    Como se indic贸 en la secci贸n anterior, puede haber variaciones en el comportamiento de las notificaciones enviadas debido a diferencias en los sistemas de informes utilizados por el sistema operativo del usuario.

    node-notifer intenta utilizar el sistema con la mejor experiencia de usuario pero prefiere las soluciones nativas. Proporciona alternativas para cada plataforma seg煤n se define en su flujo de decisiones.

    Sin embargo, puede crear un informador personalizado para cada uno de los sistemas de informes para tener control sobre el comportamiento de las notificaciones que env铆a en su aplicaci贸n. Hay cinco reporteros: Centro de notificaciones, Tostadora de Windows, Globos de Windows, Gru帽idoy notificar-enviar.

    los wait La opci贸n no se aplica cuando se usa Windows Toaster o notificar-enviar reporteros ya que Windows Toasters siempre espera y notificar-enviar no admite la wait opci贸n.

    los sound La opci贸n solo se puede usar para Centro de notificaciones y Tostadora de Windows reporteros. los icon La opci贸n toma la ruta absoluta al archivo de imagen y no funciona para Globo de Windows reportero.

    Gru帽ido

    Este es el reportero que es el respaldo cuando otros reporteros fallan o no est谩n disponibles para el sistema operativo. Se basa en el c贸digo abierto Growly paquete y env铆a mensajes usando el Gru帽ido utilidad para enviar notificaciones nativas.

    Agregue lo siguiente a su c贸digo para personalizar Growl Reporter para su aplicaci贸n:

    const fs = require('fs);
    const Growl = require('node-notifier').Growl;
    // Or
    // const Growl = require('node-notifier/notifiers/growl');
     
    let growlNotifier = new Growl({
      name: 'Node'
      host: 'localhost',
      port: 23053
    });
     
    growlNotifier.notify({
      title: 'Greetings',
      message: 'Hello user!',
      icon: fs.readFileSync(__dirname + '/icon.jpg'),
      wait: false,
      
      // Other growl options like sticky etc.
      sticky: false,
      label: undefined,
      priority: undefined
    });
    

    En el c贸digo anterior, estamos creando un nuevo Growl instancia con algunas opciones configuradas, como su nombre, el host y el puerto en el que se ejecutar谩.

    A continuaci贸n, llamamos al notify() m茅todo con nuestras opciones habituales. Growl nos presenta algunas opciones m谩s, que est谩n documentadas aqu铆.

    Tostadora de Windows

    Este es un reportero espec铆ficamente para el sistema operativo Windows que admite notificaciones desde Windows 8 y versiones posteriores.

    Usemos el reportero de Windows Toaster para enviar una notificaci贸n:

    const WindowsToaster = require('node-notifier').WindowsToaster;
    // Or
    // const WindowsToaster = require('node-notifier/notifiers/toaster');
     
    let windowsToasterNotifier = new WindowsToaster({
      withFallback: true
    });
     
    windowsToasterNotifier.notify({
        title: "Windows Toaster Notification",
        message: "This is a notification sent from the Windows Toaster Notifier",
        icon:  path.join(__dirname, 'icon.jpg'),
        sound: "SMS",
      },
      function (error, response) {
        console.log(response);
      }
    );
    

    Aqu铆, estamos instanciando un WindowsToaster ejemplo, estableciendo el withFallback argumento como true. Si este notificador no funciona, recurrir谩 a Growl o Windows Balloons.

    Entonces llamamos al .notify() m茅todo con las opciones habituales.

    Globo de Windows

    Este es un reportero espec铆ficamente para todas las versiones del sistema operativo Windows por debajo de Windows 8. Utiliza globos de la barra de tareas para mostrar notificaciones. Para personalizar las opciones para este reportero espec铆ficamente, puede escribir su c贸digo as铆:

    const WindowsBalloon = require('node-notifier').WindowsBalloon;
    // Or
    // const WindowsBallon = require('node-notifier/notifiers/windowsballon');
     
    var windowsBalloonNotifier = new WindowsBalloon({
      withFallback: true
    });
     
    windowsBalloonNotifier.notify({
        title: "Windows Balloon Notification",
        message: "This notification was sent using Windows Balloons.",
        sound: true,
        time: 1000,
        wait: false,
        type: 'warn'
      },
      function (error, response) {
        console.log(response);
      }
    );
    

    Como de costumbre, estamos construyendo una instancia del notificador y pasando nuestras opciones al notify() funci贸n.

    Aqu铆, podemos especificar el time en milisegundos, despu茅s de lo cual la notificaci贸n desaparecer谩. No esperaremos a que el usuario realice una acci贸n contra la notificaci贸n, por lo que wait se establece en false.

    Adem谩s, hemos configurado la notificaci贸n type a warny sound a true. Esto notificar谩 al usuario como una advertencia. Tambi茅n podr铆amos haber usado info o error dependiendo de lo que le gustar铆a transmitir.

    Centro de notificaciones

    Este informador es para enviar notificaciones para sistemas macOS. Requiere macOS versi贸n 10.8 anterior. Para versiones anteriores, utilizar谩 Growl como respaldo. Si Growl no est谩 instalado, se devuelve un error en la funci贸n de devoluci贸n de llamada.

    Para configurar el reportero del Centro de notificaciones, puede escribir su c贸digo como se muestra a continuaci贸n:

    const NotificationCenter = require('node-notifier').NotificationCenter;
    // Or
    // const NotificationCenter = require('node-notifier/notifiers/notificationcenter');
     
    let notificationCenterNotifier = new NotificationCenter({
      withFallback: true
    });
     
    notificationCenterNotifier.notify({
        title: "Notification Center Notifications",
        subtitle: "For macOS > 10.8",
        message: "This is a notification sent using Notification Center",
        sound: 'Frog',
        icon: path.join(__dirname, 'icon.jpg'),
        contentImage: path.join(__dirname, 'content_image.jpg'),
        open: undefined,
        wait: false,
      },
      function (error, response, metadata) {
        console.log(response, metadata);
      }
    );
    

    los sound par谩metro toma un mont贸n de valores como Basso, Blow, Bottle, etc. El valor predeterminado es Bottle si se establece en true. Alternativamente, puede configurar un sonido espec铆fico que desee.

    Notificar-enviar

    Este reportero se utiliza para personalizar notificaciones para enviar en un sistema basado en Linux. Se puede utilizar como se muestra a continuaci贸n:

    const NotifySend = require('node-notifier').NotifySend;
    // Or
    // const NotifySend = require('node-notifier/notifiers/notifysend');
     
    let notifySendNotifier = new NotifySend();
     
    notifySendNotifier.notify({
      title: 'Notify-send Notification',
      message: 'This notification was sent using the notify-send reporter',
      icon: __dirname + '/icon.jpg',
      wait: true,
      timeout: 5
    });
    

    Conclusi贸n

    Las notificaciones proporcionan una forma para que los usuarios interact煤en con sus aplicaciones y las notificaciones nativas son aquellas que se muestran en el escritorio de los usuarios en lugar de mostrarse en el navegador.

    En este art铆culo, hemos cubierto c贸mo usar node-notifier para enviar notificaciones a sus usuarios.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *