用Nodejs写桌面app(Linux, Mac, Windows)

用Nodejs写桌面app(Linux, Mac, Windows)

http://appjs.org/

配合HTML和CSS

17 回复

当然,可以使用Node.js来编写跨平台的桌面应用程序。一个流行的库是AppJS,它允许你使用Web技术(如HTML、CSS和JavaScript)来构建桌面应用,并且支持Linux、Mac和Windows操作系统。

使用AppJS创建桌面应用

AppJS是一个已经停止维护的项目,但你可以考虑使用其他类似的库,比如electronnw.js。这里我们以electron为例,因为它仍然是一个非常活跃和广泛使用的框架。

示例代码

  1. 安装Electron

首先,你需要安装Node.js环境,然后通过npm安装Electron:

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

创建一个名为main.js的文件,这是Electron应用的入口点。

const { app, BrowserWindow } = require('electron');

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  });

  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();
  }
});
  1. 创建前端界面

创建一个名为index.html的文件,用于定义你的用户界面。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>My Electron App</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      margin: 0;
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      background-color: #f0f0f0;
    }
  </style>
</head>
<body>
  <h1>Hello, Electron!</h1>
</body>
</html>
  1. 运行应用

在项目根目录下创建一个package.json文件,定义脚本和依赖项:

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^23.0.0"
  }
}

然后运行以下命令启动应用:

npm start

总结

通过上述步骤,你可以使用Node.js和Electron创建一个跨平台的桌面应用程序。Electron提供了一个强大的框架,使你能够利用Web技术来开发桌面应用。虽然AppJS已经不再维护,但Electron是一个更现代的选择,具有丰富的社区支持和广泛的文档资源。


有一个node.js的ide Nide 使用了node.js写的.

感觉很舒服.

看到mac版的了,的确不错,可惜我是Vim控。

Windows and Mac ports are still under heavy development. You can try it on Linux for now. 貌似还处于初级阶段。

昨天试了一把,照官网文档做了个Hello world!,感觉还不错。

os x下这个东西似乎有问题, npm install 出错

这个在输入框中貌似激活不了我linux下的中文输入法~

请问…我如果用appjs做出了桌面程序…那么…如何打包发布给win用户? 总不能告诉客户…请你先装个nodejs环境吧? 因为没用过appjs…不知道是怎么启动的…估计也是用node命令启起来吧…如果不对请指正哈… 是不是发布的时候要带着node的环境一起发布…请教

安装程序完全可以帮用户安装nodejs环境,启动的话把入口程序包装成exe也是可以的

目前还没支持mac和windows,哈哈,等mac支持增加了,我就开始做FaWave桌面版本!

哇…fawave是你写的啊…能不能提点需求啊…就是能不能有新微博的时候自动滚屏显示出来啊…有时候没这么多空去点击…就积累了200多条…然后点一下…只能看到前面的几十条…懒得往下拉了…所以会有漏过的…所以能不能定期5s或者多少自动帮刷一下输出最新的啊…

安装失败。mac osx 10.7.4

目前不支持mac,只支持linux

为什么 var audio = document.createElement(‘audio’); audio.src = ‘./love.mp3’; audio.play(); 会提示Uncaught TypeError: Object #<HTMLElement> has no method ‘play’

在windows下有一个NetBox不错,是用IE+微软的JS解释器写的,支持ASP,不能跨平台。 adobe有AIR,但不开源,不通用 如果用node.js+chrome 或者 node.js+webkit实现终端应用,那么javascript将实现BS和CS语言的统一了 javascript已经在浏览器普及,现在又能开发高效的服务器端应用,现在的很多云端应用也用js开发,以此方法可开发桌面或手机应用。 javascript的前途一片光明。node.js将会起到举足轻重的作用。

跟tideskd比如何?

使用Node.js编写跨平台桌面应用程序(支持Linux、Mac、Windows)可以借助一些框架,如AppJSAppJS提供了一个简单的API来构建桌面应用,并且能够利用Web技术(HTML、CSS、JavaScript)。

示例代码

首先,你需要安装AppJS。由于AppJS项目已经不再活跃,这里推荐使用另一个流行的选择——ElectronElectron同样基于Node.js,并提供了强大的功能来创建桌面应用。

安装Electron

npm install electron --save-dev

创建一个基本的应用程序

创建一个简单的HTML文件(例如 index.html):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Desktop App</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            padding: 50px;
        }
    </style>
</head>
<body>
    <h1>Hello, Electron!</h1>
    <button id="quit">Quit</button>
    <script src="renderer.js"></script>
</body>
</html>

创建一个JavaScript文件(例如 renderer.js),处理按钮点击事件:

document.getElementById('quit').addEventListener('click', () => {
    require('electron').remote.app.quit();
});

创建一个主进程文件(例如 main.js),这是Electron应用的主要入口点:

const { app, BrowserWindow } = require('electron');

function createWindow() {
    const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            nodeIntegration: true
        }
    });

    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();
    }
});

最后,在项目的根目录下创建一个package.json文件,以便于管理依赖和启动脚本:

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^13.1.7"
  }
}

运行应用

在终端中运行以下命令启动应用:

npm start

这样,你就创建了一个简单的桌面应用程序,可以在Linux、Mac和Windows上运行。

回到顶部