我正在制作纸盘应用程序,并且尝试显示基本通知:
我的main.js文件和package.json在下面:
我的app / main.js文件
const path = require('path');
const {
app,
globalShortcut,
Tray,
Notification
} = require('electron');
app.on('ready', () => {
tray = new Tray(path.join(__dirname, 'icon-light.png'));
globalShortcut.register('CommandOrControl+Shift+N', () => {
console.log("Roger");
let myNotification = new Notification('Title', {
body: 'Rabbit'
})
myNotification.onclick = () => {
console.log('Notification clicked')
}
});
})
我的package.json文件
{
"name": "test_notification",
"version": "1.0.0",
"description": "",
"main": "app/main.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^5.0.1"
}
}
当我触发击键CommandOrControl + Shift + N时,它向我显示console.log而不是通知。
你知道怎么做吗?
答案 0 :(得分:0)
您错过了以下代码中的new
。
let myNotification = new Notification('Title', {
body: 'Rabbit'
})
答案 1 :(得分:0)
从主进程发送的通知不使用HTML5 Notification API,而是使用Notification模块;这就是为什么提供的代码通过解构Notification
的结果来正确获取require('electron')
构造函数的原因:
const {
app,
globalShortcut,
Tray,
Notification
} = require('electron');
但是界面略有不同:
constructor仅接受一个options
参数,其中包括title
:
let myNotification = new Notification({
title: 'Title',
body: 'Rabbit'
});
然后必须使用notification.show()明确显示通知:
myNotification.show();
notification.show()
立即向用户显示通知,请注意这意味着 与HTML5 Notification实现不同,实例化一个
new Notification
不会立即向用户显示它,您需要 在操作系统显示它之前调用此方法。