Учебники

Электрон — Уведомления

Electron предоставляет собственный API уведомлений только для MacOS. Поэтому мы не будем использовать это, вместо этого мы будем использовать модуль npm, называемый node-notifier . Это позволяет нам уведомлять пользователей в Windows, MacOS и Linux.

Установите модуль Node-Notifier в папку вашего приложения, используя следующую команду в этой папке:

$ npm install --save node-notifier

Давайте теперь создадим приложение, которое имеет кнопку, которая будет генерировать уведомление каждый раз, когда мы нажимаем на эту кнопку.

Создайте новый файл main.js и введите в него следующий код —

const {app, BrowserWindow} = require('electron')
const url = require('url')
const path = require('path')

let win

function createWindow() {
   win = new BrowserWindow({width: 800, height: 600})
   win.loadURL(url.format ({
      pathname: path.join(__dirname, 'index.html'),
      protocol: 'file:',
      slashes: true
   }))
}

app.on('ready', createWindow)

Давайте теперь создадим нашу веб-страницу и скрипт, который будет запускать уведомление. Создайте новый файл index.html со следующим кодом —

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "UTF-8">
      <title>Menus</title>
   </head>
   
   <body>
      <button type = "button" id = "notify" name = "button">
         Click here to trigger a notification!</button>
      <script type = "text/javascript">
         const notifier = require('node-notifier')
         const path = require('path');
         
         document.getElementById('notify').onclick = (event) => {
            notifier.notify ({
               title: 'My awesome title',
               message: 'Hello from electron, Mr. User!',
               icon: path.join('','/home/ayushgp/Desktop/images.png'),  // Absolute path 
                  (doesn't work on balloons)
               sound: true,  // Only Notification Center or Windows Toasters
               wait: true    // Wait with callback, until user action is taken 
               against notification
            
            }, function (err, response) {
               // Response is response from notification
            });

            notifier.on('click', function (notifierObject, options) {
               console.log("You clicked on the notification")
            });

            notifier.on('timeout', function (notifierObject, options) {
               console.log("Notification timed out!")
            });
         }
      </script>
   </body>
</html>

Метод notify позволяет нам передавать объекту такую информацию, как заголовок, сообщение, эскиз и т. Д., Которые помогают нам настроить уведомление. Мы также можем установить некоторые слушатели событий в уведомлении.

Теперь запустите приложение, используя следующую команду —

$ electron ./main.js

Когда вы нажмете на кнопку, которую мы создали, вы увидите родное уведомление от вашей операционной системы, как показано на следующем снимке экрана —

уведомление

Мы также обработали события, при которых пользователь щелкает уведомление или время ожидания уведомления. Эти методы помогают нам сделать приложение более интерактивным, если оно работает в фоновом режиме.