应用node-webkit(NWJS)把BS架构的网址封装成桌面应用
一、目的
给WEB应用的用户提供一款同一的浏览器,访问固定网址,封装一些常用插件(如flash插件等)
二、步骤
1.下载node-webkit,官方网址https://nwjs.io/
2.解压下载后的nwjs
3.新建文件package.json,内容如下,其中window和webkit项可以缺省
{
"name": "APPNAME", //应用名称
"main": "http://www.baidu.com", // 启动页面要访问的网址
"version": "0.0.1",
"window": {
"toolbar": false, // 隐藏工具栏 "frame": true, // 弹窗新的窗口 "width": , "height": , "position": "center", "min_width": , "min_height": , "max_width": , "max_height": , "resizable": true, //可以调整大小 "show_in_taskbar":true//是否在任务栏显示
},
"webkit": { "plugin": true, //允许加载插件 "page-cache":false //禁止页面缓存 } }
4.将文件压缩为zip文件,然后修改后缀名称,改名为app.nw,将app.nw复制到nwjs文件夹里面和nw.exe并列的目录
5.将chrome安装的插件复制到nwjs文件夹里面和nw.exe并列的目录
这里演示封装flash插件,新版的chrome的插件安装在图示位置C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data,旧版的在C:\Program Files (x86)\Google\Chrome\Application\plugins文件夹下
6.然后把里面版本号文件里的内容复制到父级文件夹,这里把31.0.0.108里面的内容复制到了PepperFlash
7.此时将app.nw拖拽到nwjs里面的nw.exe上执行就可以打开页面了,并且能够正常播放flash
8.当然这样还不能交给用户使用,我们现在需要将文件进一步打包,合并nw.exe和app.nw两个文件,让它可以直接执行
以管理员身份打开CMD,进入到nwjs目录,执行命令copy /b nw.exe+app.nw app.exe ,之后会生成一个app.exe的文件,双击执行,和上面的效果一样
9.此时其实已经可以直接使用了,但是为了让它显得更高大上一点,我们使用inno setup将其封装成安装包(另外一种方式是使用Enigma Virtual Box将nwjs里面需要依赖的文件打包成一整个exe文件)
下载inno setup并安装 http://www.jrsoftware.org/isdl.php
将下载的中文插件放到 C:\Program Files (x86)\Inno Setup 5\Languages
10.按步骤开始打包安装包
10.1 输入应用名称、版本号、公司名称、公司网址等
10.2 选择执行文件
10.3 指定授权文件等信息,可以忽略
10.4 指定安装语言
10.5 这里可以指定图标和默认安装路径以及安装包的名称
10.6 最后会生成一个可执行的安装文件,双击安装之后就可以正常运行了
最新文章
- @SuppressWarnings注解的用法
- tp5 中 model 的更新方法
- Ztree的简单使用和后台交互的写法(二)
- sprint 1 总结
- 项目源码--Android即时通讯IM客户端
- 45个必备的实用jQuery代码段[转载]
- 【转载】nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- 移动Web开发技巧
- sqlserver练习
- Angular - - filter 过滤器
- 【python3之变量,输入输出,判断,循环】
- SOAP-ERROR: Encoding: string … is not a valid utf-8 string
- PXE网络装机
- 【Maven】基础概念、仓库、构建与部属
- Two Sum III - Data structure design LT170
- 域名、ip、以及通过域名访问网站、虚拟主机
- js 命名空间
- SQL Server 修改表结构被阻止 解决办法
- 从乌云的错误漏洞分析看Mifare Classic安全
- APP换肤
热门文章
- Django项目:CRM(客户关系管理系统)--42--34PerfectCRM实现CRM自定义用户
- js的几种继承方式
- 出现$(#form).validate is not a function的问题
- MySQL--视图、触发器、事务、存储过程、内置函数、流程控制、索引
- 【CodeVS】2750 心系南方灾区
- Cron定时任务应用到Thinkphp – 贤生博客
- css清除浮动各方法与原理
- Python 使用BeautifulSoup模块抽取数据
- Leetcode704.Binary Search二分查找
- dingo/api 使用 知识