You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.1 KiB
JavaScript
87 lines
2.1 KiB
JavaScript
require('update-electron-app')({
|
|
logger: require('electron-log')
|
|
})
|
|
|
|
const path = require('path')
|
|
const {app, BrowserWindow} = require('electron')
|
|
|
|
const debug = /--debug/.test(process.argv[2])
|
|
|
|
if (process.mas) app.setName('Electron APIs')
|
|
|
|
let mainWindow = null
|
|
|
|
function initialize () {
|
|
makeSingleInstance()
|
|
|
|
function createWindow () {
|
|
const windowOptions = {
|
|
width: 1080,
|
|
minWidth: 680,
|
|
height: 840,
|
|
title: app.getName(),
|
|
webPreferences: {
|
|
nodeIntegration: true,
|
|
preload: path.join(__dirname, 'util', 'preload.js')
|
|
},
|
|
|
|
|
|
}
|
|
|
|
if (process.platform === 'linux') {
|
|
windowOptions.icon = path.join(__dirname, '/assets/app-icon/png/512.png')
|
|
}
|
|
|
|
mainWindow = new BrowserWindow(windowOptions)
|
|
mainWindow.loadURL(path.join('file://', __dirname, '/assets/pages/index.html'))
|
|
|
|
// Launch fullscreen with DevTools open, usage: npm run debug
|
|
if (debug) {
|
|
mainWindow.webContents.openDevTools()
|
|
mainWindow.maximize()
|
|
require('devtron').install()
|
|
}
|
|
|
|
mainWindow.on('closed', () => {
|
|
mainWindow = null
|
|
})
|
|
}
|
|
|
|
app.on('ready', () => {
|
|
createWindow()
|
|
})
|
|
|
|
app.on('window-all-closed', () => {
|
|
if (process.platform !== 'darwin') {
|
|
app.quit()
|
|
}
|
|
})
|
|
|
|
app.on('activate', () => {
|
|
if (mainWindow === null) {
|
|
createWindow()
|
|
}
|
|
})
|
|
}
|
|
|
|
// Make this app a single instance app.
|
|
//
|
|
// The main window will be restored and focused instead of a second window
|
|
// opened when a person attempts to launch a second instance.
|
|
//
|
|
// Returns true if the current version of the app should quit instead of
|
|
// launching.
|
|
function makeSingleInstance () {
|
|
if (process.mas) return
|
|
|
|
app.requestSingleInstanceLock()
|
|
|
|
app.on('second-instance', () => {
|
|
if (mainWindow) {
|
|
if (mainWindow.isMinimized()) mainWindow.restore()
|
|
mainWindow.focus()
|
|
}
|
|
})
|
|
}
|
|
|
|
initialize() |