前言

相对于偏向应用的windows系统,Linux系统更偏向于开发,因此对于依赖Windows应用的人来说,缺了很多常用软件会很不习惯,本文的目的便是通过两个Demo来引出后面的教程——通过NW.js来封装你想要的Web应用。以Ubuntu 16.04为例(14.04可能无法兼容部分依赖)。


关于NW.js

  • 官网:https://nwjs.io/

  • github:https://github.com/nwjs/nw.js


1. Demo - Wechat


2. Demo - YoudaoDict


3. 准备工作

安装nodejs

sudo apt-get install nodejs

使用 ‘nodejs --version’ 可以查看安装成功的版本


安装npm

sudo apt-get install npm

使用 ‘npm --version’ 可以查看安装成功的版本


安装NW.js

sudo npm install nw -g

安装成功后会显示目录结构,使用 ‘nw --version’ 可以查看安装成功的版本


4. NW.js使用教程

(1) 创建一个html文件,里面嵌入你想定制的web应用链接

<html><head><meta charset="utf-8"><title>Wechat</title></head><body><iframe src="https://wx.qq.com/"/></body>
</html>

(2) 创建一个名为package的json文件,这是固定名称

{"name":"Wechat","main":"Wechat.html","window":{"title":"Wechat","toolbar":false,"frame":true,"position":"center","always-on-top":true,"width":1000,"height":800}
}

(3) 将二者打包成nw文件

sudo cat package.json Wechat.html > Wechat.nw


(4) 将所需文件放在nw程序同级目录中


(5) 创建一个sh启动脚本,路径请改为自己的nw程序路径和应用路径

#!/bin/bash
cd /usr/local/lib/nwjs-sdk-v0.27.5-linux-x64
./nw /home/zengyu/git/NWJS-Demo/Wechat/Wechat.nw

(6) 在/usr/share/applications/下创建一个后缀名为desktop的快捷方式文件,其中内容的路径请改为自己的启动脚本路径和图标路径

sudo gedit /usr/share/applications/Wechat.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Wechat
Exec=sh /home/zengyu/git/NWJS-Demo/Wechat/Wechat.sh
Icon=/home/zengyu/git/NWJS-Demo/Wechat/Wechat.jpg
Categories=GTK;Network;message;
Comment=Wechat
Terminal=false
Type=Application

(7) 开始使用你定制的应用,双击快捷方式,启动后右键单击图标锁定到启动器


5. NW.js安装及运行过程中可能出现的问题及解决方案

(1) 缺少部分依赖

sudo apt-get install -f

可以自动安装缺少的依赖


(2) nw安装失败

从官网下载sdk:https://nwjs.io/


(3) 无法加载以下来源的扩展程序:xxxxxx\xxx.nw.清单文件缺失或不可读

  • 可能原因1:检查所有相关文件编码,采用中文编码会导致该问题
  • 可能原因2:html文件、json文件、nw文件是否都位于nwjs目录下的nw程序同级目录中

6. 推荐一些基于electron封装的应用以供使用和学习借鉴

关于electron

  • 官网:https://electronjs.org/
  • github:https://github.com/electron/electron

  1. 钉钉:DingTalk
  2. 微信:Wechat

7. 参考文献

  1. 为什么微信没有for linux?
  2. Ubuntu环境下的nwjs安装使用
  3. NW.js打包Axure原型(HTML)文件常见问题
  4. nwjs安装演示

8. 源码

Ubuntu环境下使用NW.js对web应用封装

