美文网首页WebWeb前端之路
封装网页为桌面应用

封装网页为桌面应用

作者: stiller | 来源:发表于2017-03-13 18:14 被阅读135次

这次客户提出的请求时没有说明是桌面端的应用,所以当做出一个demo后对于给出的链接,客户表示不理解和不信任,但是考虑到项目已经做了一半以上,所以最后选择了打包应用的方式。

在查阅各种资料和方式后,排除了在wpf以及uwp等应用嵌套WebView的方式,直接采用了node的打包NW.js进行应用打包。

开源社区提供了 NW.js 来轻松的将 Web 应用打包为桌面应用,这样只需要做到兼容 Chrome 就够了。

NW.js 简介

NW.js 由 node-webkit 改名而来。目的是想利用 JavaScript 来进行桌面应用开发。与操作系统交互的部分,利用 Node.js 来完成,而与用户交互的部分,则是使用的网页开发技术。国内比较有名的案例有钉钉的桌面版,有名的 Chrome 插件 Fawave 也还利用 NW.js 推出了桌面应用。
与 NW.js 类似的解决方案,还有 Github 为了开发 Atom 而推出的 Electron.js 。Slack 的桌面版就是基于它开发的。

项目环境需求:

  • node.js
  • NW.js

在安装完成npm的电脑端使用npm install nw -g安装nw

一个最简单的项目无需任何的本地页面以及代码,使用配置文件就是 Node.js 中常见的 package.json ,最简单的示例如下:

{
  "name": "ApplicationName",//App名称
  "main": "http://www.uneedzf.com/",//项目打开时的主页
  "version": "0.0.1",//版本识别号
  "window": {
    //window的相关配置
    "width": 1920,//项目打开时的宽度和高度
    "height": 1080,
    "frame": true,//是否显示桌面应用的标题栏
    "toolbar": false,//是否显示调试栏和地址栏
    "icon": "assets/icon.png"//图标icon
  },
   //打包时使用的nw-builder
  "devDependencies": {
    "nw-builder": "^3.2.0"
  }
}

在程序目录中执行如下的命令,可以查看效果:
nw .

运行效果

有关打包。

打包可以使用一个 Node.js 模块 nw-builder ,先在程序目录中进行安装:

npm i --save-dev nw-builder

新建打包脚本builder.js

var NwBuilder = require('nw-builder');

var nw = new NwBuilder({
  files: './package.json', // 包含文件
  platforms: ['win64'], // 打包的平台
  version: '0.20.1' // 使用 NW.js 的版本
});

nw.on('log', console.log); // 日志打印函数

// 开始构建
nw.build().then(function(){
  console.log('done!');
}).catch(function(err){
  console.log(err);
});

对于不同的nw版本号可以在http://107.170.237.181/ 找到

运行脚本:node builder.js

这里执行时需要非常注意,需要全局使用vpn才能进行打包操作,否则将会连接失败或者是TimeOut

done

成功打包后,会出现在build文件夹下成功打包的工具,通过inno等工具可以将其打包成setup.exe的安装包。

相关文章

  • 封装网页为桌面应用

    这次客户提出的请求时没有说明是桌面端的应用,所以当做出一个demo后对于给出的链接,客户表示不理解和不信任,但是考...

  • Web应用程序的最佳实践(七)

    与为典型的桌面Web浏览器开发网页相比,为移动设备开发网页和Web应用程序提出了一系列不同的挑战。 请参阅以下相关...

  • 每一个伟大的产品都应该有个故事

    在选择新产品时,用户很难做出选择。 移动应用,网页应用,手表应用,桌面应用,这个平台,那个平台的。 虽然有这么多种...

  • 网页变成桌面应用:Flotato for Mac

    flotato mac破解版是一款专业且实用的将网页变成桌面应用的软件,软件适用于mac平台,Flotato fo...

  • 为桌面应用设计

    0 窗口和文档 MDI(multiple document interface,多文档界面)和SDI(single...

  • JavaScript模块化编程

    JavaScript模块化编程-require.js 随着网页越来越复杂、代码量越来越巨大,网页已经趋近于桌面应用...

  • AMS

    桌面Launcher进程为应用生成桌面图标入口,通过Binder与AMS通信,开启应用进程时:分别调用Launch...

  • JavaScript模块化编程-require.js

    随着网页越来越复杂、代码量越来越巨大,网页已经趋近于桌面应用,因此JavaScript模块化编程显得尤为重要。理想...

  • electron搭建的桌面应用解决生产环境axios请求失败

    在axios封装中加上这几行代码(url是你的远端服务器地址) // 桌面应用 axios.defaults.ad...

  • 2021年app免签封装分发平台系统详解

    描述:封装应用程序直接通过访问数据来操作,直接像网页直接打开一样被访问,这与h5连接访问相同,所以封装应用程序的大...

网友评论

    本文标题:封装网页为桌面应用

    本文链接:https://www.haomeiwen.com/subject/qwafnttx.html