mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-02-13 21:24:00 +00:00
`Electron.App.On("eventName", () => {});` or `Electron.App.On("eventName", obj => {});`
fix #527
119 lines
3.9 KiB
C#
119 lines
3.9 KiB
C#
using ElectronNET.API;
|
|
using ElectronNET.API.Entities;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
namespace ElectronNET.WebApp
|
|
{
|
|
public class Startup
|
|
{
|
|
public IConfiguration Configuration { get; }
|
|
|
|
public Startup(IConfiguration configuration)
|
|
{
|
|
Configuration = configuration;
|
|
}
|
|
|
|
// This method gets called by the runtime. Use this method to add services to the container.
|
|
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
|
public void ConfigureServices(IServiceCollection services)
|
|
{
|
|
services.AddMvc();
|
|
}
|
|
|
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
|
{
|
|
if (env.IsDevelopment())
|
|
{
|
|
app.UseDeveloperExceptionPage();
|
|
}
|
|
|
|
app.UseStaticFiles();
|
|
|
|
app.UseRouting();
|
|
|
|
app.UseEndpoints(endpoints =>
|
|
{
|
|
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
|
|
});
|
|
|
|
if (HybridSupport.IsElectronActive)
|
|
{
|
|
ElectronBootstrap();
|
|
}
|
|
}
|
|
|
|
public async void ElectronBootstrap()
|
|
{
|
|
//AddDevelopmentTests();
|
|
|
|
var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
|
|
{
|
|
Width = 1152,
|
|
Height = 940,
|
|
Show = false
|
|
});
|
|
|
|
await browserWindow.WebContents.Session.ClearCacheAsync();
|
|
|
|
browserWindow.OnReadyToShow += () => browserWindow.Show();
|
|
browserWindow.SetTitle(Configuration["DemoTitleInSettings"]);
|
|
}
|
|
|
|
private static void AddDevelopmentTests()
|
|
{
|
|
// NOTE: on mac you will need to allow the app to post notifications when asked.
|
|
|
|
Electron.App.On("activate", (obj) =>
|
|
{
|
|
// obj should be a boolean that represents where there are active windows or not.
|
|
var hasWindows = (bool) obj;
|
|
|
|
Electron.Notification.Show(
|
|
new NotificationOptions("Activate", $"activate event has been captured. Active windows = {hasWindows}")
|
|
{
|
|
Silent = false,
|
|
});
|
|
});
|
|
|
|
Electron.Dock.SetMenu(new[]
|
|
{
|
|
new MenuItem
|
|
{
|
|
Type = MenuType.normal,
|
|
Label = "MenuItem",
|
|
Click = () =>
|
|
{
|
|
Electron.Notification.Show(new NotificationOptions(
|
|
"Dock MenuItem Click",
|
|
"A menu item added to the Dock was selected;"));
|
|
},
|
|
},
|
|
new MenuItem
|
|
{
|
|
Type = MenuType.submenu,
|
|
Label = "SubMenu",
|
|
Submenu = new[]
|
|
{
|
|
new MenuItem
|
|
{
|
|
Type = MenuType.normal,
|
|
Label = "Sub MenuItem",
|
|
Click = () =>
|
|
{
|
|
Electron.Notification.Show(new NotificationOptions(
|
|
"Dock Sub MenuItem Click",
|
|
"A menu item added to the Dock was selected;"));
|
|
},
|
|
},
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|