一、简介
-
Electron
是一个使用JavaScript
,HTML
和CSS
等 Web 技术创建原生程序的框架 - 基于
Chromium
(Chromium和Chrome所使用的webkit内核是目前公认的最快的网页浏览方式) 和Node.js
- 由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目
- 兼容
Mac
,Windows
和Linux
二、A Simple Electron example application
- 创建Demo 文件夹,npm初始化,修改
package.json
文件
注:main字段无,同Node.js
加载index.js
文件 - 安装Electron,修改start
npm install --save-dev electron
"start": "node ."
修改为"start": "electron ."
package.json
文件
{
"name": "electronDemo",
"version": "1.0.0",
"description": "Electron Demo",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "electron ."
},
"keywords": [],
"author": "Tianyaxiaoxiaosheng",
"license": "ISC",
"devDependencies": {
"electron": "^3.0.10"
}
}
- 创建
main.js
、index.html
main.js
文件
/**
* 一般在该文件中创建窗口,处理可能遇到的所有系统事件
*/
const {app, BrowserWindow} = require('electron')
let mainWindow;
const createWindow = () => {
//Create the browser window.
mainWindow = new BrowserWindow({width: 800, height: 600})
//and load the index.html of the app.
mainWindow.loadFile('index.html')
//Open developer tools.
mainWindow.webContents.openDevTools()
//Window closes event listener
mainWindow.on('closed', () => {
//取消引用Window 对象,多个窗口使用数组
mainWindow = null
})
}
// Electron 会在初始化后并准备
// 创建浏览器窗口时,调用这个函数。
// 部分 API 在 ready 事件触发后才能使用。
app.on('ready', createWindow)
// 当全部窗口关闭时退出。
app.on('window-all-closed', () => {
// 在 macOS 上,除非用户用 Cmd + Q 确定地退出,
// 否则绝大部分应用及其菜单栏会保持激活。
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
// 在macOS上,当单击dock图标并且没有其他窗口打开时,
// 通常在应用程序中重新创建一个窗口。
if (win === null) {
createWindow()
}
})
// 在这个文件中,你可以续写应用剩下主进程代码。
// 也可以拆分成几个文件,然后用 require 导入。
index.html
文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Electron Demo</title>
</head>
<body>
<h1>A Simple Electron example application</h1>
</body>
</html>
- 运行
npm start
image.png
网友评论