有人用过 Nodejs 的 atom-shell 么?

有人用过 Nodejs 的 atom-shell 么?

从实用度讲, mozilla的gecko内核成熟得多了,成熟案例也多, 比如firefox、thunderbird、komodo edit/ide、pencil等.

3 回复

当然,Node.js 社区中确实有很多开发者使用 atom-shell(现在称为 Electron)。Electron 是一个用于构建跨平台桌面应用的框架,它结合了 Node.js 和 Chromium 浏览器引擎。Electron 允许开发者使用 HTML、CSS 和 JavaScript 来创建桌面应用程序。

虽然 Mozilla 的 Gecko 内核确实非常成熟,并且被广泛应用于 Firefox 等知名产品中,但 Electron 由于其易用性和丰富的社区支持,在开发跨平台桌面应用方面也非常受欢迎。

示例代码

以下是一个简单的 Electron 应用示例,展示如何创建一个基本的窗口并显示“Hello World”:

  1. 安装 Electron

    首先,你需要安装 Electron。可以通过 npm 安装:

    npm install electron --save-dev
    
  2. 创建主进程文件

    创建一个名为 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();
      }
    });
    
  3. 创建 HTML 文件

    创建一个名为 index.html 的文件,并添加以下代码:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Hello World!</title>
      </head>
      <body>
        <h1>Hello World!</h1>
        <!-- 你可以在这里添加更多的 HTML 内容 -->
      </body>
    </html>
    
  4. 运行应用

    在项目根目录下,运行以下命令启动应用:

    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 创建一个简单桌面应用的步骤和示例代码:

步骤

  1. 安装 Node.js:确保已经安装了 Node.js。

  2. 初始化项目

    mkdir my-electron-app
    cd my-electron-app
    npm init -y
    
  3. 安装 Electron

    npm install electron --save-dev
    
  4. 创建主进程文件(通常命名为 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();
      }
    });
    
  5. 创建 HTML 文件(例如 index.html):

    <!DOCTYPE html>
    <html>
      <head>
        <title>My Electron App</title>
      </head>
      <body>
        <h1>Hello, Electron!</h1>
      </body>
    </html>
    
  6. 修改 package.json 文件 添加启动脚本:

    "scripts": {
      "start": "electron ."
    }
    
  7. 运行项目

    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 文件来自定义界面。希望这些信息对你有帮助!

回到顶部