如何在复杂场景的服务器端 Blazor 项目中管理使用 Electron.NET 的应用程序/电子生命周期?

问题描述

我正在尝试使用 Blazor 和电子框架开发桌面应用程序。我将 .Net 5 与服务器端 Blazor 模型和用于 .Net Core 平台的 Electron.Net 包装器包 Electron.Net 一起使用。从文档或不同的 Web 资源来看,为桌面配置 Blazor Web 应用程序的基本思想如下- 在 UseElectron(args) 方法中添加 Program.CreateHostBuilder() 并配置 Startup.cs 类,如

public void Configure(IApplicationBuilder app,IWebHostEnvironment env){
//code omitted
ElectronBuilders();
}

ElectronBuilders(){

BrowserWindow mainWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
 {
  Resizable = false,Width = 800,Height = 600,Show = false
 });
 mainWindow.OnReadyToShow += () =>
 {
   mainWindow.Show();
 };
}

到目前为止,一切都很好。现在我需要一个系统托盘图标和一个托盘图标的弹出窗口来显示一些与应用程序相关的通知。通过在 Electron.Tray.Show() 方法中添加此 ElectronBuilders(),我能够添加托盘图标。

但是,虽然所有这些工作正常,但我有点困惑,我应该在这里编写所有桌面基础逻辑吗?或者是否有适当的指南在哪里/如何以更好的方式安排代码结构?正如electronjs框架所描述的,有主进程和渲染器进程,就我的.Net Blazor项目而言,它在哪里?如何管理不同的窗口生命周期(即当弹出窗口在托盘区域打开时,我需要在某些用户单击时从该窗口转到主窗口)。

谁能给出一个关于如何解决这些架构问题的通用指南?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...