Electron tray.displayBalloon()无法通过异步调用工作

时间:2017-11-14 20:00:59

标签: windows electron

这有效:

tray.displayBalloon({ title: 'my app', 'content': 'Access app settings from tray menu.' });

这不是:

setTimeout(function() {
        tray.displayBalloon({ title: 'my app', 'content': 'Access app settings from tray menu.' });
     }, 100);

为什么?

P.S。我在Win10和Electron 1.8.1上运行它

2 个答案:

答案 0 :(得分:0)

确保在您致电tray.displayBalloon时,您的应用程序正在运行。为了防止应用程序退出,您可以处理will-quit事件(请参阅docs

app.on('will-quit', function (event) {
  event.preventDefault()
})

event.preventDefault()事件处理程序中调用will-quit将阻止默认行为,即终止应用程序。

答案 1 :(得分:0)

看起来像is a known 'wontfix'

解决方案是在displayBalloon调用的选项中提供一个图标。

setTimeout(function () {
    let img = nativeImage.createFromPath('some path to a png works');
    tray.displayBalloon({
        title: 'my app',
        content: 'Access app settings from tray menu.',
        icon: img
    });
}, 100);
相关问题