在许多电子Angular 教程中,你创建窗口并在超时后从localhost加载index.html。//设置超时以在Angular //编译器准备好显示项目之前呈现窗口现在我想一定有一种方法,不只是随意地等待十秒钟,而是有某种事件来行动。不幸的是,loadURL返回“true”,即使本地主机还不能访问,所以win.once('ready-to-show')在实际上还没有准备好显示时也会被调用。理想情况下,我希望有一个加载屏幕,直到Angular 编译器准备好。任何想法?谢谢!
8dtrkrch1#
由于我找不到替代方案,我实施了以下解决方案:
checkForLoad = setInterval(function () { if (!didLoad) { win.webContents.reload(); } else { clearInterval(checkForLoad); win.show(); } }, 2000);
我每隔几秒就重新加载一次页面。在Angular中,我只需要在Angular应用程序实际运行时发送IPC消息,将“didLoad”更改为true。运行得很好,但显然最好有一个事件来执行。同时,它已经足够接近了。
olhwl3o22#
我找到了以下解决方案:在Angular AppComponent中调用全局方法:window.electron.appControl.isReady()其中调用isReady: () => ipcRenderer.send('appControl', AppControlEvents.IsReady),在electronmain.ts中,我为该事件设置了标志
AppComponent
window.electron.appControl.isReady()
isReady: () => ipcRenderer.send('appControl', AppControlEvents.IsReady),
ipcMain.on('appControl', (event, eventType) => { switch (eventType) { ... case AppControlEvents.IsReady: this.isReadyHandler(); break; } })
字符串在这个处理程序中,我们确信角速度是加载
2条答案
按热度按时间8dtrkrch1#
由于我找不到替代方案,我实施了以下解决方案:
我每隔几秒就重新加载一次页面。在Angular中,我只需要在Angular应用程序实际运行时发送IPC消息,将“didLoad”更改为true。运行得很好,但显然最好有一个事件来执行。同时,它已经足够接近了。
olhwl3o22#
我找到了以下解决方案:
在Angular
AppComponent
中调用全局方法:window.electron.appControl.isReady()
其中调用
isReady: () => ipcRenderer.send('appControl', AppControlEvents.IsReady),
在electronmain.ts中,我为该事件设置了标志
字符串
在这个处理程序中,我们确信角速度是加载