恢复Electron JS上的主窗口

w1jd8yoj  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(201)

我创建了一个应用程序(为OSX做的),即使在主窗口隐藏时也会发送消息,目前我的main.js是这样的:

const { app, shell, BrowserWindow, dialog } = require('electron')
const path = require('path')
const electron = require('electron')

// Enable live reload for all the files inside your project directory
require('electron-reload')(__dirname);

let win = null

function createWindow () {
   win = new BrowserWindow({
    width: 420,
    height: 420,
    resizable: false,
    fullscreenable: false,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      nodeIntegration: true
    }
  })

  win.on('close', (event) => {
    if (app.quitting) {
      win = null
    } else {
      event.preventDefault()
      win.hide()
    }
  })

  win.loadFile('index.html')

  win.webContents.on('new-window', function(e, url) {
  // make sure local urls stay in electron perimeter
  if('file://' === url.substr(0, 'file://'.length)) {
    return;
  }

  // and open every other protocols on the browser      
  e.preventDefault();
  shell.openExternal(url);
  });

}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })


})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => { win.show() })

app.on('before-quit', () => app.quitting = true)

这个想法是,当用户试图关闭应用程序,它只是隐藏它。我需要添加一些东西,在一天中的特定时间,应用程序将再次启动主窗口。
有没有办法让主窗口重新打开或者在后台运行一段代码,这样在一天中的某个时间窗口就会被取消隐藏?

edqdpe6u

edqdpe6u1#

当然....这将重新打开最小化的窗口

if (win) {
  if (win.isMinimized()) win.restore()
  win.focus()
}

相关问题