由於工作需要必須使用阿里釘釘這個聊天軟件.
但隨着版本更新,瘋狂添加新功能,體積越來越大,無法忍受.
因此尋求體積小巧,綠色便攜的PC客戶端.
在下載了無數個釘釘舊版本之後,可以發現一些釘釘軟件的發展歷程......
最初釘釘把主要功能都在網頁版上面實現.
早期的客戶端都是基於網頁版製作的.客戶端使用nw.js把網頁封裝成爲客戶端.
後來V2.X版本核心還是nw.js但是把網頁版變成了離線版(把網頁版的js和css保存在本地).
後來V3.X版本開始,開發了一套rvwindow實現了本地化的GUI窗口,但核心邏輯還是js和css.
再到V4.X又重新開發了一套新的GUI,重構了整個程序框架,已經看不到網頁版的影子了.
由於目前釘釘網頁版還能正常使用.雖然可以用chrome直接打開,但是經常要瀏覽網頁,一不小心就把它關閉了.
所以利用早期版本的node-webkit來包裝一個網頁客戶端.
nw.js也就是node-webkit,它的核心是一個瀏覽器.可以通過package.json進行一行配置.
package.json裏面有自定義user-agent,定義了nw版本,WEB端用來識別這是客戶端還是瀏覽器.
因此可以提取出nw.js的核心文件,刪除無用的文件.
再修改package.json
把user-agent修改爲標準瀏覽器.
把啓動頁面修改到釘釘網頁版.
再添加一行參數--user-data-dir=Data把瀏覽器緩存數據設置到本地路徑.
這樣啓動DingTalk.exe就可以看到釘釘登陸界面了!.
只要網頁版還能正常使用,這個"假"客戶端就能繼續使用.
{
"name": "DingTalk",
"version": "4.0.0",
"main": "https://im.dingtalk.com",
"chromium-args":"--disable-gpu --disable-directwrite-for-ui --user-data-dir=Data",
"user-agent": "Mozilla/5.0 (%osinfo) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%webkit_ver Safari/537.36",
"window": {
"icon": "logo.ico",
"frame" :true,
"min_width": 1000,
"min_height": 600,
"width": 1000,
"height": 600,
"resizable": false,
"toolbar":true,
"transparent" : false
},
"webkit": {
"plugin": false,
"page-cache" : false
},
"dependencies":{
}
}