用node-webkit把web应用打包成桌面应用

node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦。很显然比起传统的桌面应用,在某些特定领域用html5+css3+js开发的web应用更加简单和高效,而且还可以使用node.js的功能,所以node-webkit还是很有用处的。

下面我通过一个简单的demo来介绍怎么样把一个web应用打包成一个可执行文件(这里只介绍windows环境)

首先新建一个index.html文件,作为我们这个demo的入口页面,我们暂且就把这个页面当成一个完整的web应用吧。内容随便写点什么,比如:

然后创建配置文件 package.json,内容如下:

其中的main属性就是用来指定入口文件的,这个属性的值可以是本地文件,也可以是远程网址,这样就相当于可以把一个远程的web应用直接变为一个桌面应用了。

除了name与main这两个属性外,还有很多其他有用的属性可以配置,比如指定应用的图标,显不显示浏览器的工具栏,指定浏览器的初始大小等等,具体的配置参数文档可看这里https://github.com/rogerwang/node-webkit/wiki/Manifest-format

现在我们有了两个文件了。

然后将index.html和package.json这两个文件压缩到一个zip压缩包里,命名为app.zip

现在app.zip这个压缩包里的内容应该是这样的:

然后把app.zip这个文件的扩展名改为nw,变为 app.nw

然后下载一个windows版本的node-webkit,解压后得到一个文件夹:

之后我们之前得到的app.nw这个文件就可以用nw.exe来执行了,直接把app.nw拖到nw.exe上就可以了。运行结果如下:

跟在chrome中打开index.html这个页面的效果差不多,当然你可以通过配置package.json这个文件,来隐藏浏览器的工具栏或边框,来使它更像是一个桌面软件。

因为nw文件的运行需要node-webkit环境的支持,所以我们还需要把app.nw这个文件跟node-webkit的环境文件一起打包成一个可执行文件。

首先打开windows的cmd,然后输入如下命令:

copy /b nw.exe+app.nw app.exe

注意文件路径要根据你的实际情况进行变动,这里假设app.nw放在了node-webkit的主文件夹里,然后输出的app.exe也会在这个文件夹里。

执行命令后我们得到了 app.exe 这个可执行文件。

到了这步,我们已经得到了app.exe这个文件,但如果只有app.exe这个文件还是不够的,这个可执行文件的运行还需要几个dll文件的支持。

其中 nw.pak 与 icudt.dll 这个两个文件是必须要的。

ffmpegsumo.dll 文件是媒体支持文件,如果你的html页面中用到了<video>或<audio>或其它与媒体相关的东西,则必须带上这个文件。

libEGL.dll 和 libGLESv2.dll 这个两个文件则是使用webGL或GPU必须要的

最后我们得到的就是这样一个文件夹:

执行app.exe就可以运行我们的demo了。

但我们大多数人想的是给用户一个exe文件,用户就可以使用了,不用再附带一些其他文件。

嗯,所以我们还可以把app.exe跟其他的文件再打包一次,把上图中的所有文件变成一个可执行文件,用户只要得到这个文件,就能运行我们的应用了。

做这步我们需要一个软件叫Enigma Virtual Box,首先下载和安装这个软件,然后打开它。

然后在Enter Input File Name那里输入我们的app.exe的路径,在Enter Output File Name那里填写我们要把打包出来的可执行文件输出到哪里。最后是把除app.exe外的其它文件拖入到Files那里,遇到提示的话默认就可以了。

最后点击右下角的Process按钮,就大功告成了。

最后我们得到了一个 app_boxed.exe 的文件,只要把这个文件交给用户,用户就可以运行了。

node-webkit虽然方便,但有个很大的缺点是得到的可执行文件有点大,大家在可以在衡量利弊后决定使不使用。

时间: 2024-10-04 20:44:10

用node-webkit把web应用打包成桌面应用的相关文章

展示触摸屏网页打包成桌面应用(nw.js)

一.编写触摸屏网页注意点 1.控制缩放行为.内容宽度为屏幕宽度,初始缩放比例为1:1,并禁止缩放(如若可放大缩小,影响操作体验) <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 2.<a>标签点击存在暗色透明背景问题,使用css属性 -webkit-tap-highlight-colo