Ubuntu环境下使用NW.js对web应用封装相关推荐

  1. nwjs sdk linux x64,Ubuntu环境下的nwjs安装及使用教程

    需求:通过nwjs实现一个可以全屏显示,防止用户退出浏览器的演示用app 一.安装Node.js sudo apt-get install nodejs sudo apt-get install np ...

  2. Ubuntu环境下挂载新硬盘 --硬盘要挂载在某个文件夹下面

    Ubuntu环境下挂载新硬盘 Ubuntu环境下挂载新硬盘 可以参考这两个教程,在挂载的时候,下面的代码报错 sudo mount -t ext4 /dev/sdb /devdata 原因是硬盘要挂载 ...

  3. linux鼠标触摸屏应用程序,在Ubuntu环境下实现插入鼠标自动关闭触摸板

    本文将为你介绍在 Ubuntu 环境下也能实现插入鼠标自动关闭触摸板的功能. 如果你经常在笔记本上用鼠标,你就会对因为偶尔碰到触摸板而打断自己的操作而憋屈了.当你用外接鼠标的时候关闭触摸板就是一个很好 ...

  4. ubuntu环境下如何解决svn提交出现can‘t check path ‘/home/...‘

    在ubuntu环境下用svn提交代码出现这个错误 can't check path '/home/...' 因为我们提交有限制 我一开始是这样写的 svn commit -m $  ' norevie ...

  5. linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署

    Storm在Ubuntu环境下的单机部署 目录 查看Ubuntu 安装JDK 安装Pythod 安装Zookeeper 安装ZeroMQ 安装Jzmp 安装Storm 查看Ubuntu是32位还是64 ...

  6. 【转载】Ubuntu环境下配置Android Studio

    之前学习Android开发的时候,一直跟各种教程一样,使用的是Eclipse+ADT,主要是比较方便,容易上手,特别是对于习惯用Eclipse开发java的朋友来说,上手更是好无压力.但毕竟Eclip ...

  7. ubuntu安装python环境_AirSim 无人驾驶教程(1)Airsim 在Ubuntu环境下的安装

    AirSim 无人驾驶教程(1)Airsim 在Ubuntu环境下的安装 说实话我自己内心是不看好无人驾驶的短期普及的,但是通过对无人驾驶的研究可以实现对一些科学知识的掌握和探索.通过无人驾驶的仿真环 ...

  8. ubuntu环境下redis的安装配置

    ubuntu环境下redis的安装配置 1. 简要介绍 dis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表 ...

  9. UBUNTU环境下编译的openwrt

    UBUNTU环境下编译的openwrt 请执行这个命令以安装编译依赖包:sudo apt-get update 然后再输这个: sudo apt-get install gcc g++ binutil ...

最新文章

  1. Science公布年度十大科学突破!新冠疫苗居首位
  2. 【转】Java里如何实现线程间通信
  3. Android入门学习教程PDF免费下载
  4. 自动摘要php,phpcms修改手动摘要255字符、自动摘要200字符及取消自动摘要
  5. java 某点 旋转_java-如何围绕某个点旋转顶点?
  6. android 休眠唤醒驱动流程分析,Android4.0.4休眠唤醒机制分析(基于MSM8260)
  7. Lua笔记3 函数和数组
  8. Vue.js 2.6尝鲜
  9. [Linux] 通过shell给unix socket发送数据
  10. Revit二次开发之创建共享参数及绑定共享参数【比目鱼原创】
  11. Windows | 管理员权限打开CMD 快捷键
  12. hal定时器回调函数
  13. 各大网站收录入口| 各大搜索引擎提交 | 搜索引擎提交地址
  14. CATIA二次开发—视图及视点
  15. PYTHON处理年月日的英文转换
  16. 即时通讯开发,聊天软件搭建
  17. webview 禁止苹果自动下拉_苹果开发者账号申请必备:双重认证教程!
  18. word详细使用方法(①)
  19. java 节气_java计算某个日期是什么节气(24节气)
  20. instrument Time Profiler总结

热门文章

  1. (Android) Activity生命周期总结
  2. Android下USB Accessory的实现分析 (三)--- Android Open AccessoryProtocol
  3. 真正让我们学会建站需要凭借三大因素,当你具备了这三个因素学会建站指日可待
  4. 第7.14节 Python类中的实例方法详析
  5. 广州Java培训机构排名榜单亲身经历说说看
  6. [C语言]C语言之continue
  7. 2021.04.01手链样式
  8. 嘀咕网暂停服务,有人怀疑和饭否一样被封了
  9. 插入图片和背景图片区别
  10. 实验楼OS实验一 熟悉实验环境