天天看點

Ubuntu環境下使用NW.js對web應用封裝

前言

相對于偏向應用的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

Ubuntu環境下使用NW.js對web應用封裝

2. Demo - YoudaoDict

Ubuntu環境下使用NW.js對web應用封裝

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應用封裝