所以我有一个Electron应用程序,持有Angular SPA。使用ngrx Redux处理应用程序的状态。
我希望能够创建一个新的BrowserWindow
并保持原始窗口中的状态。我已经看过React,这可以使用redux-electron-store
完成,但我似乎找不到任何类似的Angular。 Angular有可能吗?
您可以使用ipc实现此目的。
原始窗口呈现JS
import { ipcRenderer } from "electron";
let personName = 'Leandro'
let personAge = -1
ipcRenderer.send("send-data", {name:personName, age:personAge})
主/ index.js
// When receives data from ipcRenderer/Original renderer
// emits that data to channel "here is your data"
ipcMain.on("send-data", function(event, args){
ipcMain.emit("here-isyour-data", data)
})
接收器渲染器
let personName = null
let personAge = null
ipcRenderer.on("here-isyour-data",function(event, args) {
personName = args.personName
personAge = args.personAge
})
最好使主index.js成为控制器,但如果你想要,你可以使用ipcRenderer.sendTo()
让渲染器进程相互通信。
要解决您的问题,您可以这样做
// On creation/indexjs
let newWindow = new BrowserWindow()
newWindow.emit('hey, im created')
// On render.js
let personName = null
let personAge = null
newWindow.once('oke, here is your data', function(event, args){
personName = args.personName
personAge = args.personAge
})
// On original render.js
let personName = 'Leandro'
let personAge = -1
ipcRenderer.once("hey, im created", function(){
ipcRenderer.send("oke, here is your data", {name:personName, age:personAge})
})
要么
将主渲染器作为“//创建/索引js”的中间人。
我希望我帮助过,我从未使用角度,但我认为你能够用电子来实现这一点。
欲了解更多信息,请访问电子:ipc Docs
如果你想要一个很酷的改进窗口处理程序,请访问:GitHub