从主进程与菜单栏窗口的通信不起作用

Posted

技术标签:

【中文标题】从主进程与菜单栏窗口的通信不起作用【英文标题】:Communication with the menubar window from main process is not working 【发布时间】:2019-04-07 13:48:09 【问题描述】:

我正在使用菜单栏(https://www.npmjs.com/package/menubar),我需要从主进程向它发送信息,但它似乎不起作用。

一旦我的应用程序加载,它就会创建菜单栏并从服务器请求一些信息。服务器返回有关用户是否为管理员的信息。这被证实工作正常。如果用户是经理,我想在菜单栏窗口中显示一个按钮。

/* 主进程 */

menubar.window.webContents.send('is-a-manager', true)

/* 渲染器进程 - 我导入 ipcRenderer*/

ipcRenderer('is-a-manager', (event, isManager) => 
   console.log(isManager);
)

菜单栏中的窗口实际上应该记录“true”,但它不打印任何内容。

【问题讨论】:

注意:上面的代码中存在我的代码中没有的问题...上面的代码应为:ipcRenderer.on(....)。我现在让代码工作了,但我不知道它为什么工作。这很奇怪,但是当我将超时设置为 1 秒时,事情会按预期工作。 SetTimeout(()->menubar.window.webContents.send('is-a-manager', true), 1000)。因此,它必须是加载方式的问题,但我无法弄清楚问题是什么。 那你为什么不编辑你的问题呢? ;) 【参考方案1】:
ipcRenderer.on('is-a-manager', (event, isManager) => 
   console.log(isManager);
)

ipcRenderer.on(channel, listener)

【讨论】:

是的,对不起。这是我上面提供的代码的错误。你描述的方式就是我在我的代码中的方式,它仍然不起作用。

以上是关于从主进程与菜单栏窗口的通信不起作用的主要内容,如果未能解决你的问题,请参考以下文章

单击不起作用的滑出菜单栏

为啥侧边栏下拉菜单不起作用 bootstrap 3

OSX 系统菜单栏在 JavaFX 中不起作用

为啥 Bootstrap 3 导航栏下拉菜单在 IE8 中不起作用?

Javascript 在下拉响应式菜单栏中不起作用

导航栏中的下拉菜单在 Rails 6 中不起作用