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
Когда вы нажмете на кнопку, которую мы создали, вы увидите родное уведомление от вашей операционной системы, как показано на следующем снимке экрана —
Мы также обработали события, при которых пользователь щелкает уведомление или время ожидания уведомления. Эти методы помогают нам сделать приложение более интерактивным, если оно работает в фоновом режиме.