曾静的博客

但行好事,莫问前程.

嗨,我是曾静 (@devzeng),目前暂居深圳。


这是我用来记录平日学习笔记的地方,欢迎您的访问.

使用NW.js开发桌面应用程序

前段时间要写一个桌面的应用,做一个简单的输入框供用户输入验证码的小功能,程序最开始是用Python写的,那么GUI一开始就考虑使用wxPython,虽然实现了功能但是总觉得太过于麻烦。

之前了解过关于Node.js开发桌面应用的技术,目前使用的比较多的都是nw.jselectron,由于下载electron的时候出现了一些问题所以就选择了nw.js来学习。

nwjs_logo

NW.js(之前叫做node-webkit)能够通过DOM直接调用Node.js模块,实现通过Web技术来编写应用程序。

环境搭建

  • 安装node.js 和 npm

测试、发布配置

(1)文件目录结构

demo
|____package.json //①
|____src
| |____app
| | |____main.js
| |____styles
| | |____main.css
| |____views
| | |____main.html
| |____assets
| | |____icon.png
| |____package.json //②
| |____README.md
| |____LICENSE

(2)创建发布配置文件

在源码上一级目录(上面对应的位置)下面创建一个package.json文件,配置内容如下:

{
  "name": "demo",
  "version": "1.0.0",
  "devDependencies": {
    "nw": "^0.26.6",
    "nw-builder": "^3.5.1"
  },
  "scripts": {
    "dev": "nw src/",
    "prod": "nwbuild --platforms win32,win64,osx64 --buildDir dist/ src/"
  }
}

然后在命令行执行npm install安装相关依赖项。

(3)创建nw.js的配置文件

在源码所在src目录(上面对应的位置)下面创建一个package.json文件,配置内容如下:

{
  "name": "demo",
  "main": "views/main.html",
  "version": "1.0.0",
  "description": "示例",
  "window": {
    "title": "示例",
    "width": 320,
    "height": 400,
    "max_width": 320,
    "max_height": 400,
    "min_width": 320,
    "min_height": 400,
    "as_desktop": true,
    "resizable": false,
    "show_in_taskbar": true,
    "icon": "icon.png"
  }
}

(4)示例页面

1) main.html

<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <span id="message"></span>
  </body>
  <script type="text/javascript" src="../app/main.js"></script>
</html>

2) main.js:

var os = require('os');
var message = document.getElementById("message");
message.innerHTML = "You are running on " + os.platform();

更多使用方式参考:http://docs.nwjs.io

(5)运行

#开发运行测试
npm run dev

#打包
npm run prod

运行效果如下:

demo

参考资料

1、nw.js官网

2、使用 NW.js 构建跨平台桌面应用程序

3、随笔分类 - nw.js

最近的文章

如何创建一个私有的Gem库

近期看了下Cocoapods的一部分代码,结合之前做的iOS项目脚手架工具,突发奇想能不能做一个内部的工具库呢(类似于Cocoapods)。首先要解决的问题就是怎么样发布自己写的工具库,有没有类似于RubyGems这样的托管平台呢?查了一番资料找到了一个开源的项目- geminabox, 可以搭建一个托管的平台。搭建Gem私服前提条件是需要有Docker的环境,如果没有的话可以参考:CentOS安装Docker。(1) 创建并运行容器docker run -d -v /home/docke...…

Ruby继续阅读
更早的文章

使用Anaconda管理Python环境

Python好用但是在使用过程中发现还是有很多问题的,其中一个就是版本管理(Python2和Python3的切换)。相比于Ruby的版本管理有rvm,可以使用rvm use 2.4.0这样的命令来快速切换Ruby的版本。出于历史原因目前还是有很多Python的程序是运行在Python2.7,经常需要在Python3的环境下面执行一些实例切换起来非常麻烦,刚好最近了解到Anaconda,Anaconda 是一个可用于科学计算的 Python 发行版,支持 Linux、Mac、Windows系...…

Note继续阅读