我已经创建了一个电子应用程序,主要是一个web应用程序,它与电子应用程序有轻微的集成。大多数人只是用loadURL通过BrowserWindow加载一个网站。
然而,对于产生的每个CreateWindow (它们具有相同的内容),我需要变量来影响单个窗口,而不是所有窗口。
目前,如果我更改了一个let变量,那么所有窗口的它们都会被更改。我不确定如何使变量仅在特定窗口中使用某个值进行更新和使用。
例如,如果我在一个窗口中设置了userId =1,当我通过web应用程序发送ipc消息时,它也会在第二个窗口中更改。我不确定这里最好的逻辑是什么。
发布于 2019-01-23 00:10:52
编辑
如果您打开一个窗口的两个单独的实例,如下所示,每个变量都应该在它们自己的字段中。
只需更改main进程中的位置
// Create the browser window.
win = new BrowserWindow({ width: 800, height: 600 })
// and load the index.html of the window.
win.loadURL('https://google.com')
// Create the browser window.
win2 = new BrowserWindow({ width: 800, height: 600 })
// and load the index.html of the window.
win2.loadURL('https://youtube.com')编辑2个
因此,根据我的评论,我想我有一个解决方案给你。如果您希望每个窗口都有单独的变量,您可以将它们存储在window对象本身中。只需确保在销毁对象之前提取它们(如果您仍然需要它们) :)
// Create the browser windows
let win_0 = new BrowserWindow({ width: 800, height: 600 });
let win_1 = new BrowserWindow({ width: 800, height: 600 });
// Set variables
win_0.UID = 'ASDF-ASDF';
win_1.UID = 'QWER-QWER';
// And now you can just get them like
console.log(win_0.UID, win_1.UID);https://stackoverflow.com/questions/54310797
复制相似问题