有人用过 Nodejs 的 atom-shell 么?
有人用过 Nodejs 的 atom-shell 么?
从实用度讲, mozilla的gecko内核成熟得多了,成熟案例也多, 比如firefox、thunderbird、komodo edit/ide、pencil等.
当然,Node.js 社区中确实有很多开发者使用 atom-shell
(现在称为 Electron)。Electron 是一个用于构建跨平台桌面应用的框架,它结合了 Node.js 和 Chromium 浏览器引擎。Electron 允许开发者使用 HTML、CSS 和 JavaScript 来创建桌面应用程序。
虽然 Mozilla 的 Gecko 内核确实非常成熟,并且被广泛应用于 Firefox 等知名产品中,但 Electron 由于其易用性和丰富的社区支持,在开发跨平台桌面应用方面也非常受欢迎。
示例代码
以下是一个简单的 Electron 应用示例,展示如何创建一个基本的窗口并显示“Hello World”:
-
安装 Electron
首先,你需要安装 Electron。可以通过 npm 安装:
npm install electron --save-dev
-
创建主进程文件
创建一个名为
main.js
的文件,并添加以下代码:const { app, BrowserWindow } = require('electron'); function createWindow () { // 创建浏览器窗口 const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }); // 加载 index.html 文件 win.loadFile('index.html'); } app.whenReady().then(createWindow); app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } });
-
创建 HTML 文件
创建一个名为
index.html
的文件,并添加以下代码:<!DOCTYPE html> <html> <head> <title>Hello World!</title> </head> <body> <h1>Hello World!</h1> <!-- 你可以在这里添加更多的 HTML 内容 --> </body> </html>
-
运行应用
在项目根目录下,运行以下命令启动应用:
npx electron .
解释
-
主进程 (
main.js
):这是 Electron 应用的主要入口点。在这个文件中,我们创建了一个BrowserWindow
对象来显示网页。我们还处理了一些生命周期事件,比如当所有窗口关闭时退出应用。 -
渲染进程 (
index.html
):这是实际显示给用户的内容。在这个文件中,我们可以编写任何 HTML、CSS 或 JavaScript 代码。
通过这种方式,你可以利用 Web 技术栈(HTML、CSS、JavaScript)来开发跨平台的桌面应用,而无需学习复杂的原生编程语言。
还是phonegap的descktop版本吧,更靠谱
当然有人使用过 Node.js 的 electron
(原名 atom-shell
)。Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架。它由 GitHub 开发并维护,并且已经被许多知名应用使用,例如 Visual Studio Code 和 Slack。
以下是使用 Electron 创建一个简单桌面应用的步骤和示例代码:
步骤
-
安装 Node.js:确保已经安装了 Node.js。
-
初始化项目:
mkdir my-electron-app cd my-electron-app npm init -y
-
安装 Electron:
npm install electron --save-dev
-
创建主进程文件(通常命名为
main.js
):const { app, BrowserWindow } = require('electron'); const path = require('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(); } });
-
创建 HTML 文件(例如
index.html
):<!DOCTYPE html> <html> <head> <title>My Electron App</title> </head> <body> <h1>Hello, Electron!</h1> </body> </html>
-
修改
package.json
文件 添加启动脚本:"scripts": { "start": "electron ." }
-
运行项目:
npm start
示例代码
这是完整的 main.js
文件:
const { app, BrowserWindow } = require('electron');
const path = require('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();
}
});
以上代码展示了如何使用 Electron 创建一个简单的桌面应用。你可以通过修改 index.html
文件来自定义界面。希望这些信息对你有帮助!