如何在 Electron Angular 应用程序中创建一个新的浏览器窗口,并将给定组件作为统计屏幕

问题描述 投票:0回答:1

我现有的 Electron Angular 应用程序运行良好。 我想在单击按钮时创建一个新窗口,并让该窗口使用给定的 Angular 组件作为其初始 UI 内容。

所以我制作了一个新组件,如下所示:

ng 生成组件 TrivialComponent

现在,在我的电子应用程序中,我确保在 app.module.ts 顶部我有:

import { TrivialComponent } from './trivial.component';

并且它被添加到声明中,如下所示:

@NgModule({
  declarations: [
    AppComponent,
    TrivialComponent,

现在,在我的按钮单击事件上添加:

var w = new BrowserWindow({
                title: "My Title",
                minWidth: 800,
                minHeight: 600,
                frame: true,
                resizable: true,
                transparent: false,
                closable: true,
                show: false,
                webPreferences: {
                  nodeIntegration: true,
                  contextIsolation: false,
                  allowRunningInsecureContent: true,
                  enableRemoteModule: true
                } as Electron.WebPreferences
              });

              w.show();

                w.loadFile("dist/index2.html");

index2.html 的正文是:

<body class="igx-typography">
  <app-trivial></app-trivial>
</body>

当我运行这个时,我得到一个新的空窗口,但内容是空白的,而不是我的新组件的 html,即:

<p>Trivial component works!</p>

有人知道我错过了什么吗?

html angular electron
1个回答
0
投票

您可以尝试创建到新组件的标准路由,然后在显示之前尝试此操作:

w.once('ready-to-show', () => {
            if (urlToOpen) {
                win.webContents.send('openUrl', urlToOpen);
                if (win.isMinimized()) win.restore()
                win.focus()
            }
        });

其中

urlToOpen
是带有组件路由的 URL。 但准确地说,当用户通过导航到 ourapp://urlToOpen 从浏览器打开电子应用程序时,我们使用此解决方案。 我现在不记得 urlToOpen 在代码中是什么样子的。它是否有
ourapp
前缀。如果它以这种方式导航可能是一个解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.