Electron入口文件详解
electron入口文件内容详解,以及nodeIntegration,contextIsolation等参数的用法和解释。
下面是一个基本的electron入口文件结构:
const { app, BrowserWindow } = require('electron');
const path = require('path');
function createWindow() {
const mainWindow = new BrowserWindow({
width: 900,
height: 640,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: false,
contextIsolation: true,
},
});
mainWindow.loadFile(path.join(__dirname, 'index.html'));
}
app.whenReady().then(() => {
createWindow();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
const { app, BrowserWindow }
主进程引入app模块,用于控制应用生命周期
主进程引入BrowserWindow模块,用于创建和控制窗口
const mainWindow = new BrowserWindow({})
创建窗口,设置宽高和 webPreferences
mainWindow.loadFile()
使用窗口的 loadFile 方法加载本地页面(相对 __dirname,打包后路径仍正确)
还可以使用窗口的 loadURL 方法加载远程页面mainWindow.loadURL('https://www.baidu.com')
app.whenReady()
应用初始化完成后再建窗口,避免过早访问 BrowserWindow
app.on('activate')
macOS:点击 Dock 图标且当前无窗口时,重新打开一个窗口
app.on('window-all-closed')
所有窗口关闭时退出应用;macOS 通常保留在 Dock,由用户 Cmd+Q 退出
相关推荐
什么是Chromium Content Module
Chromium是google chrome浏览器的开源版本,它与chrome共用大部分源代码,所以除了少部分功能以及许可协议不同之外,它与Chrome几乎完全相同。
Electron的webPreferences常用配置详解
详解webPreferences的contextIsolation和nodeIntegration配置
如何创建Electron项目
手把手教你从0到1创建一个Electron项目,以及如何安装electron依赖包
Electron介绍
Electron 是由名叫Cheng Zhao的GitHub 工程师创建的一个开源项目。开发、基于 Chromium + Node.js 的跨平台桌面应用开发框架。用前端技术(HTML/CSS/JS/TS)写桌面软件,一套代码同时打包 Windows /macOS/ Linux 客户端。