什么是 Electron?
Electron 是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。通过在二进制文件中嵌入 Chromium 和 Node.js,Electron 使您能够维护一套 JavaScript 代码库,并创建可在 Windows、macOS 和 Linux 上运行的跨平台应用程序——无需原生开发经验。
开始使用
我们建议您从教程开始,它将引导您完成开发 Electron 应用程序并将其分发给用户的过程。示例和 API 文档也是不错的浏览和发现新事物的地方。
使用 Electron Fiddle 运行示例
Electron Fiddle 是一个使用 Electron 编写并由 Electron 维护者支持的沙箱应用程序。我们强烈建议将其作为一个学习工具安装,用于实验 Electron 的 API 或在开发过程中原型化功能。
Fiddle 也与我们的文档很好地集成。在浏览教程中的示例时,您会经常在代码块下方看到一个“在 Electron Fiddle 中打开”按钮。如果您已安装 Fiddle,此按钮将打开一个 fiddle.electronjs.org
链接,该链接将自动加载示例到 Fiddle 中,无需复制粘贴。
- main.js
- preload.js
- index.html
const { app, BrowserWindow } = require('electron/main')
const path = require('node:path')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile('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()
}
})
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const type of ['chrome', 'node', 'electron']) {
replaceText(`${type}-version`, process.versions[type])
}
})
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using Node.js <span id="node-version"></span>,
Chromium <span id="chrome-version"></span>,
and Electron <span id="electron-version"></span>.
</p>
</body>
</html>
文档内容
所有官方文档均可从侧边栏获取。以下是不同的类别以及您可以在每个类别中找到的内容
- 教程:关于如何创建并发布您的第一个 Electron 应用程序的端到端指南。
- Electron 中的进程:关于 Electron 进程及其使用方法的深入参考。
- 最佳实践:开发 Electron 应用程序时需要记住的重要清单。
- 示例:为您的 Electron 应用程序添加功能的快速参考。
- 开发:杂项开发指南。
- 分发:了解如何将您的应用程序分发给最终用户。
- 测试与调试:如何调试 JavaScript、编写测试以及用于创建高质量 Electron 应用程序的其他工具。
- 参考:有助于更好地理解 Electron 项目如何运作和组织起来的有用链接。
- 贡献:编译 Electron 和做出贡献可能令人望而生畏。我们试图在本节中使其变得更容易。
获取帮助
您在任何地方遇到困难了吗?这里有一些可以查找的地方链接
- 如果您在开发应用程序方面需要帮助,我们的社区 Discord 服务器是从其他 Electron 应用程序开发者那里获得建议的好地方。
- 如果您怀疑遇到了
electron
包的错误,请查看 GitHub Issue 跟踪器,看看是否有现有问题与您的问题匹配。如果没有,请随时填写我们的错误报告模板并提交新问题。