Javascript electron:在托盘应用程序中显示基本通知
我正在制作托盘应用程序,并尝试显示基本通知: 我的main.js文件和package.json如下所示: 我的app/main.js文件Javascript electron:在托盘应用程序中显示基本通知,javascript,electron,tray,Javascript,Electron,Tray,我正在制作托盘应用程序,并尝试显示基本通知: 我的main.js文件和package.json如下所示: 我的app/main.js文件 const path = require('path'); const { app, globalShortcut, Tray, Notification } = require('electron'); app.on('ready', () => {
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')
}
});
})
mypackage.json文件
{
"name": "test_notification",
"version": "1.0.0",
"description": "",
"main": "app/main.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^5.0.1"
}
}
当我触发击键命令Control+Shift+N时,它会显示console.log,但不会显示通知
您知道如何执行此操作吗?您在以下代码中遗漏了
新的
let myNotification = new Notification('Title', {
body: 'Rabbit'
})
参考资料:您在以下代码中遗漏了new
let myNotification = new Notification('Title', {
body: 'Rabbit'
})
参考:从主进程发送的通知不使用,而是使用而不是模块;这就是为什么提供的代码通过分解require('electron')的结果正确地获得通知
构造函数的原因:
但界面略有不同:
- 只接受一个
选项
参数,其中包括标题
:
let myNotification = new Notification({
title: 'Title',
body: 'Rabbit'
});
- 然后,必须使用以下方式明确显示通知:
notification.show()
立即向用户显示通知,请注意这意味着
与HTML5通知实现不同,实例化
新通知
不会立即向用户显示,您需要
在操作系统显示此方法之前调用它
从主进程发送的通知不使用,而是使用而不是模块;这就是为什么提供的代码通过分解require('electron')的结果正确地获得通知
构造函数的原因:
但界面略有不同:
- 只接受一个
选项
参数,其中包括标题
:
let myNotification = new Notification({
title: 'Title',
body: 'Rabbit'
});
- 然后,必须使用以下方式明确显示通知:
notification.show()
立即向用户显示通知,请注意这意味着
与HTML5通知实现不同,实例化
新通知
不会立即向用户显示,您需要
在操作系统显示此方法之前调用它
很抱歉你是对的,但这只是我的疏忽。即使是新的,它也不起作用。我会修正我的问题组。对不起,你是对的,但这只是我的一种遗忘。它甚至不适用于new,我将修复我的问题它看起来不错,但当我编写let myNotification=new Notification({title:'title',body:'Rabbit'})时;myNotification.onclick=()=>{console.log('Notification clicked')}myNotification.show();然后,没有显示通知id因为主进程不使用HTML5API,所以也没有onclick
处理程序。。。请参阅电子文档,特别是本节。这应该有效:myNotification.show();myNotification.on('click',()=>{console.log('Notification clicked');})代码>是否按此顺序…感谢您的回答,但无论点击事件如何,都不会显示任何通知。这可能取决于平台或某些系统设置,我不知道。你可能想尝试安装这个简单的应用程序,看看它的源代码,它在macOS、LinuxMint和Ubuntu上为我工作;不过它没有实现全局键盘快捷键。它看起来不错,但当我编写时,让myNotification=new通知({title:'title',body:'Rabbit'});myNotification.onclick=()=>{console.log('Notification clicked')}myNotification.show();然后,没有显示通知id因为主进程不使用HTML5API,所以也没有onclick
处理程序。。。请参阅电子文档,特别是本节。这应该有效:myNotification.show();myNotification.on('click',()=>{console.log('Notification clicked');})代码>是否按此顺序…感谢您的回答,但无论点击事件如何,都不会显示任何通知。这可能取决于平台或某些系统设置,我不知道。你可能想尝试安装这个简单的应用程序,看看它的源代码,它在macOS、LinuxMint和Ubuntu上为我工作;但它没有实现全局键盘快捷键。