【问题标题】:Electron splashscreen on startup application启动应用程序上的电子闪屏
【发布时间】:2016-12-31 18:33:16
【问题描述】:

我一直在使用 Django,现在我正在使用 Electron,因为我想创建一个桌面应用程序。

我想知道有没有一种简单的方法来创建一个启动屏幕(无框窗口),只显示一个徽标几秒钟,然后打开一个“普通”窗口,主应用程序将在其中呈现?

谢谢,

阿诺

【问题讨论】:

  • Electron 只是 Web 应用程序的包装器。加载页面时显示一个对话框并使用 setTimeout 隐藏它。您可以使用任何 javascript 框架来执行此操作。
  • 大家好。显示和隐藏窗口是我的第一个想法。但是我怎样才能显示一个无框窗口然后一个普通窗口?

标签: node.js electron


【解决方案1】:

要获得无框窗口,只需在创建新的BrowserWindow(称为Frameless API)时将frameless 选项设置为true

const {BrowserWindow} = require('electron');
let win = new BrowserWindow({
    width: 800, 
    height: 600, 
    frame: false
});
win.show();

当应用程序触发ready 事件时,在显示“主”应用程序窗口之前显示该窗口。

【讨论】:

    【解决方案2】:

    电子的简单闪屏可能类似于

    let splash
    
    app.on('ready', () => {
      // create main browser window
      mainWindow = new BrowserWindow({
          titleBarStyle: 'hidden',
          width: 1920,
          height: 1080,
          show: false // don't show the main window
      });
      // create a new `splash`-Window 
      splash = new BrowserWindow({width: 810, height: 610, transparent: true, frame: false, alwaysOnTop: true});
      splash.loadURL(`file://${__dirname}/splash.html`);
      mainWindow.loadURL(`file://${__dirname}/index.html`);
    
      // if main window is ready to show, then destroy the splash window and show up the main window
      mainWindow.once('ready-to-show', () => {
        splash.destroy();
        mainWindow.show();
      });
    });
    

    【讨论】:

    • 如果确实是来自linked atom.io discussion的amlang的评论,透露出处不合适吗?
    • 您可以使用 did-finish-load 来确保页面完全加载完成,而不是使用 ready-to-show。 'mainWindow.webContents.on('did-finish-load', () ...'
    猜你喜欢
    • 2017-11-30
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多