这是我在node.js应用程序中需要的:
这是我发现的:
你有什么建议吗?我需要可靠,易于安装以及尽可能跨系统。
//修改
自11月6日起,Appjs提供基本的托盘图标支持。
答案 0 :(得分:10)
对于其他任何人来说,请查看https://github.com/rogerwang/node-webkit - 一个很棒的软件包,它允许您使用自己喜欢的工具(如JavaScript)创建桌面应用程序,支持本机shell访问,托盘图标等等。
更新: 该应用程序已移至NWjs.io,但它是同样出色的概念。
答案 1 :(得分:4)
看看Node-QT(https://github.com/arturadib/node-qt)可能会有所帮助。
答案 2 :(得分:0)
我在Linux上使用过systray。它也有望在macOS和Windows上运行。但是我没有测试。
官方文档中的示例
import SysTray from 'systray'
const systray = new SysTray({
menu: {
// you should using .png icon in macOS/Linux, but .ico format in windows
icon: "<base64 image string>",
title: "标题",
tooltip: "Tips",
items: [{
title: "aa",
tooltip: "bb",
// checked is implement by plain text in linux
checked: true,
enabled: true
}, {
title: "aa2",
tooltip: "bb",
checked: false,
enabled: true
}, {
title: "Exit",
tooltip: "bb",
checked: false,
enabled: true
}]
},
debug: false,
copyDir: true, // copy go tray binary to outside directory, useful for packing tool like pkg.
})
systray.onClick(action => {
if (action.seq_id === 0) {
systray.sendAction({
type: 'update-item',
item: {
...action.item,
checked: !action.item.checked,
},
seq_id: action.seq_id,
})
} else if (action.seq_id === 1) {
// open the url
console.log('open the url', action)
} else if (action.seq_id === 2) {
systray.kill()
}
})
它不提供
创建带有登录/密码和确认按钮字段的窗口
但是我认为这项任务是单独的。因此,此答案对只需要systray图标的其他人很有帮助。