Electron webContents 模块
webContents 模块是 Electron 中的一个模块,用于管理和控制一个页面的渲染过程和交互。每个 BrowserWindow 实例都有一个关联的 webContents 对象,你可以通过这个对象来操作和与渲染进程进行通信。以下是一些常见的用法和示例:1. 获取 webContents 对象: 在主进程中,你可以通过以下方式获取 webContents 对象: const { BrowserWindow } = require('electron'); const mainWindow = new BrowserWindow({ width: 800, height: 600 }); const webContents = mainWindow.webContents;2. 向渲染进程发送消息: 在主进程中,通过 webContents.send 方法向渲染进程发送消息: webContents.send('message-channel', 'Hello from main process!'); ...
Electron session 模块
session 模块是 Electron 中的一个模块,用于管理浏览器会话。每个 Electron 的 BrowserWindow 实例都有一个关联的会话(session),可以通过 webContents 对象的 session 属性来访问。session 模块允许你对会话进行配置,例如设置代理、清除缓存、管理 cookie 等。以下是一些 session 模块的用法示例:1. 获取默认会话: const { session } = require('electron'); const defaultSession = session.defaultSession;2. 创建自定义会话: const { app, session } = require('electron'); // 创建自定义会话 const customSession = session.fromPartition('custom'); // 使用自定义会话加载页面 const mainWindow = new BrowserWindow...
Electron protocol 模块
protocol 模块是 Electron 中的一个模块,用于自定义协议处理。通过使用这个模块,你可以定义和注册自定义协议,以便在 Electron 应用程序中加载自定义资源或处理自定义 URL 方案。以下是一个简单的例子,演示如何使用 protocol 模块注册自定义协议并加载自定义资源:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, protocol } = require('electron');const path = require('path');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600 }); // 注册自定义协议 protocol.registerFileProtocol('custom', (request, callback) => { const url ...
Electron powerSaveBlocker 模块
powerSaveBlocker 模块是 Electron 中的一个模块,用于阻止系统进入节能模式或屏幕保护程序。通过使用这个模块,你可以防止系统在特定的时间段内自动进入休眠或关闭显示器。以下是一个简单的例子,演示如何使用 powerSaveBlocker 模块来阻止系统进入节能模式:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, powerSaveBlocker } = require('electron');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); // 加载你的 HTML 文件 // 阻止系统进入节能模式 const blockerId = powerSaveBlocker.start('prevent-disp...
Electron powerMonitor 模块
powerMonitor 模块是 Electron 中的一个模块,用于监控系统的电源状态变化。通过使用这个模块,你可以获取关于系统电源状态的信息,例如系统是否处于活动状态、是否正在使用电池等。以下是一个简单的例子,演示如何使用 powerMonitor 模块监听系统的电源状态变化:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, powerMonitor } = require('electron');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); // 加载你的 HTML 文件 // 监听电源状态变化 powerMonitor.on('on-ac', () => { console.log('Sy...
Electron MenuItem 模块
MenuItem 模块是 Electron 中用于创建菜单项的模块。通过 MenuItem,你可以定义菜单中的每个具体项的属性、行为和事件处理逻辑。以下是一个简单的例子,演示了如何使用 MenuItem 创建一个菜单项,并将其添加到菜单中:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, Menu, MenuItem } = require('electron');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); // 加载你的 HTML 文件 // 创建菜单项 const openMenuItem = new MenuItem({ label: 'Open', click: () => { ...
Electron menu 模块
在 Electron 中,Menu 模块用于创建和管理应用程序的菜单。菜单可以包含应用程序的各种命令和操作,它们可以是应用程序菜单栏上的顶级菜单,也可以是上下文菜单(右键菜单)等。以下是一个简单的例子,演示了如何使用 Electron 的 Menu 模块创建一个简单的应用程序菜单:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, Menu } = require('electron');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); // 加载你的 HTML 文件 // 创建菜单模板 const template = [ { label: 'File', submenu: [ {...
Electron ipcMain 模块
ipcMain 模块是 Electron 中的一个模块,用于处理主进程(Main Process)和渲染进程(Renderer Process)之间的进程间通信(Inter-Process Communication,IPC)。在 Electron 应用程序中,主进程负责管理应用的生命周期、处理系统事件等,而渲染进程则负责显示应用的用户界面。ipcMain 模块的作用是在主进程中监听和处理从渲染进程发送过来的 IPC 消息。这使得你可以在主进程中执行一些操作,然后将结果发送回渲染进程,实现进程之间的数据传递和通信。以下是一个简单的示例,演示了如何在主进程中使用 ipcMain 监听来自渲染进程的消息:在主进程的主文件中(通常是 main.js 或 index.js):const { app, BrowserWindow, ipcMain } = require('electron');let mainWindow;app.on('ready', () => { mainWindow = new BrowserWindow({ width: 800...
Electron global-shortcut 模块
globalShortcut 模块是 Electron 中用于注册全局键盘快捷键的模块。通过这个模块,你可以注册全局键盘快捷键,使用户可以在任何应用程序窗口中触发指定的操作。以下是 globalShortcut 模块的基本用法:1. 引入 globalShortcut 模块: const { globalShortcut } = require('electron');2. 注册全局快捷键: const { globalShortcut } = require('electron'); const ret = globalShortcut.register('CommandOrControl+Alt+K', () => { console.log('Global shortcut activated!'); }); if (!ret) { console.error('Registration failed!'); } 在上述示例中,register 方法用...
Electron dialog 模块
dialog 模块是 Electron 中用于显示原生系统对话框的模块。通过 dialog 模块,你可以方便地显示文件选择对话框、消息框、错误框等,与用户进行交互。以下是一些 dialog 模块的基本用法:1. 引入 dialog 模块: const { dialog } = require('electron');2. 显示文件选择对话框: const { dialog } = require('electron'); // 显示打开文件对话框 dialog.showOpenDialog({ title: '选择文件', defaultPath: '/path/to/default/folder', filters: [ { name: '文本文件', extensions: ['txt', 'md'] }, { name: '所有文件', extensions: ['*'] }...
Electron contentTracing 模块
contentTracing 模块是 Electron 中用于记录和分析渲染进程的模块。通过这个模块,你可以获取有关渲染进程性能和事件的详细信息,用于分析和调试。以下是 contentTracing 模块的基本用法:1. 引入 contentTracing 模块: const { app, contentTracing } = require('electron');2. 开始记录追踪: app.whenReady().then(() => { contentTracing.startRecording({ categories: ['*'], // 可以指定要记录的类别 path: '/path/to/trace-results.json' // 保存记录的文件路径 }); }); 在上述例子中,categories 参数指定了要记录的类别。'*' 表示记录所有类别。path 参数指定了保存记录的文件路径。3. 停止记录追踪: app.on('be...
Electron BrowserWindow 模块
BrowserWindow 模块是 Electron 中用于创建和管理应用程序窗口的主要模块。通过 BrowserWindow,你可以创建各种类型的窗口,包括主窗口、子窗口、模态对话框等,并对窗口的行为和外观进行配置。以下是一些 BrowserWindow 模块的常用功能和配置:1. 创建主窗口: const { app, BrowserWindow } = require('electron'); let mainWindow; app.whenReady().then(() => { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }); mainWindow.loadFile('index.html'); });2. 窗口事件: mainWindow.on('closed'...
Electron autoUpdater 模块
autoUpdater 模块是 Electron 中用于实现应用程序自动更新的模块。它使你能够检查并下载新版本的应用程序,同时提供了一些用于处理更新过程中的事件的方法。以下是使用 autoUpdater 模块的基本步骤:1. 在主进程中引入 autoUpdater 模块: const { app, autoUpdater } = require('electron');2. 配置更新源: 在应用程序初始化时,设置更新源的 URL,通常是包含更新信息的服务器地址。 const feedUrl = 'https://your-update-server.com'; autoUpdater.setFeedURL(feedUrl); 确保替换 https://your-update-server.com 为实际的更新服务器地址。3. 监听更新事件: 监听 autoUpdater 的一些事件,以便在更新过程中执行相应的操作。 autoUpdater.on('checking-for-update', () => {...
Electron app 模块
在 Electron 中,app 模块是一个主要的模块,负责控制应用程序的生命周期、管理应用程序的各种事件,并提供一些全局的应用程序级别的配置。以下是一些 app 模块的常用功能和事件:1. 应用程序生命周期事件: - ready: 当 Electron 应用程序完成基础的初始化后,会触发 ready 事件。通常在这个事件中创建主窗口。 const { app, BrowserWindow } = require('electron'); app.on('ready', () => { const mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); }); - window-all-closed: 当所有窗口都关闭时触发。在 macOS 中,通常应用程序会保持激活状态,直到用户显式地退出。 app.on('window-al...
Electron window.open 函数
在 Electron 中,你可以使用 window.open 函数来创建新的窗口,类似于在浏览器中打开新标签页或新窗口。以下是一个简单的示例:// renderer.jsdocument.getElementById('openButton').addEventListener('click', () => { // 使用 window.open 创建新窗口 const newWindow = window.open('new_window.html', 'New Window', 'width=400,height=300'); // 在新窗口加载完成后执行一些操作 newWindow.onload = () => { newWindow.document.getElementById('newWindowContent').innerText = 'Hello from new window!'; };});在这个例子中,当点击一个按钮时,...
Electron DOM <webview> 标签
<webview> 标签是 Electron 中用于嵌入和加载独立 web 内容的标签。与 <iframe> 不同,<webview> 元素是一个完整的、独立的渲染进程,具有自己的上下文,类似于一个额外的窗口。以下是使用 <webview> 标签的基本示例:<!-- index.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Electron WebView Example</title></head><body> <webview id="exampleWebView&quo...
Electron DOM File对象
在 Electron 应用程序中,与普通的 Web 应用程序一样,你可以通过 DOM(Document Object Model) 操作 File 对象来处理文件。File 对象通常与文件输入框(<input type="file">)一起使用,或者通过其他方式(例如拖放操作)获取到。以下是一些在 Electron 中使用 DOM File 对象的示例:1. 通过文件输入框获取 File 对象: 在渲染进程(Renderer Process)中,你可以通过监听文件输入框的 change 事件来获取用户选择的文件。这个事件返回一个包含选定文件信息的 FileList 对象,你可以从中提取 File 对象。 <!-- index.html --> <input type="file" id="fileInput" multiple> // renderer.js const fileInput = document.getElementById('fileInput&...
Electron API
Electron 提供了许多 API 供开发者使用,这些 API 能够方便地访问底层系统功能和提供一些常见的功能。以下是一些常用的 Electron API:1. app 模块: app 模块是 Electron 应用程序的主模块,提供了应用程序的生命周期事件、基本配置和全局状态的管理。 const { app } = require('electron'); app.on('ready', () => { // 应用程序准备就绪 }); app.on('window-all-closed', () => { // 所有窗口都关闭时的处理 });2. BrowserWindow 模块: BrowserWindow 模块用于创建和管理应用程序的窗口。 const { BrowserWindow } = require('electron'); const mainWindow = new BrowserWindow({ width: 800, heigh...
Electron 自动更新功能autoUpdater
Electron 的 autoUpdater 模块是用于实现应用程序自动更新的功能。它使你能够检查应用程序的新版本并下载、安装更新。以下是使用 Electron 的 autoUpdater 的基本步骤:1. 在主进程中引入 autoUpdater 模块: 在你的 Electron 主进程文件(通常是 main.js 或 index.js)中引入 autoUpdater 模块。 const { app, autoUpdater } = require('electron');2. 配置更新源: 在 autoUpdater 中设置更新源的 URL。这通常是包含更新信息的服务器端地址。 const feedUrl = 'https://your-update-server.com'; autoUpdater.setFeedURL(feedUrl); 请确保替换 https://your-update-server.com 为实际的更新服务器地址。3. 监听更新事件: 监听 autoUpdater 的一些事件,以便在更新过程中进行相应的处理。 ...
Electron 交互式解释器 (REPL)
在 Electron 中,你可以使用 Node.js 的 REPL(Read-Eval-Print Loop)模块来创建一个交互式解释器。REPL 允许你在运行时输入和执行 JavaScript 代码,对于调试和测试非常有用。以下是一个简单的示例:1. 在你的 Electron 项目中创建一个新的窗口,用于运行 REPL。const { app, BrowserWindow } = require('electron');let mainWindow;function createWindow() { mainWindow = new BrowserWindow({ width: 800, height: 600 }); mainWindow.loadFile('index.html'); mainWindow.webContents.openDevTools(); // 在主窗口创建后打开 REPL openRepl();}function openRepl() { const replWindow = new BrowserWindow(...