加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.js 2.02 KB
一键复制 编辑 原始数据 按行查看 历史
DemoPark 提交于 2020-05-13 09:44 . 更新并修正已知问题
require('update-electron-app')({
logger: require('electron-log')
})
const path = require('path')
const glob = require('glob')
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()
loadDemos()
function createWindow () {
const windowOptions = {
width: 1080,
minWidth: 680,
height: 840,
title: app.getName(),
webPreferences: {
nodeIntegration: true
}
}
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, '/index.html'))
// 在打开 DevTools 的情况下全屏启动, 用法: 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()
}
})
}
// 将此应用程序设为单个实例应用程序。
//
// 当尝试启动第二个实例时,将恢复并聚焦到主窗口,
// 而不是打开第二个窗口。
//
// 如果应用程序的当前版本应该退出而不是启动,
// 则返回true.
function makeSingleInstance () {
if (process.mas) return
app.requestSingleInstanceLock()
app.on('second-instance', () => {
if (mainWindow) {
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.focus()
}
})
}
// 在主进程目录中需要的每个 JS 文件
function loadDemos () {
const files = glob.sync(path.join(__dirname, 'main-process/**/*.js'))
files.forEach((file) => { require(file) })
}
initialize()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化