Electron把网页打包成桌面应用并进行源码加密

前言 最近想把自己用html+css+js做的网页界面打包成桌面应用,网上一搜,发现Electron是一个不错的选择,试了试,发现效果真的不错.这里记录一下打包过程以作记录,便于自己以后查看学习. 一.简介 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的. 二.打包过程 1.

web项目打包成exe在windows下一键安装 jdk+Tomcat+mysql

最近因为公司销售人员不懂软件,所以每次部署项目都需要技术人员到客户现场进行部署,很不方便.所以公司就让把我们的项目做成傻瓜式安装,这样就可以让销售人员去安装,也给技术省了很多事.我在网上找了很多教程但是有些地方还是不全,而且每个人写的也都不一样,所以在制作过程中遇到很多问题,经过几天研究终于实现了,现在就把我整理.研究的写下来,希望可以帮到更多人. 一:打包工具 在网上下载一个 Inno steup的制作exe文件工具 下面是我整理好的compile.iss文件(以下这个可以直接复制过去把要改的

Java Web 项目打包成 .war 包

从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2EE->WAR File.点击next 接下来制定war包的存放路径,我们将它放在卓面上. 打包完成以后我们将war放到tomcat的webapps目录下. 然后运行tomcat,并输入项目的url就可以了.和正常的web文件同样对待. 北京哪里找富婆包养 海淀哪里找富婆包养 东城哪里找富婆包养 西

前端打包成桌面应用、以及chrome扩展

前段时间在利用工作之余开发了tomato timer这个蕃茄钟,然后部署到github.io上,由于greatway太厉害,偶尔会有打不开的情况.上周末对比做了扩展和改进,使其成为chrome的插件,或者成为桌面app. chrome插件的使用与开发 一.如何安装与使用: 1.下载tomato timer项目,github地址 https://github.com/cqhaibin/tomato-timer.git 2.切换到V2.0.0.0的tag,然后如下图所配置: 3.然后单击 “小飞”图

将web项目打包成手机app的方法

之前使用ionic开发的时候使用cordova打包,现在项目使用的是vue,记录一下打包的过程: 1.下载HBuilder编辑器http://www.dcloud.io/,成功之后注册账号 2.新建-app,然后将自动生成的除manifest.json之外的所有文件删除,然后将vue项目build之后生成的dist文件拷贝进项目 3.可在manifest.json文件内设置app属性,如app名称,图标,等待加载动画等 4.点击发行,选择第一项,其余默认 5.等待发布完之后下载至本地,装到手机上

将现有vue项目基于electron打包成桌面应用程序

一.前言 项目本来打算采用B/S架构去做的,只是在"人群中多看了你一眼",便直接撸了. 二.使用electron集成桌面应用 本身项目是使用vue-cli开发的,在使用electron之前,需要将本身的项目打包好后打开index.html能显示网页.因为刚接触便直接拿官方demo进行打包了. 1.克隆官方demo:git clone https://github.com/electron/electron-quick-start 2.cd electron-quick-start-&g

将Web移动端打包成手机app---HBuilder

将移动端页面打包成app 1.使用 HBuilder 直接编译打包 点击左上角 文件>打开目录>选择目录  选择用Webpack打包好的dist文件目录 由于我添加到项目了,所以会显示该项目名称已存在,请重新输入. 2.接着点击完成,就可以在目录中看到dist 这里dist前面的标志应该是W  由于我转换过一次,就会显示A 3.鼠标右键点击dist目录,选择`转换成移动App`,成功之后目录前面的图标就会变成 A 同时会多出一个 `manifest.json文件` 4.双击`manifest.

sencha touch 扩展篇之将sencha touch打包成安装程序(下)- 使用phonegap打包安装程序

    这讲我们来讲解下如何使用phonegapa创建项目环境并通过她们将sencha touch打包成app,这里我们只讲解打包android的apk,打包ios的过程有点类似,但是需要在mac环境下,最后通过xcode导出成ipa安装程序: 一.phonegap环境搭建: phonegap从3.0开始已经不再使用手动的方式搭建项目了,而是使用command-line命令行工具来搭建项目环境,并且插件引入的机制也在3.0做了调整,采用了模块化的方式,即需要什么功能模块就通过命令行工具来安装对应