Electron.net入門

Electron.Net 入門

安裝環境

操作流程

  1. 新建一個工程
    這裏寫圖片描述
  2. 選擇.net core 這裏寫圖片描述
  3. 添加electron.net api的引用這裏寫圖片描述
  4. 打開Startup.cs修改代碼

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        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, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
            if (HybridSupport.IsElectronActive)
            {
                // Open the Electron-Window here
                Task.Run(new Action(() =>
                {
                    ElectronBootstrap();
                }));
            }

        }

        public async void ElectronBootstrap()
        {
            //var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
            //{
            //    Width = 1152,
            //    Height = 864,
            //    Frame = false,
            //    Show = true,
            //    Transparent = false
            //}, $"http://localhost:{ BridgeSettings.WebPort }/test.html");
            var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
            {
                Width = 1152,
                Height = 864,
                Frame = false,
                Show = true,
                Transparent = false
            });
            browserWindow.OnReadyToShow += () => browserWindow.Show();
            browserWindow.SetTitle("Electron.NET API Demos");
            browserWindow.WebContents.OnCrashed += async (killed) =>
            {
                var options = new MessageBoxOptions("This process has crashed.")
                {
                    Type = MessageBoxType.info,
                    Title = "Renderer Process Crashed",
                    Buttons = new string[] { "Reload", "Close" }
                };
                var result = await Electron.Dialog.ShowMessageBoxAsync(options);

                if (result.Response == 0)
                {
                    browserWindow.Reload();
                }
                else
                {
                    browserWindow.Close();
                }
                //var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
                //{
                //    Width = 1152,
                //    Height = 864,
                //    Show = false
                //});

                //browserWindow.OnReadyToShow += () => browserWindow.Show();
                //browserWindow.SetTitle("Electron.NET API Demos");
            };
            browserWindow.OnUnresponsive += async () => {
                var options = new MessageBoxOptions("This process is hanging.")
                {
                    Type = MessageBoxType.info,
                    Title = "Renderer Process Hanging",
                    Buttons = new string[] { "Reload", "Close" }
                };
                var result = await Electron.Dialog.ShowMessageBoxAsync(options);

                if (result.Response == 0)
                {
                    browserWindow.Reload();
                }
                else
                {
                    browserWindow.Close();
                }
            };
        }
  1. program.cs也添加如下的代碼

 public static IWebHost BuildWebHost(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .UseElectron(args)
                .UseStartup<Startup>()
                .Build();
        }  
  1. 找到csproj文件添加下圖中的一代碼
    這裏寫圖片描述
  2. 最後在工程文件夾下面執行
dotnet restore
dotnet electron init 
dotnet electronize start

8 確定安裝了electron-package
安裝代碼

tip: 可以考慮淘寶鏡像
結果如下圖
這裏寫圖片描述

發佈了80 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章