我有以下情况:我有一个Angular CLI应用程序,它由npm start启动。此操作可能需要一些时间才能完成。启动后,该应用程序可在localhost:3000获得。 然后我们有一个Electron应用程序(使用nativefier模块制作),它使用url localhost:3000创建一个应用程序。 当我使用批处理文件启动Angular应用程序并同时启动Electron应用程序时,会出现问题。显然,由于NPM启动尚未完成,Electron应用程序将显示错误。另一方面,我无法按顺序执行NPM启动和应用程序,因为最终用户不应该看到NPM启动的CMD窗口(我用VBS脚本隐藏)。 理想情况下,最好的解决方案是电子应用程序和npm开始并行启动,电子应用程序会在NPM启动时显示加载屏幕。
我真的不知道如何实现这一目标。
有人能解决我的问题吗?
由于 法比奥
答案 0 :(得分:1)
我找到的解决方案包括有两个不同的窗口并与它们一起玩,隐藏第一个窗口并在后者准备就绪时显示第二个...所以,想象一下你想在等待本地主机时显示Google.com准备好了
const {app, BrowserWindow} = require('electron')
let win
let win2
function createWindow () {
let win = new BrowserWindow({backgroundColor: '#2e2c29'})
win = new BrowserWindow({width: 800, height: 600, show:false})
win2 = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://localhost:3000')
win2.loadURL('http://www.google.com')
win.once('ready-to-show', () => {
win.show()
win2.hide()
win2.close()
})
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})