【发布时间】:2017-01-21 07:56:33
【问题描述】:
我正在开发基于 Electron 的多窗口桌面应用程序,我需要与应用程序的其他窗口共享来自主应用程序进程的对象实例。目前在浏览器(Chrome 52.0.2743.116)中,您可以参考 window.opener 来实现这一点。在浏览器中 window.opener (在子窗口中)将为您提供调用 window.opent(myURL) 的 Window 对象的实例。
例如,如果您在window.myData = {}; (Main window) 中设置myData 的相同实例将在(子窗口)中可用,并将通过(window.opener.myData)访问。
在 Electron 中,当我通过 (window.opent(myURL)) 打开窗口时,window.opener 被 BrowserWindowProxy(Electron API)替换,它不会暴露调用 (window.open(myURL)) 的相同窗口(Window 对象实例)。 Electron 中是否可以像在浏览器中一样访问 window.opener?
使用 remote.sharedObject (Electron API) 不是一种选择,因为它只序列化/反序列化数据,可用于将数据从一个窗口传递到其他窗口,但不能跨窗口访问相同的对象实例。
【问题讨论】:
标签: node.js shared-memory electron